Liquidity management hook on Robinhood Chain

Uniswap v4 Hook Contract 0x168f0d00608627ef68b2abcc66a5a4a8635a2fc0 on Robinhood Chain · Liquidity management

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

This hook gates and tracks liquidity additions and removals and runs checks around swaps, with its external contracts fixed at deployment, though the decoded bytecode does not show whether it changes swap pricing or fees.

This read was written for the hook 0x91fd…6fc0 on Robinhood Chain and reused here: the two run the same code.

How it works step by step

  • Exposes a wire(address,address,address,address) function that sets four address slots (likely manager, swapper, vault and house references) once, and reports wired() status
  • Gates liquidity additions and removals through beforeAddLiquidity and beforeRemoveLiquidity, which are view functions in the decoded selectors, suggesting checks without state changes
  • Runs afterAddLiquidity and afterRemoveLiquidity as nonpayable callbacks, so these hooks can write state or perform external calls after liquidity moves
  • Reads a deployer address and a poolLock flag in its storage, indicating an access restriction tied to the deployer and pool initialization
  • Implements beforeSwap as a view and afterSwap as nonpayable, with swap-related reads of the swapper and vault addresses in storage
  • Returns no hook permissions beyond the seven enabled callbacks; beforeDonate and afterDonate are present in the dispatcher but not enabled by the address flags
Swap behaviour
beforeSwap is a view check and afterSwap is a nonpayable callback that can update state; the decoded bytecode does not reveal whether it returns a fee or delta, so the exact effect on trade pricing cannot be determined.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are view gates, while afterAddLiquidity and afterRemoveLiquidity are nonpayable and may record or act on liquidity changes using the wired manager, vault and house addresses.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
A one-time wire function sets the referenced addresses and reverts with AlreadyWired if called again; a OnlyDeployer error indicates that only the deployer can perform the wiring. No pause or upgrade mechanism was identified, though the poolLock flag may gate some operations.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap

beforeInitialize validates pool setup, beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes, afterAddLiquidity and afterRemoveLiquidity run post-change logic, and beforeSwap and afterSwap run checks and bookkeeping around swaps.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, low confidence).

Who controls it: The deployer controls the initial wiring of the referenced contracts; after that, the decoded functions show no obvious owner-level parameter changes, but this could not be fully verified.

Risk to user funds: The hook has no return-delta or fee-taking selectors visible in the decoded bytecode, so it does not clearly hold or move tokens itself; exposure depends on what the wired vault and house contracts do during the after-callbacks.

Security findings

  • [info] One-time wiring by deployer: The wire function is restricted to the deployer (OnlyDeployer error) and can only succeed once (AlreadyWired), so the referenced manager, swapper, vault and house addresses are fixed after deployment.
  • [medium] Nonpayable after-callbacks: afterAddLiquidity, afterRemoveLiquidity and afterSwap are nonpayable and call out to external addresses, so their behaviour depends on the wired contracts that cannot be inspected from bytecode alone.
  • [low] Pool lock flag: A poolLock getter is present in storage, which may block certain operations, but the setter and conditions could not be decoded.
  • [medium] Unverified logic: Without verified source, the exact effects of the swap and liquidity callbacks on user funds cannot be confirmed.

Contract details

Verified source
No
Bytecode size
3,825 bytes
Upgradeable proxy
No

Pools using Liquidity management hook