Access control hook on Robinhood Chain
Uniswap v4 Hook Contract 0x5e4684ad3815b637fc6f2c07db87b3a808caa0c0 on Robinhood Chain · Access control
- Volume (24h)
- $0.45
- Value locked (TVL)
- $2.97
- All-time volume
- $0.45
- Pools using this hook
- 4
- Swaps (24h)
- 9 (1 traders)
- Total swaps
- 9
What it does
This hook gates trading in oracle-priced market pools: swaps go through only during open sessions, with a fresh price feed and within a price band around the oracle, while LPs can always withdraw and the hook takes no tokens from trades.
How it works step by step
- Only lets pools be created for markets the owner has listed; unlisted pools are rejected at creation.
- Before each swap, checks an external price feed and rejects swaps whose price falls outside an allowed band around the feed price.
- Rejects swaps when the price feed is stale or invalid, and appears to enforce trading sessions and market holidays, similar to stock-market hours.
- An owner and a keeper maintain the market list, the holiday calendar and session settings.
- Never runs on liquidity changes, so LPs can always add and withdraw freely.
- Swap behaviour
- Swaps can revert if the market is closed (holiday or outside session), if the price feed is stale or bad, or if the trade would push the price outside the allowed band around the oracle price. The hook cannot take tokens from swaps, and afterSwap appears to only record statistics.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely.
- Fee behaviour
- The hook cannot charge fees through return deltas. There is a fee-lookup function per market tier, but the exact values and whether they are applied as a dynamic pool fee cannot be confirmed from bytecode.
- Owner & admin controls
- The owner lists markets with their band and fee settings and can set the keeper. The owner or keeper manages the holiday and session calendars, which can effectively halt trading. Exact limits on bands and fees are not visible in bytecode.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap
beforeInitialize: only allows listed markets to create pools; beforeSwap: enforces trading hours, feed freshness and the price band; afterSwap: checks the band or records per-pool trading stats.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: An owner (two-step transfer) and a keeper control market listings, price bands and the trading calendar. At worst they can halt swaps, but they cannot take funds.
Risk to user funds: The hook holds no user funds and cannot deduct tokens from swaps or liquidity. LP principal cannot be locked or drained; only swaps can be blocked.
Security findings
- [medium] Admin-controlled trading hours: The owner or keeper can mark holidays or change sessions, which causes all swaps in affected pools to revert. This is effectively a pause on trading.
- [low] Oracle-dependent swaps: If the price feed goes stale beyond its maximum age or grace period, or reports bad data, swaps are blocked until it recovers.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks and return deltas are disabled in the address, so LPs can always withdraw and the hook cannot take swap or LP tokens.
Contract details
- Verified source
- No
- Bytecode size
- 11,753 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable
Pools using Access control hook
- SPY / USDG (Dynamic fee) — 24h volume $0.10, TVL $0.75, 2 swaps today
- USDG / AAPL (Dynamic fee) — 24h volume $0.10, TVL $0.74, 2 swaps today
- USDG / NVDA (Dynamic fee) — 24h volume $0.15, TVL $0.74, 3 swaps today
- TSLA / USDG (Dynamic fee) — 24h volume $0.10, TVL $0.74, 2 swaps today