Hook 0x7506…6000 on Robinhood Chain

Uniswap v4 Hook Contract 0x7506f0a9d1709fb5d0e1755e33aa371f02906000 on Robinhood Chain · Other

Volume (24h)
$0
Value locked (TVL)
$2.59K
All-time volume
$251.89K
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
67,674

What it does

A small hook that enables only the beforeInitialize callback and stores a bound venue and binder address, most likely to gate or configure pool initialization rather than trading.

How it works step by step

  • Enables the beforeInitialize callback on pool creation
  • Stores a bound address and a binder address set via bind(address)
  • Exposes venue() and binder() getters for the stored addresses
  • Exposes bound() returning a stored boolean flag
  • beforeInitialize compares or checks against the stored state before allowing initialization
Swap behaviour
No swap callbacks.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
A bind(address) function is callable (nonpayable, no visible access check in the decoded selectors); it writes a stored address and a bool flag. Whether it can be called once or repeatedly by anyone cannot be confirmed from bytecode alone. Views venue() and binder() expose the stored addresses.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize is enabled and is a view function that takes the pool key and sqrtPriceX96; it is not known from the decoded bytecode what it checks or returns.

Security & trust assessment

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

Who controls it: If bind(address) lacks an access check, any account could set the bound venue or binder address, which could redirect the hook's trust relationships. If it is restricted, the controlling key is not identifiable from the decoded data.

Risk to user funds: No swap or liquidity callbacks and no return deltas are declared, so the hook does not directly take or hold user tokens. Its effect on pool initialization depends on the bound venue and binder, which are set through bind(address) and could influence whether pools can be initialized.

Security findings

  • [medium] Unclear access control on bind: bind(address) is a nonpayable state-changing selector with no clearly identified caller restriction in the decoded output. Its access control must be checked in the bytecode manually.
  • [info] Stored binding state gates initialization logic: The hook stores an address and a bool flag in slot 0, and beforeInitialize reads that state. Whether the bound address is trusted for any gating decision is not determinable here.
  • [info] Limited callback surface: Only beforeInitialize is enabled and no swap or liquidity callbacks are present, so the hook does not directly take or move pool funds.

Contract details

Verified source
No
Bytecode size
742 bytes
Upgradeable proxy
No

Pools using Hook 0x7506…6000