Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x982f11b3a50b05e158bb4e2fb16ac9894bf52044 on Robinhood Chain · Launchpad

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

What it does

Every swap on the launched pool, buys and sells alike, pays a fixed 4% fee on the unspecified leg, which the hook takes as a return delta and forwards to the factory, while the core Uniswap v4 price curve stays unchanged.

This read was written for the hook 0x9921…e044 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

  • Registers a launch market per Uniswap v4 pool keyed to a token and quote currency, with a one-sided liquidity position seeded from factory-supplied token supply
  • Holds its own pool position via the PoolManager and mints ERC6909 claims to itself for accrued fees and rounding remainders
  • Accrues a fixed 4% fee (400 bps) on the unspecified leg of every swap in afterSwap, minting claims for it rather than taking tokens immediately
  • Tracks pending fee buckets split into all-asset and sell-side amounts, then on collect() burns claims and forwards them to the factory via receiveFees
  • Tracks native principal and marks the market graduated once the quote-side principal reaches the configured target, emitting Graduated
  • Allows the factory to compound graduated liquidity by adding amounts to the same position through unlockCallback
Swap behaviour
Core Uniswap v4 pricing is untouched. In afterSwap a 4% fee is computed on the unspecified leg (output for exact-input swaps, input for exact-output swaps) and returned as a hook delta, so every swap, buys and sells alike, pays the same 4% fee on that leg; the fee is recorded as sell-side when the token being sold is the launched token.
Liquidity behaviour
No liquidity callbacks. The hook has no before/after liquidity hooks, so ordinary LP add and remove are not gated; the hook's own position is only manipulated through its unlock actions (seed, compound, collect).
Fee behaviour
The pool itself uses a static fee of 0 (required at registration). The hook charges a fixed 400 bps fee on the unspecified swap leg, accrued as ERC6909 claims and later paid out to the factory through receiveFees, which splits sell-side and other fees.
Owner & admin controls
Only the factory address (set immutably in the constructor) can call register and compound. No owner, pause, upgrade or parameter-change functions were found. The factory receives all collected fees through receiveFees, so the factory's own logic determines fee destination.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap, afterSwapReturnDelta

beforeInitialize restricts pool initialization to the hook itself for registered markets. afterSwap accrues the 4% fee, records pending buckets, and emits graduation as a return delta. afterSwapReturnDelta is enabled so the hook can take a share of the swap output or input.

Security & trust assessment

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

Who controls it: The factory controls market registration, liquidity compounding and, via receiveFees, the disposition of all fees the hook collects; the factory address is immutable so no admin can replace it, but it is not verifiable from the provided source whether the factory itself is governed or upgradeable.

Risk to user funds: The hook holds its launch liquidity position and minted ERC6909 claims; it can move collected fee balances to the factory via collect and compound, but has no code path to withdraw LP principal to arbitrary addresses, and LP positions of other users are not affected.

Security findings

  • [medium] Fees forwarded to factory: collect() and _pay send all accrued fee balances to the immutable factory via receiveFees; the factory contract logic that decides distribution is not in the provided source, so users depend on it.
  • [low] Return-delta fee on every swap: afterSwapReturnDelta lets the hook take a fixed 4% of the unspecified leg on every swap, including sells, so traders always pay this fee on top of the pool fee.
  • [low] Factory-only privileged actions: register and compound can only be called by the factory, so compounding and new market creation depend on factory behaviour.
  • [info] Unbounded fee-of-zero pool and rounding remainder: Seeding leaves a bounded rounding remainder that is minted to the hook as pending fees, which is then distributed to the factory.

Contract details

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

Pools using Launchpad hook