Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x0374d34fc8e4bee3c35da55174d476051a8b60cc on Robinhood Chain · Launchpad

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

What it does

A launchpad-style hook that gates pool creation to launcher-approved pools and applies a configurable tax to swaps, taking part of the swap value through return deltas.

How it works step by step

  • Restricts pool initialization to pools allowed by a launcher (beforeInitialize, PoolNotAllowed)
  • Stores a per-pool tax value keyed by pool id, readable through taxOf
  • Applies the tax during beforeSwap and reconciles it in afterSwap
  • Takes the taxed currency from the PoolManager through the take call and return deltas
  • Caps the tax with MAX_TAX_BPS and reverts with InvalidTax on out-of-range values
Swap behaviour
beforeSwap and afterSwap execute custom logic on every swap and can take a tax in the specified currency via return deltas and the PoolManager take call.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
A per-pool tax, read via taxOf(bytes32) and capped by MAX_TAX_BPS and an InvalidTax error, appears to be applied through the swap callbacks; the exact fee direction and recipient cannot be determined from the decoded input.
Owner & admin controls
A launcher address (returned by launcher(), not verified) is the only privileged caller; the decoded bytecode indicates NotLauncher and PoolNotAllowed guards, suggesting the launcher can enable pools and possibly set per-pool tax parameters via the nonpayable function 0xd63b8781. Exact parameter semantics cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize gates pool creation to allowed pools; beforeSwap and afterSwap run custom logic per swap; beforeSwapReturnDelta and afterSwapReturnDelta indicate the hook can take a specified-currency delta from swaps, and the take(address,address,uint256) selector suggests it withdraws tokens from the PoolManager.

Security & trust assessment

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

Who controls it: The launcher address controls which pools are allowed and can likely set or change tax parameters, which could alter the cost of swaps for all traders in those pools.

Risk to user funds: The hook can take tokens from swaps through return deltas and the take call, so user swap proceeds in pools using this hook can be partly diverted to the hook or its recipient. Exact amounts depend on the unverified tax logic.

Security findings

  • [medium] Hook takes swap currency via return deltas: The hook calls take on the PoolManager and has return-delta permissions, so it can extract a share of swap value from traders.
  • [medium] Unnamed state-changing function with storage writes: Function 0xd63b8781 is nonpayable with no decoded name and writes to the storage mapping, so its effect on tax configuration cannot be confirmed; it may let the launcher change tax after pool creation.
  • [info] Tax cap present: A MAX_TAX_BPS cap and InvalidTax error exist, which limits the tax rate if the cap is enforced on every write.
  • [info] Unverified source: No source is verified, so the logic of beforeSwap and afterSwap cannot be fully checked.

Contract details

Verified source
No
Bytecode size
3,671 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Launchpad hook