Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x5783997af4f703b1fa34594d5e0739c47647e0cc on Robinhood Chain · Launchpad

Volume (24h)
$10.27K
Value locked (TVL)
$1,000
All-time volume
$10.27K
Pools using this hook
1
Swaps (24h)
127 (60 traders)
Total swaps
127

What it does

This launch hook charges a time-decaying tax on swaps during an early window and routes the collected amount to operations, with trading blocked until an owner-set open time.

How it works step by step

  • Acts as a Uniswap v4 hook for a launch pool, with a launch window and tax schedule (LAUNCH_TAX_BPS, T1/T2 tax tiers and T1_SECS/T2_SECS timing) applied during early trading
  • Gates trading with tradingOpen and OPEN_AT, reverting swaps with TradingNotOpen before the open time
  • Uses beforeSwapReturnDelta and afterSwapReturnDelta to take a tax from swaps and route it, tracking pendingUsdg, totalToOps and totalVolumeUsdg
  • Accumulates taxed amounts and flushes them to operations addresses via flush() and the OPS list, using the pool manager take/unlock flow (unlockCallback)
  • Checks a TWAP over TWAP_WINDOW and a SLIPPAGE_BPS tolerance against a vault spot price, indicating price-referenced settlement
  • Restricts pool initialization to its launcher (LAUNCHER, NotLauncher, NotOurPool) and tracks a USDG currency via usdg and usdgIsCurrency0
Swap behaviour
During the launch window, swaps revert before OPEN_AT and then pay a tax set by LAUNCH_TAX_BPS, T1_TAX_BPS or T2_TAX_BPS depending on elapsed time, taken as a return delta in beforeSwap and afterSwap. Buyers and sellers are not distinguished in the decoded logic, so the direction that pays more cannot be confirmed.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
A launch tax in basis points (LAUNCH_TAX_BPS, T1_TAX_BPS, T2_TAX_BPS, currentTaxBps) is taken from swaps and accumulated for operations; the pool's LP_FEE is a separate static value.
Owner & admin controls
An owner (owner()) and a chad() address are present, with OPS and other parameters stored, suggesting privileged control over tax, operations addresses and flushing. Exact setter functions could not be identified from decoded selectors.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts and validates pool creation to the launcher; beforeSwap gates trading and computes the tax delta; afterSwap records volume and pending amounts and can take a return delta; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take currency from swaps.

Security & trust assessment

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

Who controls it: A privileged owner or chad key could likely alter tax tiers, operations recipients and open timing, affecting how much traders pay and where taxes flow.

Risk to user funds: The hook holds and moves swap currency through return deltas and take/flush calls, so user trades are taxed and accumulated funds sit under hook control until flushed.

Security findings

  • [high] Hook takes swap currency via return deltas: beforeSwapReturnDelta and afterSwapReturnDelta permissions allow the hook to skim a tax from every swap in the pool.
  • [medium] Trading gated by owner-controlled open time: tradingOpen and OPEN_AT revert swaps before the open time, so trading can be blocked until a privileged schedule allows it.
  • [medium] Owner and chad privileges over funds routing: Owner and chad addresses exist alongside an OPS list and flush(), so a privileged key may influence where accumulated tax is sent.
  • [info] Unverified source: No verified source is available, so setter access control and upgrade paths could not be confirmed from bytecode alone.

Contract details

Verified source
No
Bytecode size
9,218 bytes
Upgradeable proxy
No
Detected patterns
erc20, launchpad, liquidity-management, moves-currency, oracle, ownable, return-delta, self-unlock, tax

Pools using Launchpad hook