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
- SPRING / USDG (0.05% fee) — 24h volume $619, TVL $0, 17 swaps today
- USDG / VECTIS (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- MOASS / USDG (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- BLISS / USDG (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / TORO (0.05% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDG / SABLE (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / NOSH (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / HYDX (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / STBL (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / PRIORS (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / CASHED (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / ASKR (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- DEED / USDG (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / PULP (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / HADES (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- PARE / USDG (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / SI (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / Nautilo (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / DARK (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / AUR (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today