Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x6b5115b68aaf0142f62d127df9a497d2ce37eaec on Ethereum · Launchpad
- Volume (24h)
- $234
- Value locked (TVL)
- $0
- All-time volume
- $234
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
A launchpad-style hook that applies a dynamic, MEV-aware fee to swaps and splits the collected fees between the platform, token creator, dividend holders and a buyback pot.
How it works step by step
- Sets a dynamic swap fee via feeBpsNow with min and max bounds and early-block snipe limits.
- Takes a share of each swap through before and after swap return deltas.
- Splits collected fees between platform, creator, dividends and a buyback pot using basis-point constants.
- Tracks owed balances per platform, creator and holder and distributes them via pushPlatform, pushDividends and payCreator.
- Locks or restricts liquidity add and remove in the initial phase using a LiquidityIsLocked condition.
- Uses an unlockCallback with take to move pool currency during hook-initiated unlocks.
- Swap behaviour
- beforeSwap computes a dynamic fee (bounded by min and max bps, with snipe limits) and afterSwap settles the fee split; return deltas let the hook take its share from the swap.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are implemented and the hook appears to restrict liquidity changes (LiquidityIsLocked error present), likely locking liquidity during an initial phase; after-liquidity callbacks are also present but their exact logic is not determinable from the bytecode alone.
- Fee behaviour
- Dynamic fee reads via feeBpsNow(address,bool) bounded by MIN_FEE_BPS and MAX_FEE_BPS constants, with a MEV_CAP_BPS and snipe limits (MAX_SNIPE_BPS, MAX_SNIPE_BLOCKS) suggesting elevated fees in early blocks. Fee proceeds appear split between platform, creator, dividends and a buyback pot according to CREATOR_SPLIT_BPS, BUYBACK_SQRT_BPS and MAX_POT_SHARE_BPS constants, with balances tracked in platformOwed, creatorOwed and buybackPot.
- Owner & admin controls
- Deployer-gated: setFactory(address) can be called once by the deployer to set the factory address (AlreadySet guard). Other privileged-looking selectors (pushPlatform, pushDividends, payCreator, collect) appear to be permissionless distribution/collection entry points rather than owner parameter setters; no pause, upgrade proxy or fee-setting owner function was identified from the decoded selectors.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize and afterInitialize set up per-pool configuration and stage data; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; beforeSwap and afterSwap implement dynamic fee and snipe/MEV controls and accounting; beforeDonate and afterDonate are present; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts as return deltas, which is how fees are skimmed to platform, creator and buyback accounts.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: The deployer role controls one-time factory wiring; the owner-like power is limited, but any address able to call unlockCallback or distribution functions depends on correct access checks that could not be verified from bytecode alone.
Risk to user funds: The hook holds balances for platform, creator, dividends and buyback accounts and moves tokens through take and unlockCallback. Users trading through the pool are charged a dynamic fee and may be restricted from removing liquidity during a lock window; funds could be stranded if accounting or distribution logic is faulty.
Security findings
- [info] Swap return delta skims fees: The hook takes a share of swaps via return deltas, so every swap routed through the pool pays the hook's fee split before reaching LPs.
- [medium] Hook moves currency inside callbacks: The hook uses self-unlock and currency movement through take and unlock, meaning it moves pool currency during callbacks; a bug in accounting could misallocate or strand funds.
- [low] One-time factory configuration: setFactory is callable by the deployer and guarded by AlreadySet, so the factory address is fixed after the first call; no upgrade or pause path was observed.
- [medium] Liquidity may be locked: Liquidity add and remove can be restricted by a LiquidityIsLocked condition, which could prevent LPs from exiting during the locked phase.
Contract details
- Verified source
- No
- Bytecode size
- 19,276 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock
Pools using Launchpad hook
- INTEL / WETH (0.00% fee) — 24h volume $234, TVL $0, 2 swaps today