Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0xce80e29fcb8d4b82c3caa97111c62a09fd079fcc on Ethereum · Launchpad
- Volume (24h)
- $7.75K
- Value locked (TVL)
- $493
- All-time volume
- $7.75K
- Pools using this hook
- 1
- Swaps (24h)
- 59 (31 traders)
- Total swaps
- 59
What it does
This launchpad hook charges the launch-window swap fees and creator and platform shares on pool trades, and can restrict or cap buying during the launch period, while LPs add and remove liquidity through its accounting.
How it works step by step
- Acts as a Uniswap v4 hook for a token launchpad, initializing pools with a launch configuration (fee profile, launch window, creator and platform shares) in afterInitialize.
- Gates swaps through beforeSwap and records price observations in afterSwap, with an on-chain observation ring buffer (observe, latestObservation, observationCount).
- Uses return deltas (beforeSwapReturnDelta and afterSwapReturnDelta) and self-unlock via unlockCallback to take or settle currency inside the pool manager, so the hook can alter swap amounts and move tokens.
- Tracks per-pool fees and governance (pendingFees, governanceOf, poolConfig, positions) and accrues platform and creator shares that can be claimed through claim, claimPlatform and collect.
- Lets a launcher seed liquidity with seedLiquidity and enforces buyer limits and no-trade periods during the launch window, as suggested by the BuyerLimitExceeded and NoTrade error selectors.
- Gates liquidity additions and removals through beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity, and has a beforeDonate hook.
- Swap behaviour
- beforeSwap is gated during the launch window (may revert with NoTrade or BuyerLimitExceeded) and can return a delta; afterSwap records observations and can take a share of the swap via return delta and self-unlock. Exact fee amounts cannot be fully determined without source.
- Liquidity behaviour
- Liquidity add and remove calls have before and after callbacks that check the position and update accounting (positions mapping); seedLiquidity lets a launcher place initial liquidity into the pool.
- Fee behaviour
- Fees are read from a FEE_PROFILE and a MAX_FEE_CAP with pendingFees accrued per pool; creator and platform shares are set by DEFAULT_CREATOR_SHARE_BPS, CREATOR_SHARE and PLATFORM_FEE_BPS and are claimable by the creator, the platform recipient and agents (AGENT_SHARE).
- Owner & admin controls
- A launcher address (NotLauncher error) can seed liquidity and configure launches, a protocol treasury and platform recipient receive platform fees, and a creator recipient and governance value are set per pool. An agent registry exists. No upgrade or pause functions were identified from the decoded selectors, but a proxy cannot be ruled out from bytecode alone.
Enabled Uniswap v4 callbacks
afterInitialize, beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
afterInitialize sets up the launch configuration per pool; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; afterAddLiquidity and afterRemoveLiquidity update accounting; beforeSwap gates trades; afterSwap records observations and fees; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts; beforeDonate and afterDonate are present for donations.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The launcher and any owner-like role can configure launch parameters and seed liquidity, and the platform and creator recipients control where accrued fees go.
Risk to user funds: The hook can take currency from swaps through return deltas and holds accrued fees and positions in its own storage, so user trades and LP positions depend on its accounting being correct.
Security findings
- [medium] Return deltas and self-unlock move pool funds: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the hook calls unlock and take, so it can take currency from swaps and alter the amounts users receive.
- [medium] Launch-window trading restrictions: NoTrade and BuyerLimitExceeded errors indicate swaps can be blocked or capped during the launch window, which can prevent users from trading.
- [medium] Privileged launcher role: A launcher address controls liquidity seeding and launch setup (NotLauncher gate); misconfiguration or key compromise could affect pool parameters.
- [info] Unverified source: No verified source is available, so exact fee math, admin powers and upgradeability are inferred from decoded selectors and storage only.
Contract details
- Verified source
- No
- Bytecode size
- 22,956 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, launchpad, moves-currency, oracle, return-delta, self-unlock
Pools using Launchpad hook
- ETH / FPOOL (Dynamic fee) — 24h volume $7.75K, TVL $493, 59 swaps today