Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xd32352bf64733e6085d5eb74d31a04601d31c0cc on Robinhood Chain · Launchpad

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

What it does

A launch-phase hook that limits how much can be bought per swap and per wallet and can take a fee on swaps while a launch window is active.

How it works step by step

  • Enforces a maximum swap size (maxSwapAmount, MAX_SWAP_BPS) during the launch window.
  • Enforces a maximum cumulative buy per wallet (MAX_WALLET_BUY_BPS, launchPurchased).
  • Exempts specific addresses from the cap (isCapExempt).
  • Charges a launch fee quoted by currentFeeBps, feeBpsAt, quoteFee and quoteExactOutputFee.
  • Uses beforeSwap and afterSwap return deltas to take the fee in swap currency and send it via the pool manager.
  • Ends restrictions after launchWindow elapses from launchTimestamp, with launchActive indicating the state.
Swap behaviour
beforeSwap enforces per-swap and per-wallet buy caps (MAX_SWAP_BPS, MAX_WALLET_BUY_BPS) and afterSwap records the purchase; return deltas let the hook take a share of the swap currency.
Liquidity behaviour
Has beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors, which appear to be view-only in the decoded ABI; no state-changing liquidity behaviour was confirmed.
Fee behaviour
Uses a fee-related getter set (currentFeeBps, feeBpsAt, quoteFee, quoteExactOutputFee, FEE_BPS, expectedPoolFee) and time-dependent launch logic; the exact fee schedule cannot be confirmed without source.
Owner & admin controls
No admin controls found. No owner, pause or upgrade selectors were decoded; the view getters expose configuration (fees, caps, launch window) but no setter for them was found in the dispatched functions.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: gates or inspects swap amounts against launch caps before execution. afterSwap: updates purchase accounting after the swap. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a share of the swap's input or output currency through return deltas, which is the mechanism used to collect a launch fee or enforce caps.

Security & trust assessment

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

Who controls it: No privileged role was decoded, so no single key was identified. Launch parameters (window, caps, fee) appear fixed or derived from stored values rather than adjustable by an admin.

Risk to user funds: The hook can take a portion of swap currency through return deltas and can revert swaps that exceed launch caps. It does not appear to hold user liquidity directly, but any collected fees are routed through the pool manager's take flow.

Security findings

  • [medium] Hook moves swap currency via return deltas: The hook can take currency via return deltas and the take(address,address,uint256) selector is present, so it can extract a portion of each swap to a fee or reward recipient.
  • [medium] Swaps can revert during the launch window: LaunchSwapCapExceeded and LaunchWalletCapExceeded reverts show that swaps can be rejected when per-swap or per-wallet buy limits are exceeded during the launch window.
  • [low] Time-gated trading restrictions: The launch logic is time-bounded via launchTimestamp and launchWindow, and the active flag launchActive can change behaviour; trading restrictions are expected to relax after the window.
  • [info] Per-wallet purchase tracking: Storage slot 0 maps address to uint256 and is read by launchPurchased, tracking per-wallet purchase amounts that drive the wallet cap.

Contract details

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

Pools using Launchpad hook