Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xa22ae081d6b3131fd99a18bb09ea8efe0065c0c8 on Robinhood Chain · Launchpad

Volume (24h)
$0
Value locked (TVL)
$6.14K
All-time volume
$257
Pools using this hook
2
Swaps (24h)
0 (0 traders)
Total swaps
5,750

What it does

A launch-phase hook that applies time-dependent fees and anti-snipe limits to a new token pool, with fees pulled to a configured bank address.

How it works step by step

  • Sets a higher launch fee (LAUNCH_FEE_BPS) early, then a mid-stage fee (MID_FEE_BPS), then a standard fee (FEE_BPS) based on launchTime.
  • Applies anti-snipe limits during SNIPE_SECS, including a max wallet share (MAX_WALLET_BPS) and max swap share of reserves (MAX_SWAP_RESERVE_BPS).
  • Tracks per-address purchases during the launch window through launchBought.
  • Takes a fee portion via return delta during swaps and accumulates it.
  • Withdraws accumulated fees to a bank address through pullFees.
  • Uses an unlock callback to settle ERC20 balances with the pool manager.
Swap behaviour
beforeSwap adjusts the fee and checks launch limits, and afterSwap updates reserves and accounting; beforeSwapReturnDelta lets the hook take part of the swap amount.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present, suggesting liquidity callbacks exist, but the hook permissions list does not enable them, so they are likely unreachable.
Fee behaviour
Fees are computed dynamically through currentFeeBps() and constants such as LAUNCH_FEE_BPS, MID_FEE_BPS and FEE_BPS, with a time-based launch window (launchTime, SNIPE_SECS). pullFees() suggests accumulated fees are withdrawn to a bank address.
Owner & admin controls
setBank(address) is callable, and seedGenesis(uint160) sets the initial pool state; no owner modifier is decoded, so access control on these setters cannot be confirmed from bytecode alone. Exact admin roles are undetermined.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta

beforeSwap: adjusts swap fees and gating during the launch window. afterSwap: updates reserves and launch accounting. beforeSwapReturnDelta: lets the hook take or supply a portion of the swap amount, used for fee capture or reserve management.

Security & trust assessment

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

Who controls it: setBank and seedGenesis appear to be privileged setters that can redirect fee destinations or initialise the pool; without verified access checks, a key holder may be able to redirect fees.

Risk to user funds: The hook can take or supply tokens during swaps through return deltas and moves balances via the pool manager, so it can hold and redirect a share of trade value. Launch limits may also block certain wallets or swap sizes.

Security findings

  • [medium] Return delta can take part of swap value: beforeSwapReturnDelta lets the hook alter the amounts settled in each swap, so the hook can take a portion of user swap flow.
  • [medium] Unverified privileged setters: setBank(address) and seedGenesis(uint160) are state-changing and no access check is visible in the decoded selectors, so the destination of fees may be changeable.
  • [info] Hook moves currency via self-unlock: unlockCallback and a self-unlock pattern with take and transfer calls mean the hook moves ERC20 balances through the pool manager.
  • [info] Launch-phase trading limits: Launch window and anti-snipe parameters (SNIPE_SECS, MAX_WALLET_BPS, MAX_SWAP_RESERVE_BPS) cap trading for some participants during launch.

Contract details

Verified source
No
Bytecode size
12,203 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta, self-unlock

Pools using Launchpad hook