Access control hook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
0

What it does

Gates pool initialization on Uniswap v4 by checking whether the pool is a registered market, with a factory binding and a market registry managed through separate functions.

How it works step by step

  • Implements beforeInitialize, which runs when a new pool is created on the hooked pool manager
  • Keeps a mapping from address to bool in storage slot 1 that records registered markets
  • registerMarket(address) writes to the market mapping to add an address
  • bindFactory(address) writes a factory address to storage slot 0
  • markets(address) reads the registry so callers can check whether an address is registered
Swap behaviour
No swap callbacks.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
A bindFactory(address) function, callable by an unknown caller and presumably restricted, sets a stored factory address; registerMarket(address) adds markets to a mapping. Whether these are access-controlled could not be confirmed from bytecode alone, so admin control is uncertain.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize is enabled and is used to gate pool initialization, which likely checks whether the pool's token pair is a registered market.

Security & trust assessment

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

Who controls it: A privileged caller that can invoke bindFactory or registerMarket may control which pools are allowed to initialize. The degree of control depends on whether those functions are access-restricted, which could not be verified.

Risk to user funds: The hook does not appear to take custody of tokens or alter swap amounts from the decoded selectors. Its main effect is to allow or block pool initialization, so funds are not directly at risk unless registration logic has further effects.

Security findings

  • [medium] Unverified write access to registry: The bytecode exposes bindFactory(address) and registerMarket(address) as nonpayable functions. Without verified source, it is not clear whether these are restricted to an owner or operator.
  • [info] Pool initialization gated by registry: beforeInitialize reads a boolean mapping keyed by address and may revert for pools not registered as markets, which would prevent their creation.
  • [info] No verified source: The contract is not verified and has no source, so behaviour beyond the decoded selectors cannot be checked.

Contract details

Verified source
No
Bytecode size
1,029 bytes
Upgradeable proxy
No

Pools using Access control hook