Likely oracle hook on Robinhood Chain

Uniswap v4 Hook Contract 0xa31729621a2280c0ff9aaff5b3f357cff1bec040 on Robinhood Chain · Fee sharing

Volume (24h)
$619
Value locked (TVL)
<$0.01
All-time volume
$89.75K
Pools using this hook
51
Swaps (24h)
17 (13 traders)
Total swaps
1,067

What it does

A Uniswap v4 hook that reacts after swaps to manage its own order books, buckets and protocol commission for traders and liquidity providers, though its exact trading mechanism is unclear without source.

How it works step by step

  • Runs an afterSwap callback that updates pool price and order or bucket state after each swap
  • Tracks orders per user and per market, with lists of order IDs and a next-order counter
  • Settles and claims balances through realize, claim and claimBoth functions
  • Accrues protocol commission per token and lets an authorized party withdraw it via withdrawCommission
  • Uses take and transferFrom to move tokens, and unlock or unlockCallback to settle within the PoolManager
Swap behaviour
afterSwap runs after every swap on pools using this hook, updating prices, bucket state and accrued protocol fees based on the swap result and hook data.
Liquidity behaviour
No beforeAddLiquidity or afterAddLiquidity callbacks are enabled. The hook appears to manage its own order and bucket state (getBucket, listOrders, realize, claim, claimBoth) and uses take and transferFrom to move tokens, so it likely maintains liquidity-like positions outside the pool's standard accounting.
Fee behaviour
Exposes fee-related views (feePolicy, orderFeeBps, MAX_FEE_BPS, getPoolConfig) and a protocolAccrued mapping, indicating the hook accrues protocol fees and lets the treasury or owner withdraw commission via withdrawCommission; the exact fee rate logic cannot be determined from the bytecode alone.
Owner & admin controls
Storage slot 0 holds an address and slot 11 a uint8, with writes from several admin-style functions (3e993775, f4944098, b66f0998, 56337013), suggesting an owner or registrar role that can register pools and set configuration; exact role names cannot be confirmed without source. Permissions are limited to afterSwap, so the hook does not gate pool initialization or liquidity changes itself.

Enabled Uniswap v4 callbacks

afterSwap

afterSwap: runs after each swap to update pool price, buckets or accrued fees, using the swap delta and hook data passed in.

Security & trust assessment

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

Who controls it: A privileged key with registrar, manager or treasury roles may be able to register pools, change fee policy and parameters, and withdraw accrued commission; the presence of withdrawCommission and fee policy setters means a compromised key could redirect protocol revenue.

Risk to user funds: The hook holds order and bucket balances and transfers tokens through take and transferFrom, so user deposits placed into its orders are custodied by the hook contract; a bug or privileged misuse could affect those funds and accrued protocol commission.

Security findings

  • [medium] Hook moves currency: The hook calls take and transferFrom and holds bucket and order balances, so it moves user and pool tokens rather than only observing swaps.
  • [low] Self-unlock pattern: The unlockCallback and unlock selectors indicate the hook calls PoolManager.unlock on itself to settle balances inside a callback.
  • [medium] Privileged fee and withdrawal controls: Fee policy, pool configuration and commission withdrawal appear to be set and executed by privileged addresses; without verified source, the access checks cannot be confirmed.
  • [info] Unverified bytecode: No verified source is available, so function purposes, access control and upgrade status are inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
28,073 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, self-unlock

Pools using Likely oracle hook