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