PoolInitializationGuard on Robinhood Chain
Uniswap v4 Hook Contract 0x19bec7c2e1b2aadaf67b259744751a9960d66000 on Robinhood Chain · Access control · Verified contract
- Volume (24h)
- $84.86K
- Value locked (TVL)
- $7.15K
- All-time volume
- $84.91K
- Pools using this hook
- 41
- Swaps (24h)
- 576 (222 traders)
- Total swaps
- 8,702
What it does
Restricts creation of pools that use this hook so that only the factory that deployed it can initialize them; swaps, fees and liquidity are not changed.
How it works step by step
- Runs only on the beforeInitialize callback, which the PoolManager calls when a pool using this hook is initialized.
- Reverts with NotFactoryInitialization unless the caller is the PoolManager and the sender argument equals the stored factory address.
- Stores the PoolManager and the factory as immutable values set in the constructor; the factory is whichever address deployed the hook (msg.sender).
- Checks in its constructor that its own address carries exactly the BEFORE_INITIALIZE permission bit (0x2000), reverting otherwise.
- Does not implement swap, liquidity, donate or return-delta callbacks, so it does not touch pool balances or trading.
- Swap behaviour
- No swap callbacks.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee.
- Owner & admin controls
- No owner, pause, upgrade path or parameter setter found. The factory and PoolManager addresses are immutable and cannot be changed after deployment.
Enabled Uniswap v4 callbacks
beforeInitialize
beforeInitialize is enabled so the hook can check the initializing sender and revert any initialization that does not come from the factory.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The factory has sole power to initialize pools that use this hook. It cannot change the hook itself, but its own logic decides which pools get created.
Risk to user funds: The hook does not hold, move or receive tokens. It can only block pool initialization, which affects pool creation and not existing funds.
Security findings
- [low] Pool creation limited to one factory: The beforeInitialize check requires sender == factory, so any pool using this hook can only be initialized through that factory. If the factory cannot or will not call initialize, such pools cannot be created, and the factory cannot be replaced because it is immutable.
- [info] Factory is a trust anchor: The factory address is fixed at construction as msg.sender. Whether initializations are sensible depends on that factory's own code, which is not included in this input.
- [info] Permission bits match the callbacks implemented: The hook address ends in 0x6000, whose low 14 bits equal 1 << 13 (BEFORE_INITIALIZE), and the constructor enforces this equality, so the PoolManager will call only the implemented callback.
- [info] No effect on swaps or liquidity: Only beforeInitialize is enabled and it returns a selector without modifying state or deltas, so the hook cannot take or block user tokens during swaps or liquidity changes.
- [info] No ownership or upgrade mechanism: There is no owner, upgradeable proxy or setter in the verified source, so the hook's behaviour cannot be changed after deployment.
Contract details
- Verified source
- Yes (PoolInitializationGuard)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 488 bytes
- Upgradeable proxy
- No
Pools using PoolInitializationGuard
- ETH / ITEM (1.25% fee) — 24h volume $84.86K, TVL $7.14K, 570 swaps today
- IMD / BIC (1.25% fee) — 24h volume $0, TVL $0, 4 swaps today
- WEIR / IMD (1.25% fee) — 24h volume $0, TVL $0, 2 swaps today
- IMD / IMDCRED (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / PEPES (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / MOON (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / PEPEFRONT (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / RISK (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / SWARMSTEIN (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / NUMOS (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / DPBL (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / SLABS (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / BANKERS (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / PINKY (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / WORK (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / AGENT (1.25% fee) — 24h volume $0, TVL $0.56, 0 swaps today
- IMD / SUN (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / NEETHOME (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / YFD (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- IMD / HOODT (1.25% fee) — 24h volume $0, TVL $0, 0 swaps today