Access control hook on Robinhood Chain
Uniswap v4 Hook Contract 0xfd598567ee6b7cef6748d4aa788a9b6af6a00080 on Robinhood Chain · Access control
- Volume (24h)
- $20
- Value locked (TVL)
- $0
- All-time volume
- $20
- Pools using this hook
- 2
- Swaps (24h)
- 8 (5 traders)
- Total swaps
- 8
What it does
Restricts swaps in its pool to a list of addresses that the owner maintains.
How it works step by step
- Runs a check in beforeSwap that reads an address-to-bool allow-list mapping from storage slot 1.
- Lets the owner add or remove many addresses at once through setAllowed(address[], bool).
- Exposes a read-only allowed(address) view and an allowed list getter for inspecting the list.
- Stores the owner in slot 0, with owner() and transferOwnership(address) for administration.
- Exposes poolManager() so it can be bound to the Uniswap v4 PoolManager.
- Swap behaviour
- beforeSwap checks the caller against an owner-managed allow-list and reverts when the caller is not permitted, based on the decoded selector and storage reads.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee. No fee logic was identified in the decoded functions.
- Owner & admin controls
- Owner (storage slot 0) can call setAllowed to add or remove addresses in an allow-list mapping (slot 1), and can transfer ownership to any address via transferOwnership. No pause or upgrade functions were identified.
Enabled Uniswap v4 callbacks
beforeSwap
beforeSwap is enabled and is used to gate swaps against the allow-list mapping read from storage slot 1.
Security & trust assessment
Risk level: medium (decoded bytecode, medium confidence).
Who controls it: The owner can add or remove addresses from the allow-list and can transfer ownership to any address. If the allow-list is used to gate swaps, the owner effectively controls which addresses may trade in the pool.
Risk to user funds: The hook does not appear to take custody of tokens or modify balances from the decoded functions. Its main effect is to block swaps from addresses that are not on the allow-list, which could prevent some users from trading. Exact revert conditions could not be fully confirmed without source.
Security findings
- [medium] Owner-controlled swap allow-list: The beforeSwap selector reads the allow-list mapping, and the setAllowed function writes to it under an owner check, so the owner controls which addresses can swap.
- [low] Single-step ownership transfer: transferOwnership takes a single address with no two-step confirmation, so a mistyped address would permanently lock out administration.
- [info] Standard owner guard present: The contract uses a NotOwner custom error, consistent with a standard onlyOwner modifier on setAllowed and transferOwnership.
Contract details
- Verified source
- No
- Bytecode size
- 1,633 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable
Pools using Access control hook
- ETH / AIKOLS (0.01% fee) — 24h volume $15, TVL $0, 6 swaps today
- ETH / AIKOLS (0.01% fee) — 24h volume $4.90, TVL $0, 2 swaps today