Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0xda7db7e1963750a4a33d4d5aa742fdeaf76200cc on Ethereum · Launchpad
- Volume (24h)
- $40.59K
- Value locked (TVL)
- $0
- All-time volume
- $40.59K
- Pools using this hook
- 1
- Swaps (24h)
- 221 (66 traders)
- Total swaps
- 221
What it does
This hook appears to be a launchpad that pairs a new token with a base currency and can take or return currency during swaps, but the exact fee and pricing rules could not be confirmed without verified source.
How it works step by step
- Exposes launch, create, register, initialize and setup entry points that take a pool key tuple (currency0, currency1, fee, tickSpacing, hooks) and a starting sqrtPrice, indicating it creates or configures pools for token launches
- Stores a pair token address and an isToken0 flag in its own storage, linking the launched token to a paired currency
- Implements beforeSwap and afterSwap callbacks that read and write storage slots for swap accounting, and can return a delta through beforeSwapReturnDelta and afterSwapReturnDelta, so it can take or give currency during a swap
- Implements reward and staking style functions (stake, claim, deposit, mint, supply, seed, fund) and a totalBurned counter with MAX_BURN_FEE_BPS, suggesting a burn or fee-based reward mechanism
- Uses unlock and unlockCallback with the pool manager, and calls take, settle, sync and modifyLiquidity, so it moves currency between itself and the PoolManager
- Has an exempt allowlist, a mapping of addresses to flags, and an execute/exec/relay dispatcher that accepts arbitrary bytes, which widens what privileged callers can trigger
- Swap behaviour
- beforeSwap and afterSwap are both enabled and can return deltas, so the hook may adjust the amounts of a swap and take or pay currency in addition to the pool's normal settlement. The exact pricing or direction rule cannot be determined from decoded bytecode alone.
- Liquidity behaviour
- beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present as view functions, but these are not in the hook permissions, so they are likely not invoked by the PoolManager. The hook itself calls modifyLiquidity through unlock, so it can add or remove liquidity it owns.
- Fee behaviour
- Fee handling is not fully determined. A burn fee tied to MAX_BURN_FEE_BPS and totalBurned is present, and the swap return-delta hooks may take a portion of swap amounts, but the exact fee schedule and recipients cannot be confirmed from the bytecode.
- Owner & admin controls
- The contract has an owner-style storage slot for privileged functions (writes to slot 7 via a no-argument call, and a mapping of allowed addresses at slot 8 and slot 13 that is written by several functions). Upgrade or pause logic is not confirmed. No explicit owner transfer function was decoded.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap is used to run pre-swap logic and gate or adjust swaps; afterSwap is used to update accounting and reward state after a swap; beforeSwapReturnDelta lets the hook take or give currency before the swap; afterSwapReturnDelta lets the hook take or give currency after the swap.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A privileged key may be able to change allowlists, trigger launch or setup functions, and possibly adjust fee or reward parameters. The impact on users depends on logic that could not be verified.
Risk to user funds: The hook can take and give currency through its return-delta permissions and holds balances through its currency-moving functions, so user swap proceeds and LP positions routed through this pool may be affected.
Security findings
- [high] Return deltas let the hook take currency during swaps: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can move currency out of swaps. Without source, the size and destination of these deltas cannot be bounded.
- [medium] Privileged allowlist and admin-gated functions: Mappings at storage slots 8, 11, 13 and 14 gate several functions, and an owner-style flag controls others. A privileged key may be able to change which addresses are exempt or enabled.
- [medium] Generic execute and relay dispatchers: execute, exec, relay and performUpkeep accept arbitrary bytes and are payable, so the set of actions they can trigger depends on decoded logic that could not be fully resolved.
- [info] Unverified source: No verified source is available, so function behaviour is inferred from selectors and storage access patterns and may be incomplete.
Contract details
- Verified source
- No
- Bytecode size
- 21,268 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, erc6909-claims, launchpad, moves-currency, return-delta, rewards, self-unlock
Pools using Launchpad hook
- ETH / FOREVER (1.00% fee) — 24h volume $40.59K, TVL $0, 221 swaps today