Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xbb50e81fd085aff293f6edf9c1cfa2d6eecda888 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

This hook charges a configurable fee on swaps through this pool, with the owner able to change the rate and the treasury destination, and the exact direction of the fee (buy or sell) could not be confirmed without verified source.

How it works step by step

  • Acts as a Uniswap v4 hook for a single pool whose token is set via setToken and whose pool key is stored after beforeInitialize
  • Gates liquidity additions through beforeAddLiquidity and blocks or restricts removals through beforeRemoveLiquidity and afterRemoveLiquidity selectors
  • Intercepts swaps in beforeSwap and can take a fee in the input currency using return deltas (beforeSwapReturnDelta enabled)
  • Accumulates fees as pending claims and lets users redeem them through redeemClaims, with a treasury address receiving flushed amounts
  • Interacts with a launch factory (ponsFactory, readyToGraduate, currentSnipeTaxBps, creatorTaxBps) that suggests a token launch and graduation flow
  • Uses unlockCallback and the pool manager unlock/take/transfer selectors to move currency during fee flushes
Swap behaviour
beforeSwap is implemented and can charge a tax on swaps via return deltas, with the fee expressed in basis points (feeBps, bounded by MAX_FEE_BPS); the exact direction of the tax (buys versus sells) cannot be confirmed from decoded bytecode alone, though the presence of sell/buy selectors and snipe-tax references suggests launch-period taxation.
Liquidity behaviour
beforeAddLiquidity is implemented and can restrict who adds liquidity; beforeRemoveLiquidity and afterRemoveLiquidity selectors are present and appear to gate or account for removals, and a LiquidityNotAllowed error suggests liquidity may be blocked in some states.
Fee behaviour
Fees are set by feeBps, changeable through setParams(uint16,uint16,uint256) and capped by MAX_FEE_BPS; accrued fees are tracked in pendingFees and distributed through claims and redeemClaims, with flush() forwarding them to the treasury.
Owner & admin controls
Owner (Ownable) can call setParams, setToken, setTreasury, transferOwnership and renounceOwnership; these can change the fee rate, the treasury destination and the token address. No pause function or proxy upgrade pattern was observed in the decoded selectors.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize records the pool key and initialization state; beforeAddLiquidity gates liquidity provision; beforeSwap charges the tax or fee in the swap path; beforeSwapReturnDelta lets the hook take a share of the swap amount as a return delta.

Security & trust assessment

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

Who controls it: A single owner key controls the fee rate, token address, treasury address and ownership transfer, so a compromised or malicious owner could raise fees or redirect treasury flows.

Risk to user funds: The hook can take currency via return deltas during swaps and holds accrued fees in claims until redeemed or flushed, so it can move user swap value and may block or delay redemptions if its state logic restricts them.

Security findings

  • [high] Owner-adjustable fee rate: setParams lets the owner change feeBps up to MAX_FEE_BPS, so the owner can raise the tax on every swap that the hook intercepts.
  • [medium] Return-delta fee capture: beforeSwapReturnDelta allows the hook to take part of user swap amounts, so trades routed through the pool pay the hook's fee directly.
  • [medium] Treasury redirection: setTreasury lets the owner change where flushed fees are sent, so an owner key compromise could redirect accrued funds.
  • [medium] Unverified source: No verified source is available, so behaviour is inferred from selectors and storage, and the exact gating logic in liquidity and swap paths cannot be fully confirmed.

Contract details

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

Pools using Launchpad hook