Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x2fb8308694e72364794dc42a2837c515331de8cc on Ethereum · Launchpad

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

What it does

This hook runs a token launch pool that restricts early buying and charges a launch fee and tax on swaps, with the fees credited to the creator and treasury, so traders pay the extra amount on swaps while LPs are subject to pause and treasury controls set by the owner.

How it works step by step

  • Acts as a Uniswap v4 hook that gates pool initialization, liquidity additions and removals, swaps, and donations, indicating a token launch pool contract
  • Maintains a registry of launches keyed by token address with pool key mappings, launch counts, and an array of all launched tokens
  • Enforces launch-phase controls including a snipe-block window, a maximum buy size in basis points, and a global pause flag for launches
  • Applies a launch fee and a tax, with return-delta permissions allowing the hook to take a portion of swap amounts during swap callbacks
  • Accrues creator and treasury balances from fees, with functions to claim creator amounts, pay the creator and pay the treasury
  • Uses an unlock callback and a relayer fee parameter, suggesting the hook performs settlement or fee transfers through the pool manager
Swap behaviour
Swap callbacks gate trades before execution, enforcing snipe-block timing and the maximum buy limit, and after execution the hook can apply a launch fee or tax via return deltas and accrue the amount to creator and treasury balances. Exact tax rates and which trade direction pays more could not be determined from decoded bytecode alone.
Liquidity behaviour
Before-add and before-remove liquidity callbacks are present and an after-remove callback exists, and the hook can block liquidity changes when launches are paused. Detailed liquidity restrictions could not be fully determined without source.
Fee behaviour
Fees appear to be a launch fee and a tax taken by the hook through return deltas on swaps, with accrued amounts tracked for the creator and the treasury and claimable through payCreator, claimCreator and payTreasury. The exact fee formula could not be determined from decoded bytecode.
Owner & admin controls
The owner can set the treasury address, pause or unpause launches via setLaunchesPaused, transfer or renounce ownership with a two-step acceptOwnership flow, and call setTreasury; the owner is an Ownable contract owner. No upgradeability was detected, but the presence of a proxy or implementation pattern could not be ruled out from decoded bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize validates or registers a new launch pool; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; beforeSwap enforces snipe and buy limits before a trade; afterSwap accrues fees and tax after a trade; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a portion of swap amounts.

Security & trust assessment

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

Who controls it: A single owner key controls the treasury address, launch pause state and ownership transfer; if the key is compromised it could redirect treasury accruals or pause all launch pools.

Risk to user funds: The hook takes and holds accrued creator and treasury balances and can move currency through return deltas and the unlock callback, so user swap amounts and pool funds pass through hook-controlled logic; the owner can also pause swaps and liquidity.

Security findings

  • [medium] Return-delta fee capture: beforeSwapReturnDelta and afterSwapReturnDelta permissions let the hook take currency from swaps, so a pricing change or parameter change by the owner would directly affect the amount taken from traders.
  • [medium] Owner-controlled treasury and pause: The owner can change the treasury address and pause launches via setLaunchesPaused, which can block swaps or liquidity actions in launch pools.
  • [info] Fee parameters not verifiable: Fee and tax rates are read from storage slots that cannot be confirmed without source, so the maximum fee an owner could set is unknown.
  • [info] Relayer fee cap present: A maxRelayerFee view and a RelayerFeeTooHigh error suggest a cap on relayer fees, which limits one privileged-fee vector.

Contract details

Verified source
No
Bytecode size
22,615 bytes
Upgradeable proxy
No
Detected patterns
erc20, launchpad, moves-currency, ownable, return-delta, self-unlock, tax

Pools using Launchpad hook