Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x2aa2eb22ac48e745e93fecbd42e2b76111cea0cc on Ethereum · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This launch hook keeps trading closed until enabled and then takes a hook-computed cut of swaps through return deltas, so fee and direction details could not be fully confirmed from bytecode.
How it works step by step
- Hook is initialized per pool in beforeInitialize, which records pool id, launch factory and round timing parameters in storage
- Trading is gated until enableTrading is called; beforeSwap reverts with TradingClosed while it is not enabled
- beforeSwap and afterSwap use the return-delta permissions to adjust swap amounts and take a fee-based share of swap flows during the launch
- Swap-driven amounts are accounted into rewards and burn claim balances, with award, claim, payout and burnClaims functions for distribution
- Rounds are closed with closeRound after a minimum number of blocks (MIN_ROUND_BLOCKS) and fees are derived from feeNumerator and feeFor
- unlockCallback is used for Pool Manager unlock flows to move currency (take) during the launch mechanics
- Swap behaviour
- Swaps are blocked until trading is enabled. Once enabled, beforeSwap and afterSwap take return deltas and move currency through the pool manager, so swaps are not plain pass-through; the exact direction and size of the extra charge cannot be fully confirmed from bytecode alone.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Fees are computed by the hook (feeNumerator and feeFor) and taken as return deltas on swaps rather than using the pool's static fee; exact rates are not determinable without source.
- Owner & admin controls
- An owner address (owner()) exists and launch-related functions such as enableTrading, closeRound, flushBurn and payout are callable; the exact access checks cannot be confirmed without source.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize records pool configuration and launch parameters; beforeSwap gates trading and computes the swap-side adjustment; afterSwap accounts results and rewards; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give currency on swaps.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A privileged owner or launch factory can enable trading, close rounds and trigger payouts, which affects when users can trade and where accumulated amounts go.
Risk to user funds: The hook can hold and move pool currency through return deltas and take/unlock calls on swaps, and payout and burn functions move accumulated balances, so user swap flows and pool funds are exposed to the hook's logic.
Security findings
- [high] Return-delta swap fee: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the hook moves currency via the pool manager, so the hook can take a portion of every swap's amounts.
- [medium] Owner-controlled launch flow: The contract is ownable and exposes enableTrading, closeRound, payout and flushBurn, which control when trading opens and how accumulated funds are paid out.
- [medium] Trading gate: beforeSwap reverts with TradingClosed until enableTrading is called, so swaps can be blocked by the admin path.
- [info] No source verification: Analysis relies on decoded bytecode and selectors only; access control and fee math could not be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 12,769 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, ownable, return-delta, rewards, self-unlock
Pools using Launchpad hook
- MAD / FWA (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today