Liquidity management hook on Robinhood Chain

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

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

What it does

This hook runs a hook-managed liquidity pool where LPs hold share tokens, and every swap pays an admin-adjustable dynamic fee capped by hard-coded limits, with a capped portion going to a treasury.

How it works step by step

  • Manages pool liquidity itself: LPs deposit through the hook and receive share tokens instead of adding liquidity directly to the pool.
  • Blocks direct add and remove liquidity calls to the pool, so liquidity moves only through the hook's own deposit and withdraw functions.
  • Uses a dynamic LP fee that the admin can set within hard-coded minimum and maximum bounds.
  • Takes a treasury fee share, also within a hard-coded maximum, and sends it to a treasury address.
  • Records price observations during swaps so the pool can serve as a price oracle.
Swap behaviour
Before each swap the hook updates its price observations and applies the pool's dynamic LP fee. After the swap it updates its internal per-pool accounting. It cannot take tokens from swaps through return deltas.
Liquidity behaviour
Direct add and remove liquidity calls to the pool appear to be rejected. LPs deposit and withdraw through the hook, which mints and burns share tokens and moves liquidity using its own unlock flow. Whether withdrawals are always available depends on the hook's own withdraw path and pool state, which cannot be fully verified from bytecode.
Fee behaviour
The pool uses a dynamic LP fee that the admin sets between MIN_LP_FEE and MAX_LP_FEE, starting from a default value. A treasury fee in basis points, capped at MAX_TREASURY_FEE_BPS, goes to the treasury address. The exact percentages are not visible in the decoded data.
Owner & admin controls
The admin can set the LP fee within hard-coded min and max bounds, change the treasury address, set the factory, transfer admin rights in two steps, and call rescue on tokens. The exact fee caps and what rescue is allowed to move cannot be confirmed from bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap

beforeInitialize: sets up pool state and checks the pool configuration; beforeAddLiquidity: blocks direct liquidity adds that bypass the hook; beforeRemoveLiquidity: blocks direct removals that bypass the hook; beforeSwap: applies the fee and records oracle observations; afterSwap: updates the hook's accounting after each trade.

Security & trust assessment

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

Who controls it: A single admin, changeable through a two-step transfer, controls the fee level within caps, the treasury address, the factory, and rescue. The worst case is a raised fee up to the cap, or rescue moving tokens if it is not properly limited.

Risk to user funds: The hook owns the pool liquidity on behalf of LPs, and LPs hold shares that they redeem through the hook. Fees are capped by constants of unknown exact size, and whether LP principal can be withdrawn freely depends on unverified withdraw and rescue logic.

Security findings

  • [medium] Hook-controlled liquidity: The remove-liquidity callback is enabled, and all LP liquidity is owned by the hook and held as shares. LP withdrawals depend on the hook's own withdraw logic, which is unverified.
  • [medium] Admin rescue function: A rescue function reads the treasury address and share data, so it may be limited to stray tokens. Its exact limits cannot be verified from bytecode.
  • [info] Bounded dynamic fee: The LP fee and treasury fee are checked against hard-coded maximum constants, and an invalid value causes the update to revert.

Contract details

Verified source
No
Bytecode size
21,624 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc20, moves-currency, self-unlock

Pools using Liquidity management hook