Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xfafa4e378056f24c5d3fcea687c0fff7f34728ec on Robinhood Chain · Launchpad

Volume (24h)
$6.93K
Value locked (TVL)
$804
All-time volume
$6.93K
Pools using this hook
1
Swaps (24h)
209 (117 traders)
Total swaps
209

What it does

This hook launches new token pools against ETH and takes a fee on swaps that is accrued for the protocol, so traders pay that fee on each swap while LPs receive the pool's normal trading flow.

How it works step by step

  • Acts as a launchpad hook: openPool(address) creates a Uniswap v4 pool for a token against ETH and stores the pool key, token and launch parameters in mappings keyed by token or pool id
  • Stores per-launch parameters such as launchSqrtPrice, launchSupply, startTick, and tracks price, marketCap and sellPriceLimit per token
  • Uses beforeSwap and afterSwap with return deltas, so the hook can take a portion of swap amounts and accrue them as pending protocol fees per token
  • Accrues fees in pendingProtocolFees and pays them out to a fee recipient through collectProtocolFees, with a two-step fee recipient handover (setFeeRecipient then acceptFeeRecipient)
  • Calls the pool manager via unlock/unlockCallback and take to move currency during pool operations
  • Uses a dynamic-fee style configuration with constants such as FEE_BPS, LP_FEE, BPS and MIN_ETH_AMOUNT, and checks arbBlockNumber-related state
Swap behaviour
Swaps are gated and modified in beforeSwap and afterSwap: the hook can apply a sell price limit and charges a fee in the form of a return delta that is accrued to pendingProtocolFees for the token; exact per-direction fee rates could not be confirmed from the bytecode alone.
Liquidity behaviour
beforeAddLiquidity is restricted to the pool's hook flow, and beforeRemoveLiquidity and afterAddLiquidity/afterRemoveLiquidity exist as callbacks; no clear evidence of a liquidity cap or lock was decoded beyond the presence of these checks.
Fee behaviour
Fees are taken by the hook through return deltas on swaps and accumulated in pendingProtocolFees per token, then collected by the fee recipient via collectProtocolFees; the fee amount is set by constants such as FEE_BPS and LP_FEE in the bytecode.
Owner & admin controls
Owner-controlled via Ownable with two-step ownership transfer (transferOwnership, acceptOwnership, renounceOwnership); the owner can set the fee recipient through setFeeRecipient, which the pending recipient must accept; no upgradeability or pause function was decoded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize set up launch state for new pools; beforeAddLiquidity and beforeRemoveLiquidity and the after-liquidity callbacks check or record liquidity events; beforeSwap and afterSwap enforce price limits and accrue fees; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts; beforeDonate and afterDonate are present as callbacks.

Security & trust assessment

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

Who controls it: The owner can change the fee recipient and transfer or renounce ownership; a compromised owner key could redirect accrued protocol fees, but cannot directly seize pool liquidity from the decoded functions.

Risk to user funds: The hook can take a fee share of swap flows and hold pending protocol fees in its own balance until collected, and it moves currency through the pool manager; user LP principal is not shown to be directly withdrawable by the hook.

Security findings

  • [medium] Hook takes swap fees via return deltas: beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the amounts traders receive, and fees are accrued into pendingProtocolFees, so users pay a hook-controlled cut on every swap.
  • [medium] Owner controls fee recipient: The owner can call setFeeRecipient to redirect accrued protocol fees, with a pending recipient needing to accept, which limits but does not remove the risk of fee redirection.
  • [info] Unverified source: No verified source is available, so behaviour is inferred from decoded selectors and storage layout and exact fee rates and gating logic cannot be fully confirmed.
  • [low] Currency movement through unlock and take: The hook uses unlock, unlockCallback and take to move currency with the pool manager, which is expected for fee collection but means it holds and transfers tokens during operations.

Contract details

Verified source
No
Bytecode size
11,029 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc20, fee-sharing, launchpad, moves-currency, ownable, return-delta, self-unlock

Pools using Launchpad hook