ClankInitializationGuardHook on Robinhood Chain

Uniswap v4 Hook Contract 0x18bff70216af1b93f3552016dec742c5d78ee000 on Robinhood Chain · Access control · Verified contract

Volume (24h)
$4.19K
Value locked (TVL)
$64.97K
All-time volume
$300.85K
Pools using this hook
3
Swaps (24h)
82 (47 traders)
Total swaps
5,960

What it does

Restricts pool initialization on Clank pools so that only the designated factory can create them, preventing third parties from front-running predictable pool keys before graduation.

How it works step by step

  • Enables only the beforeInitialize callback; all other hook callbacks are disabled.
  • On pool initialization, requires msg.sender to be the PoolManager and the sender to equal the configured factory address.
  • Reverts initialization attempts from any other sender with NotFactory or NotPoolManager.
  • Factory is set once by the owner via setFactory and cannot be changed afterwards.
  • Ownership uses a two-step transfer and renouncing ownership is disabled.
Swap behaviour
No swap callbacks.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Charges no fee; uses the pool's static fee.
Owner & admin controls
Owner (Ownable2Step) can call setFactory once to permanently wire the factory address; the factory can then only be set once and cannot be changed. Ownership transfer is two-step (transferOwnership then acceptOwnership). renounceOwnership is disabled and always reverts. No pause, upgrade proxy, or fee/parameter controls found.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize: validates that the pool initialization is initiated by the wired factory address (sender) and called from the PoolManager, otherwise reverts.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: The owner controls only the one-time factory wiring via setFactory; the owner cannot change the factory afterwards, block swaps, or alter fees. Until setFactory is called, no pool can be initialized through this hook at all, so the owner key is a liveness dependency during setup.

Risk to user funds: None directly. The hook does not take tokens, return deltas, or affect swap or liquidity flows; it only determines which address may initialize pools that use it.

Security findings

  • [info] One-time factory wiring: setFactory can be called only once and factory is immutable after that, so an owner cannot repoint initialization to another factory later.
  • [low] Setup dependency on owner: Until the owner calls setFactory, the factory address is zero and every beforeInitialize call reverts with NotFactory, so pools using this hook cannot be created during the setup window.
  • [info] No fund custody or swap interference: The hook only gates pool initialization and never runs on swaps, liquidity changes, or donations, so it cannot hold, move, or block user funds in existing pools.
  • [info] Owner key retained by design: Ownable2Step is used and renounceOwnership reverts, so ownership cannot be accidentally abandoned, but the owner key remains a single point of control over the factory wiring until it is set.

Contract details

Verified source
Yes (ClankInitializationGuardHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
1,438 bytes
Upgradeable proxy
No
Detected patterns
ownable

Pools using ClankInitializationGuardHook