Access control hook on Robinhood Chain

Uniswap v4 Hook Contract 0xfa3da20ec661aa26f9f93e4421fab6989c4b4800 on Robinhood Chain · Access control

Volume (24h)
$9.59K
Value locked (TVL)
$105.81K
All-time volume
$12.03M
Pools using this hook
7
Swaps (24h)
266 (88 traders)
Total swaps
187,415

What it does

A minimal hook that runs before liquidity is added to a pool and may gate additions through an external controller.

How it works step by step

  • Enables only the beforeAddLiquidity callback
  • Exposes a view beforeAddLiquidity(address,PoolKey,ModifyLiquidityParams,bytes) entry point
  • Exposes poolManager() and controller() getters
  • Appears to delegate eligibility checks to an external controller contract
  • Does not write any storage slots visible in the decoded layout
Swap behaviour
No swap callbacks.
Liquidity behaviour
beforeAddLiquidity is dispatched and is a view function; it appears to gate or check liquidity additions via the controller, without state writes visible in the decoded output.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
A controller() getter is exposed, suggesting an external controller address is stored, but no setter was decoded; any admin logic is not visible in the bytecode.

Enabled Uniswap v4 callbacks

beforeAddLiquidity

beforeAddLiquidity: the hook is called before liquidity is added to a pool and can be used to validate or restrict adds.

Security & trust assessment

Risk level: unknown (decoded bytecode, low confidence).

Who controls it: If the controller address can be changed or the controller logic is privileged, a key holder could block liquidity additions, but no setter was decoded so this cannot be confirmed.

Risk to user funds: The hook cannot hold or move pool funds based on the decoded permissions (no swap or return-delta callbacks), but it could block liquidity adds through a revert in beforeAddLiquidity; the external controller call target is unknown.

Security findings

  • [info] Read-only liquidity gate: The only enabled callback is beforeAddLiquidity, and the function is declared view, so it cannot take or move tokens directly; it can only revert or allow the add.
  • [low] Limited decoded surface: The bytecode is small (523 bytes) and only three selectors were decoded; no storage layout was inferred, so the full behaviour of the controller call path could not be determined.

Contract details

Verified source
No
Bytecode size
523 bytes
Upgradeable proxy
No

Pools using Access control hook