Likely utility hook on Robinhood Chain
Uniswap v4 Hook Contract 0x1f93b29ac80b97b4cb73ce03fea900f77b0c2840 on Robinhood Chain · Utility
- Volume (24h)
- $0
- Value locked (TVL)
- $351
- All-time volume
- $0
- Pools using this hook
- 3
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 6
What it does
A Uniswap v4 hook with beforeInitialize, beforeAddLiquidity and afterSwap callbacks whose purpose cannot be confirmed without verified source.
This read was written for the hook 0xca71…2840 on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Runs a check or setup step when a pool using this hook is initialized (beforeInitialize).
- Runs a hook before liquidity is added to the pool (beforeAddLiquidity).
- Runs a nonpayable hook after each swap (afterSwap), which may update state.
- Exposes LOCKER(), POOL_MANAGER() and TICK_SPACING() getters that reference the pool manager and pool configuration.
- Declares no return-delta or fee-override permissions, so it does not appear to alter swap amounts or fees directly.
- Swap behaviour
- afterSwap is enabled and is a nonpayable function, so it runs after each swap and may update state. Its exact logic is not decoded.
- Liquidity behaviour
- beforeAddLiquidity and afterRemoveLiquidity style callbacks are present in the dispatcher, but no decoded logic confirms what they do with liquidity.
- Fee behaviour
- Uses the pool's static fee.
- Owner & admin controls
- No admin controls found.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, afterSwap
beforeInitialize: runs when a pool using this hook is initialized. beforeAddLiquidity: runs before liquidity is added to the pool. afterSwap: runs after each swap, with a nonpayable signature that suggests it writes state.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: No owner or privileged role was identified in the decoded functions, so no privileged key was found. This is inferred from the absence of owner-style selectors, not confirmed.
Risk to user funds: Based on the enabled permissions alone, the hook does not declare return deltas or fee overrides, so it likely cannot take custody of tokens. Actual behaviour in afterSwap and beforeAddLiquidity cannot be verified from the decoded input.
Security findings
- [info] State-writing afterSwap without decoded storage: The bytecode contains an afterSwap function that is nonpayable and so can write state, but the storage layout is empty and the logic cannot be traced without source.
- [low] Possible stub callbacks: The dispatcher exposes a NotImplemented() error and a Panic(uint256) selector, which are typical of unimplemented callback stubs; the hook may only partially implement its declared permissions.
Contract details
- Verified source
- No
- Bytecode size
- 2,288 bytes
- Upgradeable proxy
- No
Pools using Likely utility hook
- HAZEL2 / cbBTC (3.30% fee) — 24h volume $0, TVL $351, 0 swaps today
- OAKA / TEST6 (3.30% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / TEST7 (1.30% fee) — 24h volume $0, TVL <$0.01, 0 swaps today