Custom pricing hook on Robinhood Chain

Uniswap v4 Hook Contract 0x5f616af0d08a4714df79cf74d92d9230962c28cc on Robinhood Chain · Custom pricing

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

What it does

A Uniswap v4 hook for a launch-period token that appears to apply launch-window and anti-sniping rules and uses return-delta custom accounting during swaps.

How it works step by step

  • Stores the pool manager, pool key and token address set during configure
  • Reads launchedAt and LAUNCH_WINDOW to determine whether the launch period is active
  • Applies snipe thresholds (SNIPE_T0_BPS, SNIPE_T1_BPS) to restrict early trades
  • Uses beforeSwapReturnDelta and afterSwapReturnDelta to take or adjust swap amounts
  • Calls an external engine for fee quotes (feeFor, onFee) and trade notifications (onTrade)
Swap behaviour
beforeSwap and afterSwap are active; the hook reads launch timing and snipe thresholds, may take a share of the swap via return deltas, and notifies an external engine via onTrade.
Liquidity behaviour
beforeAddLiquidity and afterRemoveLiquidity handlers exist; beforeAddLiquidity appears to read launch state (launchedAt, LAUNCH_WINDOW) and may restrict liquidity additions during a launch window. beforeRemoveLiquidity and afterAddLiquidity are present as selectors but their behaviour is not determinable.
Fee behaviour
Calls out to external fee-related selectors (feeFor(bool,uint256), onFee(bool,uint256,uint256,uint256)) suggesting a fee may be computed by an external engine contract; the engine address is stored in slot 1. Exact fee logic cannot be determined from bytecode alone.
Owner & admin controls
configure(address,address,(address,address,uint24,int24,address)) is a nonpayable setup function writing storage slots 0 to 3; the selector set includes NotDeployer() error, suggesting only a deployer address can call configure. No pause or upgrade function found. Parameters snipeBps and SNIPE_T0_BPS/SNIPE_T1_BPS are readable; no explicit setter for them was decoded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: validates or records pool initialization. beforeAddLiquidity: likely gates liquidity provision during a launch window. beforeSwap: applies launch-period logic, reads snipe thresholds and the launch timestamp. afterSwap: updates trade state and may use return deltas. beforeSwapReturnDelta and afterSwapReturnDelta: the hook can take or adjust token amounts during swaps, which is a custom accounting capability.

Security & trust assessment

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

Who controls it: A deployer-controlled configure step sets the manager, pool key and token references; if deployer keys are compromised, pool configuration could be altered. Snipe thresholds appear tunable only at deployment, but this is not confirmed.

Risk to user funds: Because the hook can take tokens via return deltas during swaps and calls an external engine for fees, it can alter the amounts users receive; it can also restrict trades in the launch window. Funds are not necessarily locked, but swap outputs may be reduced by the hook.

Security findings

  • [medium] Return-delta custom accounting: The hook has return-delta permissions and calls take(address,address,uint256) and onTrade, so it can take a share of swap amounts from the pool; the exact take amounts depend on logic not decodable here.
  • [low] Deployer-restricted configuration: The contract references a NotDeployer error and a configure function, indicating a privileged deployer role controls initial wiring of the pool and token.
  • [info] Time-based launch restrictions: Launch-window logic (launchedAt, LAUNCH_WINDOW, snipe thresholds) indicates swap or liquidity restrictions during the early period of the token, which may block or penalise early buyers.

Contract details

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

Pools using Custom pricing hook