Access control hook on Robinhood Chain
Uniswap v4 Hook Contract 0xa800cb674e73f46eb0353473d6dbf17204654840 on Robinhood Chain · Access control
- Volume (24h)
- $1.15M
- Value locked (TVL)
- $124.68K
- All-time volume
- $1.15M
- Pools using this hook
- 1
- Swaps (24h)
- 3,571 (1,191 traders)
- Total swaps
- 3,571
What it does
This hook appears to gate liquidity additions and swap activity with address-based controls such as nonces, a signer, and a sell toggle, but the exact behaviour cannot be fully confirmed without source.
How it works step by step
- Runs a beforeAddLiquidity check that may restrict who can provide liquidity
- Runs an afterSwap callback that updates per-address state (nonces and last user records)
- Exposes a signer() getter, indicating an off-chain authorization key
- Exposes sellEnabled() and a list getter, suggesting a sell whitelist or toggle
- Exposes getETHBalance(), indicating the hook may hold native ETH
- Swap behaviour
- afterSwap updates per-address state and a sell-enabled flag may restrict selling; the precise restriction logic could not be determined from the bytecode.
- Liquidity behaviour
- beforeAddLiquidity and afterAddLiquidity selectors are present, and the hook tracks per-address nonces, so adding liquidity may be gated by a signed-authorization or nonce check; the exact condition could not be confirmed from bytecode alone.
- Fee behaviour
- Uses the pool's static fee.
- Owner & admin controls
- A signer() function and a storage address in slot 0 suggest a privileged signer or owner, but no setter was identified from the decoded selectors, so admin control scope cannot be fully confirmed.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, afterSwap
beforeAddLiquidity gates liquidity provision; afterSwap updates per-address state (nonces/lastUser) after each swap.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: A privileged signer address (stored in slot 0) may control which addresses are permitted to add liquidity or sell; a compromised signer could block or allow specific participants.
Risk to user funds: The hook may restrict who can add liquidity or sell, and may hold native ETH via getETHBalance; whether it can move or seize pool funds could not be determined from the decoded bytecode.
Security findings
- [medium] Privileged signer dependency: The hook exposes signer() and stores an address in slot 0, indicating an off-chain signing authority that may gate participation.
- [medium] Possible sell restriction toggle: The hook exposes sellEnabled() and a list-style getter, which suggests a toggle that can restrict selling by some or all users.
- [low] Native ETH balance held by hook: The hook exposes getETHBalance() and a poolManager() getter; it may hold native ETH, which implies a potential custody surface.
- [info] Unverified source: No verified source is available, so function purposes and access checks are inferred from selectors and storage only.
Contract details
- Verified source
- No
- Bytecode size
- 12,193 bytes
- Upgradeable proxy
- No
Pools using Access control hook
- ETH / BELIEVE (0.05% fee) — 24h volume $1.15M, TVL $34.02K, 3,571 swaps today