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