ClankInitializationGuardHook on Robinhood Chain
Uniswap v4 Hook Contract 0xd405e0dff2d0cc7eaa48b3aec2e3f2456c072000 on Robinhood Chain · Access control · Verified contract
- Volume (24h)
- $51.15K
- Value locked (TVL)
- $61.24K
- All-time volume
- $12.13M
- Pools using this hook
- 4
- Swaps (24h)
- 407 (194 traders)
- Total swaps
- 66,320
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
- ETH / AGI (0.30% fee) — 24h volume $36.46K, TVL $31.79K, 263 swaps today
- ETH / CUM (0.30% fee) — 24h volume $7.53K, TVL $10.42K, 73 swaps today
- ETH / CABO (0.30% fee) — 24h volume $7.06K, TVL $13.14K, 66 swaps today
- ETH / CLANKCAT (0.30% fee) — 24h volume $108, TVL $5.89K, 5 swaps today