Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0xc502e456ca520a4ca7fbf7c3056b1d445b6a68cc on Robinhood Chain · Launchpad

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

What it does

This launchpad hook sets a per-pool fee that accrues to a claimable balance and can adjust swap deltas, but the exact fee rates and which trade direction pays more could not be determined from the bytecode alone.

How it works step by step

  • Exposes a launchpad-style pool hook with storage keyed by a bytes32 pool id, tracking per-pool config, fee, total fees, total volume and an unclaimed balance
  • Has a constructor-like initialization path (selector 0x4ca65feb) that writes a pool configuration including a uint24 fee and maps a pool address to a pool id
  • Initializes pools via beforeInitialize and afterInitialize callbacks and gates liquidity via beforeAddLiquidity
  • On swaps, beforeSwap and afterSwap update fee and volume accounting, and afterSwap can return a balance delta that moves tokens between the pool and the hook
  • Accrues fees to a claimable balance that can be released via release(bytes32) and read via unclaimed(bytes32)
  • References a launchpad address and a vault, with errors NotLaunchpad, NotVault, NotThisHook and LiquidityThroughVault, suggesting liquidity is restricted to a launchpad flow through the vault
Swap behaviour
beforeSwap and afterSwap both run on every swap. The hook updates fee and volume accounting per pool id and, through afterSwapReturnDelta and beforeSwapReturnDelta, can take a portion of the swap delta, so the trader may receive less than the raw pool output. Exact fee rates and which swap direction pays more could not be determined from the decoded bytecode.
Liquidity behaviour
beforeAddLiquidity is enabled and is view, so it appears to check or restrict additions rather than mutate state. Removals use beforeRemoveLiquidity and afterAddLiquidity/afterRemoveLiquidity variants exist, but the flags indicate only beforeAddLiquidity is active. Liquidity additions are likely restricted to a launchpad or vault path (LiquidityThroughVault and NotLaunchpad errors).
Fee behaviour
A per-pool fee is stored (uint24) and bounded by MAX_FEE with a FeeOutOfRange error. Fees are accumulated into totalFees and a release mechanism moves them to an unclaimed balance per pool id. The exact fee formula and split between LPs, the launchpad and the hook could not be determined from bytecode alone.
Owner & admin controls
No owner or pause function was identified in the dispatched selectors. A launchpad address and vault address are referenced; these may be the privileged parties, but the specific setter functions could not be confirmed from the bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: validates or sets up a pool when it is created. beforeAddLiquidity: restricts or checks liquidity additions. beforeSwap: reads and updates fee state before the swap. afterSwap: updates volume and fee accounting and can return a delta. beforeSwapReturnDelta: lets the hook alter swap amounts before execution. afterSwapReturnDelta: lets the hook take or give tokens after the swap.

Security & trust assessment

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

Who controls it: The launchpad and vault addresses appear to control which pools are created and who can add liquidity. A compromised launchpad key could route liquidity or pool configuration in unexpected ways.

Risk to user funds: The hook can hold fees in the claimable balance and can alter swap deltas through return delta permissions, so it can hold or move value tied to pool trades. Users depend on the launchpad and vault paths for liquidity provisioning.

Security findings

  • [medium] Return deltas can take user value: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can alter swap amounts and take tokens from traders or the pool, as in the fee and claim accounting.
  • [info] Fee bound enforced by MAX_FEE: A FeeOutOfRange error and MAX_FEE constant indicate the stored fee is bounded, which limits the maximum fee a configuration can set.
  • [low] Launchpad and vault gating: NotLaunchpad, NotVault and LiquidityThroughVault errors suggest liquidity and privileged actions depend on the launchpad and vault addresses, which are a centralization point.
  • [info] Unverified source: No verified source is available, so the exact accounting, the claim flow and any upgrade or admin paths cannot be fully confirmed.

Contract details

Verified source
No
Bytecode size
7,287 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, launchpad, liquidity-management, return-delta

Pools using Launchpad hook