Launchpad hook on Arc

Uniswap v4 Hook Contract 0x51144cfdd830b28cb21e777b7a378642760be044 on Arc · Launchpad

Volume (24h)
$26.40K
Value locked (TVL)
$1.01
All-time volume
$26.40K
Pools using this hook
1
Swaps (24h)
608 (489 traders)
Total swaps
608

What it does

A launchpad hook that taxes swaps on a newly launched token pair, with a decaying snipe tax early on and bonding state that controls when the pool goes live.

How it works step by step

  • Validates the pool in beforeInitialize against the expected token pair and rejects mismatched pool shapes.
  • Tracks a bond state and bond tick that gate the launch phase.
  • Applies buy and sell taxes to swaps, capped by MAX_TAX_BPS.
  • Applies a snipe tax that decays from the launch timestamp to discourage early bot buying.
  • Takes the tax as a return delta and routes it to treasury or splitter addresses.
Swap behaviour
afterSwap computes a buy or sell tax and takes it from the swap output via the return delta, forwarding it to treasury or splitter addresses.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Taxes are applied via the afterSwap return delta using buy and sell tax parameters, with a snipe tax that decays from launch time; the exact fee math could not be fully confirmed from the decoded bytecode.
Owner & admin controls
No admin controls found. Slot 1 packs token, launch timestamp, bond tick, quote-asset flag and a bonded flag; bindBond(int24) appears callable to set the bond tick and bonded state, with an AlreadyBound guard, and the caller restriction could not be confirmed from bytecode alone.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap, afterSwapReturnDelta

beforeInitialize validates pool initialization for the launched pool, afterSwap applies the tax via a return delta and moves currency through take(), and afterSwapReturnDelta lets the hook take part of the swap output as tax.

Security & trust assessment

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

Who controls it: A privileged caller of bindBond could influence the bond state and tick, which affects the pricing and tax regime; the treasury and splitter addresses receive tax proceeds, so their keys matter to users.

Risk to user funds: The hook can take a share of swap output through return-delta tax and route it to treasury or splitter addresses; it does not appear to hold a custodial balance of user funds.

Security findings

  • [medium] Hook takes tokens on swaps: afterSwapReturnDelta with take() means the hook can withhold part of each swap's output and send it to treasury or splitter addresses.
  • [medium] Bond binding callable: bindBond(int24) mutates bond state (bonded flag, tick). Caller restriction could not be verified from decoded bytecode.
  • [info] Tax parameters: Tax rates are read from immutable-looking pure getters (buyTaxBps, sellTaxBps, MAX_TAX_BPS), so exposure depends on whether these are constants.
  • [info] No upgrade path observed: No proxy or upgrade selectors were found in the bytecode, so the logic appears non-upgradeable.

Contract details

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

Pools using Launchpad hook