Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0xb4b6414b95018cd8e6103c5987ee6b7ed801e0cc 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 takes a fixed fee from each swap in the pool it serves and uses that fee for operations, a target recipient and buybacks that burn the launched token, with fee direction per trade not confirmed from bytecode alone.
How it works step by step
- Initializes a single pool in beforeInitialize and records the pool key and pool id in storage.
- On each swap (beforeSwap), takes a fee in the form of a return delta and accrues it as pending ETH or tokens.
- Tracks pending amounts for an operations wallet and a target, and flushes them through the pool manager unlock flow (unlockCallback and flush).
- Runs a buyback mechanism: once accumulated ETH crosses a threshold, it spends ETH to buy and burn the launched token (totalTokensBurned, totalEthSpentOnBuyback).
- Splits fees by configured basis points (FEE_BPS, OPS_BPS, TARGET_BPS, BUYBACK_BPS) against thresholds (BUYBACK_THRESHOLD, TARGET_THRESHOLD).
- Restricts pool initialization to a launcher address (NotLauncher error selector present).
- Swap behaviour
- beforeSwap and afterSwap are both enabled with return deltas, so the hook can take a cut of swap amounts on each swap and may move currency during swaps; the exact per-direction rule cannot be confirmed from decoded bytecode alone.
- Liquidity behaviour
- beforeAddLiquidity, beforeRemoveLiquidity, afterAddLiquidity and afterRemoveLiquidity selectors are present in the dispatch table, but the callback permissions are not enabled for liquidity, so liquidity changes are not gated or altered by the hook.
- Fee behaviour
- A fee in basis points (FEE_BPS) is taken on swaps as a hook return delta and split between ops, target, and buyback accumulators; the pool itself is initialized as a dynamic-fee pool in beforeInitialize based on the heuristic tag.
- Owner & admin controls
- No owner or pause function selectors were identified in the dispatch table. Launcher-gated initialization is present. Parameter updates were not identified.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: validates and records the pool key on the first initialization. beforeSwap: computes the fee and applies a before-swap return delta. afterSwap: accrues fee amounts and may trigger flushing or buyback steps. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take currency from swaps as its fee.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: Pool initialization depends on the launcher address; no owner or upgrade path was observed, so the main centralization risk is the launcher choosing pool parameters at setup.
Risk to user funds: The hook takes currency from swaps and holds pending ETH and token balances before flushing them to ops, target and buyback recipients, so it does hold user-generated fee funds in transit.
Security findings
- [medium] Return-delta fee capture on swaps: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook takes a share of every swap's currency; the hook's share is fixed by bytecode constants (FEE_BPS) with no evidence of an owner setter.
- [medium] Buyback spends accumulated ETH: Once accumulated ETH crosses BUYBACK_THRESHOLD the hook spends it buying and burning tokens, which trades against the pool and can move price on pool users.
- [low] Self-unlock flow: The hook calls unlock and implements unlockCallback to settle and take currency, so the correctness of its accounting in that flow is critical and was not verified against source.
- [info] Launcher-gated initialization: Pool initialization is restricted to a launcher address (NotLauncher error), meaning a single privileged caller controls which pool the hook serves.
Contract details
- Verified source
- No
- Bytecode size
- 8,269 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad, moves-currency, return-delta, self-unlock
Pools using Launchpad hook
- ETH / CANARY (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today