Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x239bb5cf1421ec6f67c42e1a63ae8a74605840cc on Robinhood Chain · Launchpad

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

What it does

This hook takes a levy on swaps through return deltas and tracks what it is owed, but the exact trades that pay more or less and the fee formula could not be confirmed from the decoded bytecode.

This read was written for the hook 0xdbdb…c0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Hook exposes beforeSwap and afterSwap callbacks and uses before/after return deltas, so it can take or give currency during swaps.
  • Exposes a levy mechanism: levyBps() and LEVY_MIN_BPS() are public, and a levied() flag and owed() amount are tracked in storage.
  • Calls the pool manager unlock/take/mint/burn functions, and uses ERC6909 claim tokens (mint/burn) to account for currency it holds.
  • Has a clerk() role gate (NotClerk error) and an unlockCallback that performs the pool manager settlement flow.
  • Pool initialization and liquidity/donate callbacks are present in the selector table but appear to be stubs or pure no-ops.
  • Heuristic tags suggest a rewards or launchpad flow in which the levy accrues owed amounts that are later settled.
Swap behaviour
beforeSwap (view) and afterSwap (nonpayable) are enabled, and beforeSwapReturnDelta and afterSwapReturnDelta are granted, so the hook can adjust swap amounts and take a levy from swaps. Which trades pay more or less cannot be determined from decoded bytecode alone.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present but the hook does not request liquidity callbacks in its permissions; treat liquidity effects as unconfirmed.
Fee behaviour
Fees appear to be a levy in basis points (levyBps, with a LEVY_MIN_BPS floor) taken via return deltas rather than the pool's static fee; poolFee() is also exposed. The exact fee formula could not be confirmed.
Owner & admin controls
A clerk role (clerk(), NotClerk error) appears to control settlement or levy-related actions. Exact permitted operations are not verified from source.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: gates or prepares the swap and may read levy state. afterSwap: settles the levy and updates owed and levied state. beforeSwapReturnDelta and afterSwapReturnDelta: let the hook return a delta that changes the amount the swapper receives or pays.

Security & trust assessment

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

Who controls it: The clerk key appears able to affect settlement and levy accounting; its exact powers and whether parameters are upgradeable could not be confirmed.

Risk to user funds: The hook takes currency via return deltas and holds value through ERC6909 claims and owed balances, so swap proceeds and pool funds routed through it are exposed to whatever the levy and clerk logic does.

Security findings

  • [high] Return-delta currency capture: The hook is granted beforeSwapReturnDelta and afterSwapReturnDelta and moves currency via take/mint/burn, so it can divert part of every swap's flow to itself.
  • [medium] Clerk-gated settlement: A clerk role with NotClerk checks controls settlement paths; if the clerk key is compromised or malicious it may be able to withdraw or redirect owed funds.
  • [medium] Levy parameter dependence: levyBps and LEVY_MIN_BPS are readable but whether they are mutable could not be verified; a mutable levy could be raised to a high rate.
  • [info] Unverified source: No verified source is available, so behaviour is inferred from selectors and storage access only.

Contract details

Verified source
No
Bytecode size
5,811 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, moves-currency, return-delta, self-unlock

Pools using Launchpad hook