Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x97d9303865d644a65bb878e8c71cb290d02d6acc on Ethereum · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 138 (93 traders)
- Total swaps
- 138
What it does
This launchpad hook manages coin creation and a stepped schedule and can alter swap amounts through return deltas, but whether trades pay more or less could not be confirmed from the decoded bytecode.
How it works step by step
- Acts as a launchpad hook that creates and registers new coins (coinCount, allCoins, isCoin, getCoin) with a genesis pool and a hook token
- Stores per-coin pool keys and opening ticks and tracks a genesis launcher and genesis sqrt price
- Runs a step-based schedule (STEP_INTERVAL, MAX_STEP_BPS, nextStepAt, step) that advances coin state over time
- Uses a dynamic fee (FEE_BPS, EMA_WINDOW, MAX_IMPACT) and applies return deltas on swaps via beforeSwap and afterSwap
- Distributes accrued value to creator, treasury and protocol shares (CREATOR_PCT, TREASURY_PCT, PROTOCOL_PCT, distribute, claim) and supports transferCreator and setFeeRecipient
- Uses an agent/module system (setAgent, activateModule, cancelModule, MODULE_DELAY, MODULE_GAS) and calls the pool manager's unlock and take functions
- Swap behaviour
- beforeSwap and afterSwap are both enabled with return-delta permissions, so the hook can alter the amounts of a swap and take or hold currency during it. The exact direction of any fee or delta cannot be determined from decoded bytecode alone, so which trades pay more or less is not confirmed.
- Liquidity behaviour
- beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present and can run checks around liquidity changes. Their specific effect could not be determined from the decoded bytecode.
- Fee behaviour
- Uses a dynamic fee based on FEE_BPS, an EMA window and a maximum impact parameter, with a fee-sharing split among creator, treasury and protocol recipients.
- Owner & admin controls
- Setter functions setAgent, activateModule, cancelModule, setFeeRecipient and transferCreator exist, and the access-control rules around them could not be verified from bytecode. Module activation is delayed by MODULE_DELAY.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize sets up each pool when it is created; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; beforeSwap sets the dynamic fee and may return a delta; afterSwap updates state and may return a delta; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give currency during swaps.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A privileged agent or owner could potentially register modules, redirect fee recipients and creator shares, and influence pool behaviour, depending on access controls not visible here.
Risk to user funds: The hook has return-delta permissions and calls take and unlock on the pool manager, so it can hold, move or take pool and user tokens during swaps and liquidity operations.
Security findings
- [high] Return deltas let the hook move currency: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the bytecode calls take and unlock on the pool manager, so the hook can move user and pool tokens during swaps.
- [medium] Privileged agent and module controls: setAgent, activateModule and cancelModule can change which modules run, and those modules gate or alter pool behaviour; the restrictions on these calls could not be confirmed.
- [medium] Recipient reassignment: setFeeRecipient and transferCreator can redirect fee and creator share flows, and whether they are restricted to the right parties could not be verified.
- [info] No verified source: Analysis relies on decoded bytecode only, so the exact arithmetic, access checks and upgrade status remain unconfirmed.
Contract details
- Verified source
- No
- Bytecode size
- 23,452 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, fee-sharing, launchpad, moves-currency, return-delta, self-unlock
Pools using Launchpad hook
- ETH / HOOK (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today