Liquidity management hook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
$2.45
All-time volume
$0
Pools using this hook
4
Swaps (24h)
0 (0 traders)
Total swaps
1

What it does

A managed liquidity hook that controls its own pool position and can adjust swap deltas, letting an owner or keeper rebalance, pause and withdraw funds on behalf of depositors.

How it works step by step

  • Uses beforeInitialize and afterInitialize to register and configure the pool it manages
  • Gates liquidity additions through beforeAddLiquidity and honors a pause flag
  • Reads a live price and reference block in beforeSwap and can return a delta that adjusts swap amounts
  • Holds and moves currency via unlock, modifyLiquidity, settle, take and sync to manage its position
  • Exposes owner and keeper roles that can rebalance, reconfigure parameters and withdraw funds
Swap behaviour
beforeSwap is enabled and checks pause state and reads live price and reference data; with beforeSwapReturnDelta the hook can take or supply currency during the swap, altering the amounts exchanged.
Liquidity behaviour
beforeAddLiquidity is enabled and gated by the paused flag; the hook manages its own position through the pool manager using unlock, modifyLiquidity, settle, take and sync, consistent with a managed or rebalancing liquidity vault. beforeRemoveLiquidity is present as a view selector but not enabled in the permissions.
Fee behaviour
Fee appears to be a stored uint24 value (exposed via fee()) that the owner or keeper can update through 0x6b62cbd2; the hook does not visibly take a separate fee and is not clearly a dynamic-fee hook from the decoded selectors.
Owner & admin controls
Owner (set in storage slot 0) can transfer ownership via setOwner, set a keeper via setKeeper, pause and unpause swaps and liquidity via setPaused, withdraw tokens via withdraw, and configure pool parameters via 0x6b62cbd2 (fee, width-like tick parameter, maxAge-like value) and 0x07e5a331/0x74767a03 (pool key and related settings). The keeper address can call the unlock-based rebalancing path.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: validates and records the pool at initialization (afterInitialize-style setup). beforeAddLiquidity: gates deposits, likely checking pause state and tracking liquidity. beforeSwap: enforces pause and reads the live price, reference block and budget state. beforeSwapReturnDelta: lets the hook return a delta on swaps, so it can take or supply currency during swaps and alter the amounts users receive.

Security & trust assessment

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

Who controls it: The owner can pause all activity, withdraw tokens, change fee and pool configuration, and reassign ownership and the keeper. A compromised owner key could drain managed balances or redirect the position.

Risk to user funds: The hook holds managed liquidity and can take and settle currency during swaps via return deltas, and the owner can withdraw tokens. Users depositing into the hook's managed position or trading against it are exposed to owner and keeper actions, parameter changes, and pause-based blocking.

Security findings

  • [high] Hook takes currency and alters swap deltas: beforeSwapReturnDelta is enabled and the bytecode contains take/settle/sync calls, so the hook moves currency during swaps and can change swap amounts.
  • [high] Owner can withdraw hook-held funds: withdraw(address,address,uint256) and setOwner are callable by the owner, allowing removal of hook-held funds and full control transfer.
  • [medium] Owner pause can block swaps and deposits: setPaused lets the owner halt swaps and liquidity additions, which can block users from trading or exiting.
  • [medium] Keeper can trigger liquidity moves: The keeper address is set by owner and can trigger the unlock-based rebalancing flow that moves pool liquidity.
  • [medium] Unbounded parameter updates: Fee and tick-width style parameters are set through 0x6b62cbd2 with no visible bounds in the decoded selectors, so the owner could set extreme values.

Contract details

Verified source
No
Bytecode size
16,807 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, pausable, return-delta, self-unlock

Pools using Liquidity management hook