Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x22e9a027e14769d4cd28b6c7240b36b1dbb26ecc on Robinhood Chain · Launchpad

Volume (24h)
$118.75K
Value locked (TVL)
$18.69K
All-time volume
$129.18K
Pools using this hook
2
Swaps (24h)
1,274 (454 traders)
Total swaps
1,281

What it does

A Bags launchpad hook that charges every swap a per-pool fee sent to fee-share recipients and locks launch liquidity so it cannot be withdrawn.

How it works step by step

  • Acts as the Uniswap v4 hook for Bags launchpad pools, registered by a factory that sets up each pool with a fee-share recipient and bonding-curve link.
  • Takes a swap fee through return deltas and routes it to fee-share recipients, unwrapping WETH and notifying a fee receiver when needed.
  • Restricts liquidity changes: adding is gated to registered setups, and removing liquidity can revert with a 'liquidity locked' error.
  • Has a sweep function and per-pool accounting of accrued fees that can be flushed out to recipients.
Swap behaviour
Swaps on registered pools run through beforeSwap and afterSwap, which can take a fee from swap amounts using return deltas. The exact fee rate cannot be confirmed from bytecode; a per-pool fee value (up to the 16-bit field set at registration) is stored per pool.
Liquidity behaviour
Adding liquidity is checked by the hook, and beforeRemoveLiquidity can revert with a 'liquidity locked' error, so LP positions in these pools appear to be permanently or conditionally locked. This is typical for launchpads that lock launch liquidity, but it means LPs cannot freely withdraw.
Fee behaviour
A swap fee is deducted via return deltas, accumulated per pool, and paid to configured fee-share recipients (with WETH unwrapping and a notify call). The exact percentage is set per pool at registration and is not verifiable from bytecode.
Owner & admin controls
The owner (two-step Ownable) can change the factory address, which controls registration of new pools and their fee settings. No direct owner withdrawal of pool reserves was seen, but fee caps cannot be verified.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: only allows pools registered through the factory; beforeAddLiquidity/afterAddLiquidity: gates and records launch liquidity; beforeRemoveLiquidity: can block withdrawals (liquidity lock); beforeSwap/afterSwap: compute and take the swap fee; beforeSwapReturnDelta/afterSwapReturnDelta: let the hook deduct the fee from swap amounts.

Security & trust assessment

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

Who controls it: An owner holds the ability to set the factory, which in turn configures new pools, fee recipients and fee rates. The owner does not appear able to directly withdraw pool reserves.

Risk to user funds: Traders pay a swap fee of an unverified size deducted through return deltas and sent to fee-share recipients. LP liquidity in these pools can be locked by the remove-liquidity check.

Security findings

  • [high] Liquidity removal can be blocked: beforeRemoveLiquidity can revert with a 'liquidity locked' error, so LP principal in these pools can be locked and not withdrawn.
  • [medium] Unverified swap fee size: The hook takes fees from swaps via return deltas with a per-pool rate set at registration; the exact cap cannot be confirmed from bytecode.
  • [low] Owner controls factory: The owner can replace the factory that registers pools and sets their fee-share configuration, affecting future pools.

Contract details

Verified source
No
Bytecode size
10,152 bytes
Upgradeable proxy
No
Detected patterns
erc20, fee-sharing, launchpad, liquidity-management, moves-currency, ownable, return-delta

Pools using Launchpad hook