Launchpad hook on Robinhood Chain
Uniswap v4 Hook Contract 0x4508f4dd2cea98afbbf47a0f70dc12780c83e0cc on Robinhood Chain · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 2
- Swaps (24h)
- 17 (7 traders)
- Total swaps
- 17
What it does
This launchpad-style hook takes part in swaps through return deltas and can move currency during trades, but without source it cannot be confirmed which trades pay more or less.
How it works step by step
- Hooks into pool initialization and gates which pools are recognised via the pools mapping keyed by pool id
- Intercepts swaps in beforeSwap and afterSwap and reads/writes per-pool accounting in mappings at slots 1, 2 and 3
- Uses beforeSwapReturnDelta and afterSwapReturnDelta, so it can take or supply currency during swaps and alter the amounts settled with the pool manager
- Calls take on the pool manager to move tokens out of the pool, indicating it routes or diverts a portion of swap flow
- Has a graduator address that can be set once by the owner and is used in the launch-to-graduation flow, the likely purpose of the 'launchpad' tag
- Blocks liquidity add, remove and donate operations or leaves them to default handling, so liquidity provision is not a normal open path
- Swap behaviour
- beforeSwap and afterSwap run on every swap of a registered pool; the hook can return deltas and call take on the pool manager, so part of the swap flow is captured or redirected by the hook. Exact trade-by-trade effects cannot be determined without source.
- Liquidity behaviour
- beforeAddLiquidity, beforeRemoveLiquidity, afterAddLiquidity, afterRemoveLiquidity and beforeDonate are present with decoded selectors, but their bodies cannot be confirmed from bytecode alone; they appear to be restrictive or gating rather than open liquidity management.
- Fee behaviour
- No fee setter selector is dispatched; fees are not clearly set by the hook. Any fee effect would come through the return-delta mechanism, which cannot be quantified from decoded bytecode.
- Owner & admin controls
- An owner() function exists and setGraduator(address) is callable, guarded by a NotOwner error; the graduator can be set only once (AlreadySet error exists), so admin control is limited to that one-time configuration. No pause or upgrade mechanism was found in the dispatched selectors.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: registers or validates a pool when it is created. beforeSwap: runs pre-swap logic and can return a delta. afterSwap: runs post-swap accounting and can return a delta. beforeSwapReturnDelta: lets the hook take or supply currency before the swap executes. afterSwapReturnDelta: lets the hook take or supply currency after the swap executes.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: The owner sets the graduator once and can therefore designate which address is trusted by the hook's graduation logic; no fee or pause control was observed.
Risk to user funds: The hook can take currency through return deltas and take calls on the pool manager during swaps, so it can hold or divert swap value; the exact amounts depend on logic not visible in decoded bytecode.
Security findings
- [high] Return-delta currency capture: Both beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the bytecode calls take on the pool manager, so the hook can move user or pool currency during swaps.
- [medium] Owner-set graduator with owner gate: setGraduator is restricted to the owner and the graduator address receives privileged treatment (NotGraduator error), so the owner effectively chooses the party that can act on the hook's funds.
- [medium] No source available: Without verified source, the exact accounting and the conditions under which deltas are returned cannot be audited, which limits confidence in the fund-safety assessment.
Contract details
- Verified source
- No
- Bytecode size
- 4,876 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, ownable, return-delta