Launchpad hook on Robinhood Chain

Uniswap v4 Hook Contract 0x066fa23e6f598838824c2d172d3abd88bcad70cc on Robinhood Chain · Launchpad

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

What it does

This hook starts pool fees high at launch and lowers them over time toward a floor, so early swaps pay more and later swaps pay less, while it also skims a hook fee from each swap.

How it works step by step

  • Initializes a pool and records the launch timestamp (launchedAt) in afterInitialize, with a fee that starts high and decays over time
  • Charges a dynamic fee on swaps that starts at START_FEE_BPS and decays per minute by DECAY_BPS_PER_MINUTE down to FLOOR_FEE_BPS
  • Takes a hook fee in afterSwap by taking the fee currency from the pool manager and accumulating it in pendingFees
  • Uses afterSwap return deltas to take a portion of the swap output or input as hook fees
  • Redeems accumulated fees through redeemFees, which unlocks the pool manager via unlockCallback and sends fees out
  • Has a game and imd address reference that suggests fee or proceeds routing to external contracts, though their use is not confirmed from bytecode
Swap behaviour
beforeSwap and afterSwap run on every swap. The swap fee is derived from feeBps, which is decayed from the start fee over time since launch toward the floor. Swaps made early after launch pay a higher fee and later swaps pay less. Afterwards a hook fee is taken through return deltas and recorded in pendingFees.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as selectors and are likely to be gated or only logged. Their exact logic cannot be confirmed from the decoded bytecode.
Fee behaviour
The swap fee starts at START_FEE_BPS and decays by DECAY_BPS_PER_MINUTE toward FLOOR_FEE_BPS since launchedAt. A hook fee is taken on swaps and accumulated in pendingFees, then redeemed via redeemFees.
Owner & admin controls
No owner or admin selector was identified in the decoded functions. redeemFees is callable by anyone according to the selector list, so fee redemption is not clearly restricted. No pause or upgrade function was found.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize record pool setup and launch time. beforeSwap sets the dynamic fee for each swap. afterSwap takes the hook fee. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a cut of swap amounts. Liquidity callbacks are enabled in the bytecode selectors but permissions do not list them.

Security & trust assessment

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

Who controls it: Without verified source the owner or privileged roles could not be identified. Any admin role would be unclear from the bytecode, so the exact power of a privileged key cannot be confirmed.

Risk to user funds: The hook takes swap currency through return deltas and holds accumulated fees in pendingFees until redeemed. It can move pool and user funds to fee recipients through the unlock path, but cannot block swaps from the decoded selectors.

Security findings

  • [medium] Hook takes currency via return deltas: afterSwap and beforeSwap return deltas let the hook take part of each swap, so every trade routed through the pool pays this cut.
  • [medium] Fee redemption may be permissionless: redeemFees (0x3a047bb3) is nonpayable and no access check was identified in decoded bytecode, so anyone may trigger fee withdrawals, which needs confirming.
  • [low] Self-unlock pattern: The hook calls unlock and implements unlockCallback, so it runs its own pool manager unlock flow to move currency during fee redemption.
  • [info] Decaying fee schedule depends on launch timestamp: The fee depends on launchedAt stored in slot 2 and set during afterInitialize, so the schedule is fixed once the pool is initialized.

Contract details

Verified source
No
Bytecode size
5,342 bytes
Upgradeable proxy
No
Detected patterns
launchpad, liquidity-management, moves-currency, return-delta, self-unlock

Pools using Launchpad hook