Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x95bc1baf6397e80cbf9941562d432012a0e180cc on Robinhood Chain · Launchpad

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

What it does

This is a launchpad-style hook that creates and bootstraps v4 pools for new tokens and uses swap-time return deltas to take value, but without verified source the exact fee and burn split per trade cannot be confirmed.

How it works step by step

  • Exposes a launch/create/setup family of entry points (launch, register, initialize, createPool, open, start) that take a token address, fee, tick spacing and sqrtPrice, indicating it bootstraps Uniswap v4 pools for new tokens.
  • Implements beforeSwap and afterSwap callbacks that can return deltas, so the hook can take or give currency during swaps.
  • Tracks burned amounts (totalBurned, MAX_BURN_FEE_BPS) and exposes burn-related selectors, suggesting a fee-to-burn mechanism.
  • Contains reward and staking selectors (stake, claim, deposit, supply, fund, seed) alongside ERC6909 claim usage, suggesting incentive distribution to participants.
  • Uses a self-unlock pattern (unlock, unlockCallback) to interact with the PoolManager inside a callback, and includes performUpkeep/relay style automation entry points.
  • Keeps an allowlist-style mapping (exempt, mapping of addresses to bools) that is written by owner-like functions and read during swaps.
Swap behaviour
beforeSwap and afterSwap are both enabled with return-delta permissions, so the hook can alter the amounts settled on swaps; the exact fee or burn split per trade cannot be fully determined from decoded bytecode without source, and an allowlist check gates some swap logic.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present as views in the dispatch table but no liquidity hook permissions are enabled, so the hook does not act on liquidity callbacks; liquidity is managed through the separate deposit/stake/supply entry points.
Fee behaviour
Fees appear to be partly burned or redirected based on the burn tracking storage and MAX_BURN_FEE_BPS constant; the precise fee rate and which trades pay it cannot be confirmed from decoded bytecode alone.
Owner & admin controls
Storage slot 7 is written by a function selector 0xa69df4b5 and 0xfef8775e, and mappings in slots 8, 11, 12, 13 are written by several nonpayable functions (111f5b46, 33e81f3c, 535ee12f, a98d102a, c7e2ed35, 107bb124, 63cb575c, e7297f38), which indicates privileged role or allowlist management; the presence of a boolean controlling unlock behaviour suggests a pause or enable flag, but exact owner or role names cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: gates or adjusts swap logic before execution. afterSwap: runs post-swap accounting and may move currency. beforeSwapReturnDelta: allows the hook to take a delta from the swap in before-swap context. afterSwapReturnDelta: allows the hook to take or grant a delta after the swap completes.

Security & trust assessment

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

Who controls it: A privileged key could likely toggle the unlock flag, edit the exemption and allowlist mappings and configure pool parameters, which could change which trades pay fees or are blocked.

Risk to user funds: Because the hook can apply return deltas in swap callbacks and performs internal currency movement (moves-currency, erc20 transfers and ERC6909 claims), it can hold, move or withhold pool and trader funds during swaps.

Security findings

  • [high] Return-delta permissions on swap callbacks: The hook enables beforeSwapReturnDelta and afterSwapReturnDelta, so it can take or grant currency deltas during swaps, meaning it can extract value from traders or pool funds.
  • [medium] Privileged role writes to allowlist and flag storage: Several nonpayable selectors write to mapping and boolean slots that are read by swap logic, so a privileged key can change which addresses are exempt or alter behaviour without a timelock visible in the bytecode.
  • [medium] Possible pausable or switchable unlock flag: A boolean in slot 7 is read by the swap path and written by unlock-related functions, which could block or alter swaps if toggled by an admin.
  • [info] Burn accounting with bps cap: Storage tracks totalBurned and a MAX_BURN_FEE_BPS constant, indicating a burn fee mechanism whose rate is bounded by the constant rather than an unbounded setter.

Contract details

Verified source
No
Bytecode size
21,495 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, launchpad, moves-currency, return-delta, rewards, self-unlock

Pools using Launchpad hook