Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0xf7db7de8010ccad4e1354bec4f084d1b78352acc on Ethereum · Launchpad

Volume (24h)
$13.16K
Value locked (TVL)
$0
All-time volume
$13.16K
Pools using this hook
1
Swaps (24h)
58 (29 traders)
Total swaps
58

What it does

This launchpad-style hook gates trading and liquidity by a launch phase and takes a directional swap tax through return deltas to a treasury, with exact rates and direction not confirmed from bytecode alone.

How it works step by step

  • Hook is initialized with a pool key and tracks a numeric phase in storage slot 0, set during beforeInitialize and advanced by open()
  • open() is a nonpayable entry point that moves the hook from its initial phase to an open phase, after which trading is allowed
  • beforeSwap and afterSwap are both enabled and afterSwap can return a delta, so the hook can take or give currency during swaps
  • Selectors for SELL_BPS, BUY_BPS, treasury, nest, token and genesis suggest buy and sell taxes routed to a treasury address
  • Calls a mint(address,uint256,uint256) function on an external contract and reverts with NotGenesis and AmountOutOfRange errors, suggesting a launch and genesis mint flow
  • Liquidity add and remove callbacks are enabled but only read the phase, so they act as gates rather than accounting
Swap behaviour
beforeSwap reads the phase and can revert before the genesis or open stage, and afterSwap is nonpayable with return-delta permissions, so it can take a percentage of swap output based on the direction of the trade (buy versus sell basis points); exact fee treatment could not be confirmed from bytecode alone.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are view functions that read the phase and can revert to gate liquidity actions; they do not move funds.
Fee behaviour
Buy and sell basis point constants (BUY_BPS, SELL_BPS) indicate a directional fee or tax taken through afterSwap return deltas to a treasury; the exact rates and which direction pays more could not be verified from the decoded bytecode.
Owner & admin controls
No owner or pause function was identified in the decoded selectors; the open() transition appears permissionless but its guard conditions are unknown. Treasury and genesis addresses are exposed as immutable-style getters.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize sets up the pool and phase state; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity by phase; beforeSwap gates swaps by phase; afterSwap applies the swap tax via return delta; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take currency from swaps.

Security & trust assessment

Risk level: high, estimated (decoded bytecode, low confidence).

Who controls it: Without source, a treasury or configuration key cannot be ruled out; any privileged role controlling rates or treasury address could redirect swap-tax proceeds.

Risk to user funds: The hook can take currency from swaps through return deltas and can block swaps and liquidity via phase checks, so user swap output is directly exposed to the tax logic.

Security findings

  • [medium] Return-delta fee capture: afterSwap and beforeSwapReturnDelta permissions let the hook take a portion of every swap output, which can be a large, rate-dependent cut of user funds.
  • [medium] Phase-gated trading: beforeSwap and liquidity hooks revert based on a phase value; if the phase cannot advance, trading and liquidity could be blocked.
  • [medium] Unverified open transition: open() is nonpayable with no visible access check in the decoded selectors, and its conditions could not be confirmed from bytecode.
  • [low] External mint dependency: The hook calls mint on an external contract, so token issuance depends on that contract's behaviour and access control.

Contract details

Verified source
No
Bytecode size
5,403 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, return-delta

Pools using Launchpad hook