Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x158b2e88fe5126230c79ac8b92496febf29720cc on Robinhood Chain · Launchpad

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

What it does

This launchpad-style hook appears to manage a token graduation flow on Uniswap v4 pools and can adjust swap settlements via return deltas, but which trades pay more or less cannot be determined from the decoded bytecode.

How it works step by step

  • Hooks into pool initialization (beforeInitialize, afterInitialize) and swaps (beforeSwap, afterSwap), with return-delta permissions that let it alter swap amounts or take currency
  • Stores a graduator address (set by owner via setGraduator) and tracks per-pool state in storage mappings keyed by uint256 values, consistent with a bonding-curve style token launch that graduates to a standard pool
  • Dispatches a function (0x93dd0ffb) that takes several addresses and uint16 parameters, likely pool creation or launch configuration, and writes to a pool-keyed mapping
  • Uses poolManager take() calls to move currency to or from the pool manager during swaps
  • Reverts with custom errors such as NotOwner, NotGraduator, AlreadySet, InvalidBps, ZeroAddress and InvalidPoolKey, indicating role-gated and parameterised logic
Swap behaviour
beforeSwap and afterSwap are implemented and both have return-delta permissions enabled, so the hook can adjust swap deltas and move currency via take(). The exact pricing or fee effect cannot be confirmed from decoded bytecode alone, and which trades pay more or less is not determinable here.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as dispatched selectors, but the hook permissions do not enable these callbacks, so they are likely not invoked by the pool manager. Donate callbacks are similarly present but not enabled.
Fee behaviour
Uses the pool's static fee as far as can be determined; no dynamic fee setter was identified. Any fee or bps-based redirection would rely on InvalidBps handling and return deltas, which cannot be fully confirmed.
Owner & admin controls
An owner address (owner()) can call setGraduator(address), which can be set only once if an AlreadySet guard is respected. The owner role is protected by a NotOwner error. No pause or upgrade mechanism was identified in the decoded functions.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: validates or sets up pool state at creation. afterInitialize: records post-initialization pool data. beforeSwap: gates or prepares the swap, possibly computing a graduation or curve-based amount. afterSwap: updates tracked pool state after the swap and may take currency. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to alter the trader's settled amounts.

Security & trust assessment

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

Who controls it: A single owner key controls the graduator address and can influence which contract handles graduation, which could affect pool liquidity and user funds.

Risk to user funds: Because the hook can take currency via return deltas during swaps, it could hold or move user or pool tokens in the course of trades; the exact amounts and conditions cannot be verified from decoded bytecode.

Security findings

  • [medium] Return-delta permissions enabled: beforeSwapReturnDelta and afterSwapReturnDelta let the hook change swap settlement amounts and call take(), so the hook can hold or redirect currency during swaps.
  • [medium] Owner-set graduator: setGraduator is owner-callable and the graduator address is used in graduation flows, so a compromised owner could point graduation to a malicious contract.
  • [low] Ownable access control: Privileged functions are gated by a single owner, with no multisig or timelock evidence in the bytecode.
  • [info] Unverified source: No verified source is available, so the exact pricing and graduation logic is inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
5,116 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, ownable, return-delta

Pools using Launchpad hook