Launchpad hook on Polygon

Uniswap v4 Hook Contract 0xb0e9dbdbfb5b07fa452d99eee1b6939fb6a14880 on Polygon · Launchpad

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

What it does

A RampPad bonding-curve launch hook that gates liquidity to the platform and charges an owner-adjustable swap fee, with a higher anti-snipe fee for the first 15 minutes after launch.

This read was written for the hook 0x63e0…c880 on Base and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Uses dynamic-fee override so the PoolManager applies a platform fee on every swap.
  • Charges a snipe tax (default 15%) for 15 minutes after the first liquidity add.
  • Records the launch timestamp for each pool on first beforeAddLiquidity.
  • Restricts liquidity additions to the owner and approved callers.
  • Allows the owner to set per-pool fee overrides and the global fee, capped at 20%.
  • Implements no return-delta logic, so the hook does not take tokens from swaps.
Swap behaviour
beforeSwap returns the effective fee (snipe tax, per-pool override, or global fee, capped at 20%) as an override LP fee; the hook makes no balance changes.
Liquidity behaviour
On beforeAddLiquidity only the owner and approved callers may add liquidity; external LPs revert. The first liquidity add records the pool launch timestamp. No hook logic runs on removal.
Fee behaviour
Fee is returned per swap from beforeSwap as a dynamic override: effectiveFeeBps is snipeTaxBps (default 15%) during the snipe window after the first liquidity add, otherwise a per-pool override if set, otherwise global feeBps. The fee is applied by the PoolManager as LP fee; it is not taken as a separate hook delta.
Owner & admin controls
Owner (Ownable) can set the global feeBps, the snipe tax and window, per-pool fee overrides, and the approved LP caller list; owner can transfer or renounce ownership. All fees are capped at 20% (MAX_FEE_BPS = 2000). No pause or upgrade mechanism found.

Enabled Uniswap v4 callbacks

beforeAddLiquidity, beforeSwap

beforeAddLiquidity: restricts liquidity additions to owner/approved callers and records launch time. beforeSwap: returns the effective fee as an override fee so aggregators can quote it. All other callbacks are stubs that revert with HookNotImplemented and are not enabled.

Security & trust assessment

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

Who controls it: The owner can raise fees up to 20% at any time, set a 20% snipe tax for any window length, override fees on individual pools, and grant or revoke LP access. The owner cannot exceed 20% fee and cannot block swaps directly, but can make trading costly up to that cap.

Risk to user funds: The hook does not hold tokens and does not modify balance deltas; user funds are held by the PoolManager and the factory LP position. The owner can impose fees up to 20% on swaps and can gate who adds liquidity, but cannot directly seize or freeze funds.

Security findings

  • [medium] Owner can change swap fees instantly: setFeeBps, setSnipeTax and setPoolFee are instantly effective and onlyOwner, with a 20% hard cap enforced by require.
  • [medium] Liquidity provision is permissioned: Only owner and approved callers can add liquidity; external LP attempts revert with ExternalLPForbidden, so the pool is effectively controlled by the platform.
  • [low] Single-owner key with no timelock: The hook is an OpenZeppelin Ownable contract with no timelock, multisig requirement or pause, so a single key controls fee parameters.
  • [info] No return-delta or token custody by the hook: Hook address encodes only BEFORE_ADD_LIQUIDITY and BEFORE_SWAP and validateHookPermissions is run in the constructor, so the hook cannot take or redirect deltas.

Contract details

Verified source
No
Bytecode size
3,341 bytes
Upgradeable proxy
No
Detected patterns
ownable

Pools using Launchpad hook