Likely access control hook on Robinhood Chain
Uniswap v4 Hook Contract 0xb9326d945956208ef0b6fc6dfbe184e89f7d0880 on Robinhood Chain · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $10.79K
- Pools using this hook
- 9
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 43
What it does
A Uniswap v4 hook that gates swaps and liquidity additions to an owner-managed allowlist of routers, callers and liquidity providers, with an owner-configurable fee schedule.
How it works step by step
- Restricts which addresses can add liquidity via an on-chain allowlist (beforeAddLiquidity).
- Checks trusted routers and swap callers before executing swaps (beforeSwap).
- Stores per-pool enabled flags that the owner can toggle.
- Holds an owner-writable fee configuration read during swaps.
- Exposes Ownable2Step ownership management and a trusted router list.
- Swap behaviour
- beforeSwap checks trusted routers and swap callers, enforces pool enablement, and applies the owner-configured fee configuration; swaps from unapproved callers may be rejected.
- Liquidity behaviour
- beforeAddLiquidity checks whether the sender is an allowed liquidity provider (mapping at slot 3) and whether the pool is enabled (mapping at slot 2); adds from non-allowlisted addresses are expected to revert. beforeRemoveLiquidity and afterRemoveLiquidity are present as view selectors, so removals appear to be unrestricted.
- Fee behaviour
- Fees are read from a stored fee configuration (slots 7 to 10 hold uint24 fee values, uint16 parameters and a bool) and used during beforeSwap; the owner can rewrite these values via the unnamed setter 0x3400101a. Exact fee formula could not be confirmed without source.
- Owner & admin controls
- Owner (Ownable2Step: transferOwnership, acceptOwnership, renounceOwnership) can set the fee configuration via selector 0x3400101a (uint24 fee values, uint16 parameters, uint32 value), enable or disable pools via setPoolEnabled, manage trusted routers and swap callers, manage the liquidity provider allowlist, and set mxSwapAmt related parameters. Owner can also renounce ownership.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap
beforeAddLiquidity: gates which addresses may add liquidity to enabled pools. beforeSwap: applies swap-time logic for trusted routers or swap callers and reads the fee configuration.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The owner controls pool enablement, the liquidity provider allowlist, trusted routers and swap callers, and the fee configuration. A malicious or compromised owner could raise fees, block new liquidity or disable pools, but the owner cannot directly seize pool reserves from the bytecode shown.
Risk to user funds: The hook does not expose token-taking return deltas in its permissions and no transfer selectors appear in the dispatch table, so it does not appear to custody pool funds. Its main effect on users is possible blocking of swaps or liquidity additions and fee changes set by the owner.
Security findings
- [medium] Owner-gated access to swaps and liquidity: The hook can revert beforeSwap or beforeAddLiquidity depending on the trusted router, swap caller and pool enabled mappings, so an owner-controlled allowlist can restrict who can trade or provide liquidity.
- [medium] Owner can change fee configuration: Fee parameters are stored in slots 7 to 10 and writable by the owner through selector 0x3400101a; no bounds on fee magnitude were confirmed from decoded code.
- [info] Two-step ownership and no proxy observed: Ownable2Step pattern (pendingOwner, acceptOwnership) reduces accidental ownership transfer risk, and no upgrade proxy pattern was found in the selectors.
- [info] Unnamed functions limit analysis: Several selectors are unnamed in the dispatch table (0xc33451dc, 0xd037ddd3, 0x572ef17a, 0x3400101a), so their exact behaviour is uncertain.
Contract details
- Verified source
- No
- Bytecode size
- 9,633 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable
Pools using Likely access control hook
- WETH / SPCX (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / SPY (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / GME (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / META (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / AAPL (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / TSLA (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- AMC / WETH (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / HIMS (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / MU (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today