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
- TEST2 / BAWSAQ (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today
- BAWSAQ / TEST (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today