Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0xf75703ed2a799caf52d076e32b2921d1412260c0 on Ethereum · Launchpad

Volume (24h)
$102.04K
Value locked (TVL)
$84.64K
All-time volume
$102.04K
Pools using this hook
1
Swaps (24h)
104 (83 traders)
Total swaps
104

What it does

A token launch hook where early buyers pay a higher fee that decays to a base fee and face a per-wallet buy cap during a guard period, while LPs can always withdraw freely.

How it works step by step

  • Launches a single token pool: the owner calls a launch function that creates the pool and seeds it with the hook's own liquidity position (and an anchor position).
  • Charges a launch fee that starts high and decays over a set period down to a base fee; the exact start, maximum and base values are constants not readable from the bytecode alone.
  • During an early guard period, caps how much each wallet can buy, tracked per address after each swap.
  • Keeps a simple price oracle (cumulative tick observations) updated on swaps.
  • Lets fees earned by the hook-owned liquidity be collected and sent to a fixed fee recipient.
Swap behaviour
Before each swap the hook updates its oracle and sets the current decaying fee; after the swap it records the buyer's purchased amount and can revert buys over the per-wallet limit while the guard period is active. It cannot take tokens from swaps via return deltas.
Liquidity behaviour
No add or remove liquidity callbacks are enabled, so third-party LPs can add and withdraw freely; the hook itself manages its own launch liquidity position via the PoolManager.
Fee behaviour
Swap fee starts at a START_FEE value (bounded by a MAX_START_FEE constant) and decays to a BASE_FEE over the fee decay period; exact percentages are hard-coded constants not visible in decoded bytecode. Fees from the hook's liquidity position go to a fixed FEE_RECIPIENT.
Owner & admin controls
The owner (two-step ownable) can trigger the launch and appears to use one owner-gated function taking an amount and address, likely to manage the hook's own position or funds; fee constants and recipient appear hard-coded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap

beforeInitialize restricts pool creation to the hook's launch setup; beforeSwap updates oracle and applies the decaying fee; afterSwap enforces the per-wallet buy cap during the guard period.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, medium confidence).

Who controls it: A single owner controls launch and an owner-only function over the hook's own liquidity; they cannot block third-party LP withdrawals or take swap tokens.

Risk to user funds: The hook only controls its own seeded liquidity and its collected fees; traders pay the pool's decaying fee (exact range unverified) and third-party LP principal cannot be locked or drained.

Security findings

  • [low] Per-wallet buy cap during guard period: Early buys above a fixed per-wallet limit can be rejected until the guard period ends.
  • [low] Decaying launch fee: Early trades pay a higher fee that decays to a base fee; exact percentages cannot be confirmed from bytecode.
  • [info] Owner-gated position function: An unnamed owner function taking an amount and address touches the hook's own liquidity position; it cannot touch other LPs' positions.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks and return deltas are disabled, so LPs cannot be blocked and swaps cannot be skimmed via deltas.

Contract details

Verified source
No
Bytecode size
18,486 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, fee-sharing, launchpad, moves-currency, oracle, ownable, self-unlock

Pools using Launchpad hook