Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x057574b52d493f39e66d42734a1bf6a1fbb278cc on Ethereum · Launchpad
- Volume (24h)
- $292
- Value locked (TVL)
- $1.41
- All-time volume
- $292
- Pools using this hook
- 1
- Swaps (24h)
- 4 (2 traders)
- Total swaps
- 4
What it does
This hook runs a token launch where traders and LPs interact with a pool whose swaps and fees are adjusted by the contract during the sale, but the exact direction of fee or price changes cannot be confirmed from the bytecode alone.
How it works step by step
- Acts as a launch hook for a token sale: deposits are accepted through depositFor and deposit while the sale window is open, tracked per account in storage
- Tracks deposited balances by account and by index, with a position mapping per account and a pending counter
- Uses beforeSwap and afterSwap with return-delta permissions, so the hook can adjust swap amounts and take a share of swap flows
- Uses beforeInitialize and afterInitialize to set up pool state at pool creation, and beforeAddLiquidity to gate liquidity additions
- Exposes ballot and book views and a remit function that appears to return funds or distribute proceeds after the sale
- Tracks an interest rate between MIN_RATE and MAX_RATE and accrues interest that can be claimed per account via claimInterest
- Swap behaviour
- beforeSwap and afterSwap are enabled with return-delta permissions, so the hook can alter the swap amounts it returns; the exact fee or price effect per trade direction cannot be determined from the decoded bytecode.
- Liquidity behaviour
- beforeAddLiquidity is enabled and can block or gate liquidity additions; beforeRemoveLiquidity and afterRemoveLiquidity selectors exist but their hook permissions are not enabled on this address.
- Fee behaviour
- The hook calls updateDynamicLPFee on the pool manager, so it sets a dynamic LP fee; the exact fee schedule and which trades pay more or less cannot be determined from the decoded bytecode.
- Owner & admin controls
- An OWNER() getter, a treasury() getter, and a poke() function exist; owner-only gating and parameter-change paths cannot be confirmed without source. remit() and claimInterest() move funds to recipients.
Enabled Uniswap v4 callbacks
beforeInitialize, afterInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize and afterInitialize set up pool state at creation; beforeAddLiquidity gates liquidity additions; beforeSwap and afterSwap run the sale-related swap logic; beforeSwapReturnDelta and afterSwapReturnDelta let the hook change the swap amounts it settles.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: An owner or treasury key may control remit, poke and parameter-related paths; without source the exact powers are unverified.
Risk to user funds: The hook holds deposited tokens and can take tokens through swap return deltas, so user deposits and swap flows depend on the contract's sale and remit logic.
Security findings
- [high] Return-delta permissions: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can take or reallocate tokens from swaps through return deltas.
- [high] Hook holds deposited funds: deposit, depositFor and withdraw functions indicate the contract custodies user deposits and pays out via remit and claimInterest.
- [medium] Dynamic fee updates: The hook calls updateDynamicLPFee, so the fee applied to swaps is set by contract logic that may be adjustable by an owner or the sale state.
- [medium] Owner and treasury privileges: OWNER and treasury getters exist alongside remit and poke, suggesting privileged roles that could affect fund flows; the exact authority cannot be confirmed from bytecode.
Contract details
- Verified source
- No
- Bytecode size
- 12,138 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad, return-delta
Pools using Launchpad hook
- ETH / FOMC (Dynamic fee) — 24h volume $292, TVL $1.41, 4 swaps today