Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x8eca353f6b3581415585d775968d4ad4ebc26040 on Robinhood Chain · Launchpad

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

What it does

This launchpad-style hook restricts swaps in its bound pool according to an owner-set rule with buy and sell states and cooldowns, so whether a given trade is allowed or charged more depends on those settings, which cannot be fully determined from the decoded bytecode.

How it works step by step

  • Binds to a single Uniswap v4 pool via a bindPool call that stores the pool key and pool id, and gates initialization on that binding
  • Uses beforeInitialize and afterInitialize to validate the pool is the expected one before trading begins
  • Runs beforeSwap and afterSwap hooks that read a buy state and sell state, plus a cooldown timer (cooldownSeconds, lastTriggerAt) and a stored rule, to apply trading restrictions during an early launch phase
  • Exposes an owner-controlled enabled flag (setEnabled) that switches the swap-gating logic on or off
  • Relays to an imdToken and a launchFactory address and reads a lastCommandId, suggesting it is coupled to an external launch or relay system
  • Adds liquidity and removes liquidity callbacks are present in the dispatch table but appear to be permissive pass-throughs gated by the pool manager
Swap behaviour
beforeSwap and afterSwap read buyState, sellState, rule, cooldownSeconds and lastTriggerAt to decide whether a swap is allowed under the current launch rule; afterSwap also updates the stored trigger timestamp and command id. The exact direction-specific fee or restriction cannot be fully determined from decoded bytecode alone.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as selectors and appear to be callbacks from the pool manager; they do not obviously alter balances, but their exact logic cannot be confirmed without source.
Fee behaviour
Uses the pool's static fee; no dynamic fee selector (such as a fee override return) was identified in the decoded functions.
Owner & admin controls
Owner (Ownable with transferOwnership and acceptOwnership two-step transfer) can call setEnabled to toggle swap gating, call bindPool to set the pool, and call df7e1a75 to change rule parameters (cooldown and thresholds). renounceOwnership is present but may be disabled given the RenounceDisabled error. Ownership transfer is possible.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap

beforeInitialize and afterSwap are the enabled hook permissions; beforeInitialize validates pool setup and afterSwap updates trade state after each swap.

Security & trust assessment

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

Who controls it: A single owner key controls whether swaps are restricted, the rule parameters and the bound pool, so a compromised or malicious owner could freeze or selectively gate trading in this pool.

Risk to user funds: The hook does not appear to take custody of tokens or return deltas, so it cannot directly move user funds, but it can block or restrict swaps, which affects access to liquidity.

Security findings

  • [medium] Owner can toggle and reconfigure swap restrictions: The owner can call setEnabled and the rule-setting function to change buy and sell restrictions and cooldown timing at any time, which can block or unblock trading for the pool.
  • [low] Owner-controlled pool binding: bindPool lets the owner associate the hook with a pool key; misconfiguration could leave the hook attached to an unintended pool or prevent initialization.
  • [medium] Swap-gating can block trades: beforeSwap reads buy and sell state and cooldown timers and can revert swaps, so users may be unable to trade during restricted periods.
  • [info] Unverified external coupling: The hook references imdToken, launchFactory and a relay, and uses extsload; the behaviour of these external dependencies is unknown without source.

Contract details

Verified source
No
Bytecode size
4,897 bytes
Upgradeable proxy
No
Detected patterns
launchpad, ownable

Pools using Launchpad hook