Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x94e5d716583ce74a1c4f69c8abb4c6ace70300cc on Ethereum · Launchpad

Volume (24h)
$12.71K
Value locked (TVL)
$0.25
All-time volume
$12.71K
Pools using this hook
1
Swaps (24h)
122 (54 traders)
Total swaps
122

What it does

This launchpad-style hook attaches swap callbacks with return deltas to a pool, so it can adjust or take part of swap amounts for certain traders, but the exact fee direction and which trades pay more cannot be confirmed from the decoded bytecode.

How it works step by step

  • Exposes a large set of launch and pool setup entry points (launch, create, register, initialize, open, start) that take a currency, fee, tick spacing and sqrt price and bootstrap a Uniswap v4 pool
  • Implements beforeSwap and afterSwap hooks that can return deltas, so the hook can take or give back part of a swap amount
  • Contains staking, deposit, claim, mint and seed style functions alongside a rewards-like tracking flag, suggesting a token sale or reward distribution mechanism
  • Uses an unlock and unlockCallback flow with self-unlock, meaning the hook calls back into the pool manager to settle balances
  • Maintains a burn tracker (totalBurned, MAX_BURN_FEE_BPS) and per-address exemption mapping that gates behaviour for certain callers
Swap behaviour
beforeSwap and afterSwap are both enabled and both can return deltas, so the hook can adjust the amounts a swap settles and move currency during a swap. Whether a given trade pays more or less cannot be determined from the decoded bytecode alone; the exemption and burn-fee logic suggests some addresses are treated differently, but the exact direction and amount are unknown.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present as views, but the permission set does not enable them, so no liquidity callbacks are active.
Fee behaviour
Fees appear to be tied to a burn mechanism (MAX_BURN_FEE_BPS, totalBurned) and an exemption list, but the mechanism that computes the fee in beforeSwap or afterSwap cannot be fully determined from decoded bytecode. Treat fee handling as partially understood.
Owner & admin controls
An owner-style role is implied by the storage layout and by functions such as configure, setup, withdrawToken and the exempt mapping, but the exact privileged operations and whether an upgrade path exists cannot be confirmed from bytecode.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap is used to gate or adjust swaps and may return a delta; afterSwap is used to record post-swap state and may return a delta that moves currency.

Security & trust assessment

Risk level: high, estimated (decoded bytecode, low confidence).

Who controls it: A privileged key could appear able to configure pool parameters, adjust exemptions, and withdraw tokens held by the hook, which would affect user funds if the key is compromised or misused.

Risk to user funds: The hook can hold and move currency through return deltas and a withdrawal function, so funds sent through pools using this hook are exposed to the logic and to privileged withdrawal.

Security findings

  • [high] Return deltas let the hook move currency during swaps: beforeSwapReturnDelta and afterSwapReturnDelta are both enabled, so the hook can take or credit tokens on every swap. Users should check the amounts settled against their expectations.
  • [high] Privileged withdrawal function present: A withdrawToken(address,address,uint256) selector and a setup/configure family are present, which suggests a privileged caller can move tokens held by the hook.
  • [medium] Exemption list can gate swaps: A mapping(address=>bool) read in beforeSwap together with an exempt(address) view suggests certain addresses receive different treatment, which could disadvantage ordinary traders.
  • [medium] Self-unlock pattern calls back into the pool manager: The contract uses unlock and unlockCallback to settle balances mid-operation, increasing the surface for reentrancy-style mistakes if state is not carefully ordered.
  • [info] Source not verified: No verified source is available, so the analysis relies on decoded selectors and storage reads, which limits how confidently the exact logic can be stated.

Contract details

Verified source
No
Bytecode size
21,467 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, launchpad, moves-currency, return-delta, rewards, self-unlock

Pools using Launchpad hook