Launchpad hook on Arbitrum

Uniswap v4 Hook Contract 0x2ecc5a5321087f068336e11190cc25de345da8cc on Arbitrum · Launchpad

Volume (24h)
$1.97
Value locked (TVL)
$0
All-time volume
$1.97
Pools using this hook
1
Swaps (24h)
2 (1 traders)
Total swaps
2

What it does

This Clanker-style launchpad hook charges dynamic swap fees, which can be higher during early MEV-protected launch periods, splits fees between creators and the protocol, and never blocks LP withdrawals.

How it works step by step

  • Runs Clanker-style token launch pools that pair a new token with a paired asset such as WETH, with launch-phase rules and a later 'graduated' state.
  • Charges dynamic swap fees per pool, with separate fee rates and constants for the LP fee, an MEV-protection fee and a protocol fee.
  • Takes a protocol fee from swaps through return deltas and tracks creator fees accrued per pool.
  • Supports an optional per-pool MEV module that can change fees during an early window after pool creation.
  • Gates adding liquidity through a beforeAddLiquidity check, likely limiting LP positions to the launch locker or position manager while the launch is active.
Swap behaviour
Before and after each swap the hook sets a dynamic fee, may run an MEV module during the launch window, and can take a protocol fee from the swap amounts through return deltas. The exact rates and caps cannot be confirmed from bytecode alone.
Liquidity behaviour
The hook checks liquidity additions, which may limit who can add liquidity during launch. Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.
Fee behaviour
The swap fee is dynamic and bounded by internal maximums (MAX_LP_FEE, MAX_MEV_LP_FEE, and MIN/MAX_PROTOCOL_FEE), whose exact values are not readable from bytecode. Protocol fees build up in the hook and are sent out with flushProtocolFees, and creator fees are tracked per pool.
Owner & admin controls
A privileged caller can change global fee rates (three uint16 values) and flush the collected protocol fees to an address, and MEV modules can set per-pool fees. The exact caps come from hard-coded constants whose values cannot be checked without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: sets up the launch pool settings; beforeAddLiquidity: checks or gates new liquidity; beforeSwap: sets the dynamic fee and runs MEV logic; afterSwap: records fees and updates curve state; beforeSwapReturnDelta/afterSwapReturnDelta: lets the hook take protocol fees from swap amounts.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, medium confidence).

Who controls it: An owner or factory role can adjust fee rates within coded maximums and decide where protocol fees are sent. Per-pool MEV modules can raise fees during the launch window.

Risk to user funds: Traders pay dynamic fees taken from swap amounts, up to caps whose exact values are unknown. LP principal cannot be locked or drained by the hook.

Security findings

  • [medium] Unverified bytecode with active swap deltas: The hook can take part of swap amounts through return deltas, and the fee caps exist as constants but their values cannot be verified from bytecode.
  • [low] Admin-adjustable fee rates: A setter writes the global fee parameters, which are presumably bounded by MAX_PROTOCOL_FEE and MAX_LP_FEE.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw.

Contract details

Verified source
No
Bytecode size
23,123 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, fee-sharing, launchpad, mev-protection, return-delta, self-unlock

Pools using Launchpad hook