Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x2778f7ec64325a66042ab97a32b860aa4aa620cc on Ethereum · Launchpad

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
3 (2 traders)
Total swaps
3

What it does

A launch-tax hook where every swap pays a tax that starts high and decays to a lower base rate after trading begins, with the tax taken from swaps likely for the creator, while LPs can always withdraw freely.

This read was written for the hook 0xecc3…a0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Charges a launch-style tax on swaps for a single token/quote pool, starting at a higher rate and decaying toward a lower base rate over time.
  • Trading is enabled through a one-time start function; it cannot be restarted once started.
  • Collects the tax from swap amounts and sends it out of the pool, most likely to the token creator.
  • Only allows the pool it was set up for to be initialized, with a fixed LP fee and tick spacing.
  • Rejects partial fills, so swaps must execute fully.
Swap behaviour
Each swap pays a tax taken from the swap amounts, starting at a start tax rate and moving toward a base tax rate since trading began; before trading is started, swaps are likely blocked. Swaps that would only partially fill revert.
Liquidity behaviour
No liquidity callbacks; LPs can add and withdraw freely.
Fee behaviour
On top of the pool's fixed LP fee, a time-based tax (start rate decaying to a base rate, both hard-coded constants whose exact values are not readable from the decoded bytecode) is deducted from swaps and taken out of the pool, likely to the creator. Exact percentages are unknown without verified source.
Owner & admin controls
The only admin-like action is a one-time startTrading call that starts the tax clock; tax rates, token, and creator appear to be fixed constants with no setters.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts setup to the intended pool and records initialization; beforeSwap applies the tax and may block swaps before trading starts; afterSwap checks or takes the tax on output; beforeSwapReturnDelta and afterSwapReturnDelta let the hook deduct the tax from swap amounts.

Security & trust assessment

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

Who controls it: A privileged caller (likely the creator) can start trading once; no functions to change tax rates, recipients, or pause after start were found.

Risk to user funds: The hook can deduct a tax from traders' swap amounts at an unverified rate that decays over time; LP principal cannot be locked or drained by the hook.

Security findings

  • [medium] Unverified swap tax via return deltas: The hook deducts a tax from swaps using return deltas and pulls tokens from the pool manager; the start and base tax rates are constants whose exact values cannot be confirmed from bytecode.
  • [low] Trading gated until started: Swaps likely cannot occur until startTrading is called, which can only be done once.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.

Contract details

Verified source
No
Bytecode size
4,432 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Launchpad hook