Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x83bf6461bd29a207127ad347707844effc9068cc on Ethereum · Launchpad

Volume (24h)
$27.64K
Value locked (TVL)
$12.09K
All-time volume
$27.64K
Pools using this hook
1
Swaps (24h)
182 (93 traders)
Total swaps
182

What it does

This launch hook charges a higher fee on early swaps in new pools that steps down over time, so early buyers pay more and later trades pay closer to the base fee, while a registration authority controls which pools qualify.

How it works step by step

  • Registers pools through a register(address) entry point gated to a registration authority, and tracks launch pools in a feePools mapping keyed by pool id.
  • Applies a launch fee schedule that starts at LAUNCH_FEE_START_BPS and is intended to decay toward LAUNCH_FEE_BPS, with a standard FEE_BPS and feeBps() getter.
  • Uses an access window of ACCESS_WINDOW_BLOCKS blocks, with protectionStartBlock and protectionEndBlock markers, during which liquidity addition is restricted.
  • Takes fees on swaps through beforeSwapReturnDelta and afterSwapReturnDelta, accruing them per pool in accruedFees and forwarding them via a feeHook/locker flow.
  • Holds and settles pool currency through the pool manager (take, mint, burn calls observed), and issues ERC-6909 claim tokens.
Swap behaviour
Swaps call beforeSwap and afterSwap; during the launch window the hook charges a launch fee that is higher than the standard fee and steps down over time, so early buys pay more and later trades pay closer to the base fee. Return deltas let the hook take a share of the swap amount.
Liquidity behaviour
beforeAddLiquidity is enabled and can gate additions during the protection window; removals are not hooked, so liquidity removal is not directly restricted by the hook.
Fee behaviour
Dynamic launch fee in basis points: starts at LAUNCH_FEE_START_BPS and decays toward LAUNCH_FEE_BPS, with per-pool tracking via poolFeeBps and accruedFees; a standard FEE_BPS applies after the launch schedule.
Owner & admin controls
A registrationAuthority controls register(address); a locker address is stored and a token address is exposed. No upgrade pattern or pause function was identified in the decoded selectors, but the exact scope of registrationAuthority and locker powers cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize registers and validates pools; beforeAddLiquidity gates liquidity during the access window; beforeSwap sets the dynamic launch fee; afterSwap settles accrued fees; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts.

Security & trust assessment

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

Who controls it: The registration authority decides which pools are registered for the launch fee, and the locker/feeHook path determines where accrued fees are routed; a compromised key could redirect fees or register pools selectively.

Risk to user funds: The hook holds accrued fee balances per pool and moves currency through the pool manager on swaps; it can take a share of user swap amounts via return deltas and can restrict liquidity additions during the access window.

Security findings

  • [medium] Return deltas take a share of swaps: beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the amounts settled on swaps and move currency via take/mint/burn, so fee take amounts are set by hook logic rather than the pool.
  • [medium] Privileged registration and locker: register(address) is gated by a registration authority and a locker address is stored in slot 2, so privileged keys influence which pools get the launch fee and where accrued fees go.
  • [low] Access window restricts liquidity addition: beforeAddLiquidity can block additions during the protection window defined by ACCESS_WINDOW_BLOCKS, which may prevent LPs from entering pools early.
  • [info] No source to verify logic: Analysis is from decoded bytecode only; function bodies, gating conditions and fee transfer destinations could not be read directly.

Contract details

Verified source
No
Bytecode size
7,866 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, launchpad, moves-currency, return-delta

Pools using Launchpad hook