Likely utility hook on World Chain
Uniswap v4 Hook Contract 0x31e40b7cfc3df606272ba24a7d961466a5dc1000 on World 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
A Uniswap v4 hook that records pool configuration after pool initialization and is owner-managed, tracking allowed collateral and markets tied to a World ID router.
How it works step by step
- Runs afterInitialize to store the pool key (currencies, fee, tick spacing, hooks address) on initialization
- Maintains an owner-managed collateral allowlist via setCollateralAllowed
- Lets the owner register markets via addMarket
- Exposes getters for pool key, quote token, pool manager and world ID router addresses
- Uses Ownable-style ownership with transfer and renounce
- Swap behaviour
- No swap callbacks.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- No fee logic identified in the decoded functions; fees are not set or taken by this hook based on the available selectors.
- Owner & admin controls
- Owner-gated functions: transferOwnership(address) and renounceOwnership(), plus setCollateralAllowed(address,bool) and addMarket(uint256) which appear to be restricted to the owner stored in slot 0. Owner can therefore enable or disable collateral tokens and add markets, and can transfer or renounce ownership. No pause or upgrade mechanism was identified in the decoded functions.
Enabled Uniswap v4 callbacks
afterInitialize
afterInitialize: runs once after a pool is initialized, storing the pool key (currency0, currency1, fee, tickSpacing, hooks) and associated token addresses in storage slots 1 to 3.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The owner can change which collateral tokens are allowed and add markets, which could affect what pools or assets are supported. Ownership can be transferred or renounced at will by the owner key.
Risk to user funds: The decoded functions show no direct transfer of user or pool tokens and no swap or liquidity callbacks, so the hook does not appear to hold or move user funds directly. Funds exposure would depend on external contracts (worldIdRouter, markets) that were not analysed.
Security findings
- [medium] Single-owner control: Ownership is a single address in slot 0 with transferOwnership and renounceOwnership available, so a single key controls privileged configuration.
- [low] Owner-controlled market and collateral allowlist: setCollateralAllowed and addMarket are callable only by the owner and change protocol configuration, which may gate which pools or tokens are usable.
- [info] External router dependency: The hook stores pool key data in afterInitialize, indicating it tracks pools it is attached to, and references a worldIdRouter and poolManager, suggesting integration with an external identity router.
Contract details
- Verified source
- No
- Bytecode size
- 1,812 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable
Pools using Likely utility hook
- WLD / USDC (0.30% fee) — 24h volume $0, TVL $0, 0 swaps today