Launchpad hook on Arc

Uniswap v4 Hook Contract 0x4f68e54df2fbf48c3d7ae4be134bf45ec805e0ec on Arc · Launchpad

Volume (24h)
$0
Value locked (TVL)
$21.48K
All-time volume
$24.28K
Pools using this hook
40
Swaps (24h)
0 (0 traders)
Total swaps
158

What it does

A launchpad-style hook that applies buy, sell and early-snipe taxes to a pool during a launch window, routing the collected tax away from traders.

How it works step by step

  • Records a launch block per pool when the pool is initialized
  • Applies buy, sell and snipe tax rates in basis points during swaps
  • Takes the tax share via return deltas, accounted through the vault and pool manager
  • Sends collected tax to a sink address defined as an immutable
  • Uses a fixed window in blocks to decide when the snipe tax applies
Swap behaviour
beforeSwap and afterSwap apply per-pool buy, sell or snipe tax (in basis points) based on swap direction and how many blocks have passed since launch, taking the tax as a return delta.
Liquidity behaviour
afterAddLiquidity and afterRemoveLiquidity callbacks are present and appear to track or take a currency delta; the exact accounting cannot be confirmed without source.
Fee behaviour
Applies per-pool buy, sell and snipe tax rates (basis points) read from stored per-pool state, with a launch window measured in blocks; taxes are likely taken via return deltas and routed to a sink address, while the pool itself uses a fixed LP fee of the constant LP_FEE_PIPS.
Owner & admin controls
No admin controls found in dispatched selectors (no owner or setter functions identified); parameters appear as immutable constants (BPS, LP_FEE_PIPS, WINDOW_BLOCKS, VAULT, POOL_MANAGER, LAUNCHER, SINK, USDC) and per-pool tax values are read via view getters (buyTaxBps, sellTaxBps, snipeTaxBps, launchBlockOf).

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize records pool launch state; beforeSwap and afterSwap apply the launch-window tax logic and use return deltas to take a portion of the swap amount; afterSwapReturnDelta and beforeSwapReturnDelta let the hook modify settled amounts; beforeDonate is present but its behaviour is not confirmed; afterAddLiquidity and afterRemoveLiquidity are present with unclear use.

Security & trust assessment

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

Who controls it: No privileged setter was identified in the dispatched selectors, so the hook appears non-upgradeable and parameters appear fixed, but this is inferred from bytecode only and unverified.

Risk to user funds: The hook can take a share of swap currency through return deltas and mint or take claim balances via the vault, so user swap proceeds are exposed to the hook's tax logic; it does not show an obvious ability to block swaps, but this is not fully confirmed.

Security findings

  • [medium] Hook takes swap proceeds via return deltas: The hook takes currency via return deltas and calls take and mint on the vault/pool manager, so it can hold or redirect a share of swap proceeds to the sink address.
  • [low] ERC6909 minting within pool accounting: The mint selector and ERC6909 claims tag indicate the hook can mint claim tokens to itself or others, which affects accounting of pool funds.
  • [info] Launch-window snipe tax: Taxes are applied during a launch window measured in blocks, so early buyers may pay materially higher rates, a behaviour that depends on the stored per-pool parameters.
  • [info] Unverified source: No verified source is available, so function names, storage layout and exact fee routing are inferred from selectors and bytecode only.

Contract details

Verified source
No
Bytecode size
11,050 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, moves-currency, return-delta

Pools using Launchpad hook