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