LaunchHook on Ethereum
Uniswap v4 Hook Contract 0x322dcec4958c14e021a9f1cd49df11b9457968cc on Ethereum · Launchpad · Verified contract
- Volume (24h)
- $835.66K
- Value locked (TVL)
- $439.47K
- All-time volume
- $102.75M
- Pools using this hook
- 4,870
- Swaps (24h)
- 5,419 (1,514 traders)
- Total swaps
- 434,717
What it does
A token launchpad hook that opens a one-sided liquidity pool for a new token with a decaying anti-snipe fee, collecting trading fees that are split between the token's fee recipient and the platform.
How it works step by step
- Opens a token pool through a factory, seeding a single one-sided position with all token supply across the full tick range.
- Charges an anti-snipe fee that starts near 99% and decays linearly to the launch fee (1% to 3%) over 20 seconds.
- Takes fees as return deltas on both buys and sells, minting ERC-6909 claims to the hook.
- Splits each fee into a creator share and a platform share (0.5% or 1% of traded amount) and credits both in FeeEscrow.
- Optionally notifies a holder distributor of creator fees, ignoring failures.
- Prevents any external liquidity provision or removal, keeping the launch liquidity locked.
- Swap behaviour
- Only exact-input swaps are accepted; exact-output reverts. Buys (quote in, token out) pay a fee taken in the quote currency via beforeSwap, with the rate decaying over the first 20 seconds after launch. Sells (token in, quote out) pay the fee on the output via afterSwap. Trade events are emitted with trader, referrer and comment from hookData.
- Liquidity behaviour
- Liquidity can only be added by the hook itself (beforeAddLiquidity reverts with LiquidityLocked for any other sender). At launch the hook seeds a single one-sided position of the token from the minimum to the maximum usable tick, or from the opening tick to the maximum, depending on which currency is the quote. No afterAddLiquidity, beforeRemoveLiquidity or afterRemoveLiquidity logic exists, and those callbacks revert, so the seeded liquidity is not removable through the hook.
- Fee behaviour
- Each launch sets a fee between 1% and 3% (feePpm between 10,000 and 30,000 out of 1,000,000). For the first 20 seconds after opening the fee decays linearly from 99% to the launch fee as an anti-snipe measure. A buy by the designated dev buyer in the opening block uses the launch fee directly. Fees are taken in the quote currency via a beforeSwap return delta on buys and an afterSwap return delta on sells; the platform takes 0.5% or 1% of the amount (depending on tier) and the rest goes to the fee recipient, optionally notifying a holder distributor.
- Owner & admin controls
- The hook itself has no owner or admin functions; the factory is set as an immutable constructor argument and gates openLaunch. FeeEscrow (separate contract) is Ownable2Step, where the owner can set the hook once and change platformRecipient, which redirects platform fee credits. Fee parameters are constants (MIN_FEE 1%, MAX_FEE 3%, PLATFORM_FEE 0.5% or 1%), not adjustable. No pausing or upgrade mechanism found in the hook.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: restricts pool initialization to the hook itself. beforeAddLiquidity: blocks all external liquidity additions. beforeSwap: enforces exact-input only, applies the time-decaying fee on quote-in buys, and mints fee claims to the hook via return delta. afterSwap: applies the fee on sells, emits Trade events, and credits fees to escrow. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take its fee as a delta on swaps.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The FeeEscrow owner can set platformRecipient, so future platform fees (all fee credits to the platform side) can be redirected to any address. The owner cannot change the hook's fee rates, pause trading, or withdraw user funds directly. The factory address is immutable, so if the factory is compromised it could open arbitrary launches.
Risk to user funds: The hook holds pool-manager claim balances transiently while collecting fees, and sweep moves those to FeeEscrow. Traders' swap funds go through the pool, not the hook. The escrow holds accumulated fees claimable by creators and the platform. Users cannot be blocked from swapping by a pause since none exists, but the seeded liquidity cannot be withdrawn by anyone through the hook.
Security findings
- [medium] Owner-controlled platform fee recipient: Escrow owner can change platformRecipient at any time, redirecting the platform share of all future fees.
- [low] Reliance on hook-driven sweeping for claims: Escrow's claim() calls sweep on the hook when balance is short, and sweep burns pool manager claims and takes tokens to escrow; the logic depends on accounting being consistent, so a bug in fee crediting could cause claim failures.
- [info] External callback to fee recipient: Fee recipients can be an arbitrary contract; the holder distributor notification is wrapped in try/catch so a reverting distributor cannot block swaps.
- [info] Transient storage and dev-buy exemption: Uses transient storage to pass the buy fee from beforeSwap to afterSwap, and the dev-buy exemption depends on sender identity and the opening timestamp.
- [info] Locked seed liquidity: Liquidity is permanently seeded to the hook's own position with no removal path exposed by the hook, so LP capital is locked by design.
Contract details
- Verified source
- Yes (LaunchHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 10,185 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, return-delta, self-unlock
Pools using LaunchHook
- ZC / WETH (0.00% fee) — 24h volume $345.11K, TVL $184.18K, 988 swaps today
- ZKAPI / WETH (0.00% fee) — 24h volume $78.55K, TVL $6.98K, 433 swaps today
- ETAPE / WETH (0.00% fee) — 24h volume $72.17K, TVL $340, 516 swaps today
- V / WETH (0.00% fee) — 24h volume $38.99K, TVL $470, 230 swaps today
- ZEVIO / WETH (0.00% fee) — 24h volume $34.92K, TVL $35.45K, 171 swaps today
- ETHDOTS / WETH (0.00% fee) — 24h volume $23.74K, TVL $0.60, 135 swaps today
- MOCHI / WETH (0.00% fee) — 24h volume $14.22K, TVL $1.93K, 45 swaps today
- WETH / MEEKO (0.00% fee) — 24h volume $13.73K, TVL $0.12, 94 swaps today
- WETH / V (0.00% fee) — 24h volume $11.89K, TVL $222, 63 swaps today
- vCoin / WETH (0.00% fee) — 24h volume $11.48K, TVL $819, 91 swaps today
- WETH / OAI (0.00% fee) — 24h volume $10.50K, TVL $251, 41 swaps today
- NULL / WETH (0.00% fee) — 24h volume $8.94K, TVL $9.28K, 71 swaps today
- WETH / INTELLIFUC (0.00% fee) — 24h volume $7.69K, TVL $0, 27 swaps today
- ONLOFO / WETH (0.00% fee) — 24h volume $7.06K, TVL $0, 29 swaps today
- PEPE / DOPE (0.00% fee) — 24h volume $6.23K, TVL $2.73K, 61 swaps today
- WZKAPI / WETH (0.00% fee) — 24h volume $6.11K, TVL $13, 43 swaps today
- PM / WETH (0.00% fee) — 24h volume $5.71K, TVL $387, 34 swaps today
- WETH / WTZ (0.00% fee) — 24h volume $5.70K, TVL $0, 20 swaps today
- VERIDIA / WETH (0.00% fee) — 24h volume $5.65K, TVL $10.52K, 50 swaps today
- WETH / SNTRAX (0.00% fee) — 24h volume $5.25K, TVL $0, 29 swaps today