Launchpad hook on Robinhood Chain

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

A launchpad-style hook that takes a fee on swaps through return deltas, tracks accrued fees and creator credits, and lets authorized parties withdraw those fees.

How it works step by step

  • Sets an initialized flag during beforeInitialize for pool setup
  • Takes a fee on swaps via beforeSwapReturnDelta and afterSwapReturnDelta
  • Tracks accrued fees, pending fees and creator credit basis points in storage
  • Records vault balances and fee totals per token
  • Lets launcher-authorized callers withdraw accrued fees to recipients
Swap behaviour
beforeSwap and afterSwap run on every swap, updating fee accounting and taking a share of the swap as a return delta.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present in the dispatch table, suggesting liquidity callbacks exist, but their enabled status is not in the listed permissions, so behaviour is unconfirmed.
Fee behaviour
Fees are tracked in storage (feeBps, creatorCreditsBps, totalFeesAccrued, pendingFees, vaultBalances) and taken via beforeSwap/afterSwap return deltas; a portion appears directed to a platform recipient and creator credits, with the exact split not verifiable from bytecode alone.
Owner & admin controls
Creator and launcher addresses are readable via creator() and launcher(); withdraw(uint8,uint256) and withdrawAll() exist with recipient mapping recipient(uint8), and a NotLauncher error implies launcher-gated functions. Exact owner/parameter-change powers cannot be fully confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize sets an initialized flag; beforeSwap and afterSwap track swap-related fee accounting and state; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts as custom accounting deltas.

Security & trust assessment

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

Who controls it: A launcher or privileged role can call withdraw and withdrawAll and control recipient routing, so a compromised key could redirect accrued fees held by the hook.

Risk to user funds: The hook can take a share of swaps through return deltas and holds accrued fees in contract balances that can be withdrawn by privileged roles, so user swap amounts and pool value pass through hook-controlled accounting.

Security findings

  • [medium] Hook custodies accrued fee balances: The hook takes tokens via return deltas and holds accrued fees in its own storage and balances, so accrued funds sit under contract control until withdrawn.
  • [medium] Privileged withdrawal functions: withdraw(uint8,uint256) and withdrawAll() are launcher or recipient gated and move value out; authorization logic cannot be verified without source.
  • [low] Embedded ERC20 functionality: The contract includes a transferFrom/approve ERC20 surface, indicating it also functions as a token, which adds token-level risks such as unlimited approvals to the hook.
  • [info] Unverified source: No verified source is available, so all conclusions rest on selectors, storage layout and permissions rather than reviewed logic.

Contract details

Verified source
No
Bytecode size
9,205 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta

Pools using Launchpad hook