Liquidity management hook on Robinhood Chain

Uniswap v4 Hook Contract 0x3bc2783a6d47d8a9d51d334e68b9f7c362bc6a80 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

A self-managing liquidity hook that places and repositions its own ETH/token band liquidity, charges a fixed pool fee to all traders equally with no extra hook fee, and gates who may add or remove liquidity.

How it works step by step

  • Sets up and initializes its own pool between ETH and a paired token, apparently a single hook-managed pool.
  • Holds hook-owned liquidity in a price band (buy and sell liquidity positions) that it repositions through a public poke() function using a time window and oracle-style reference price.
  • Accepts ETH deposits and can mint the paired token, tracking ETH claims and a coverage ratio against an ETH cap and depth target.
  • Checks pool initialization, liquidity additions, liquidity removals and swaps through before-hooks, likely restricting third-party liquidity to the hook itself.
Swap behaviour
Each swap runs a beforeSwap check that cannot take tokens from the swap (no return deltas), but may revert swaps under conditions such as an uninitialized pool or band rules; exact conditions are not verifiable from bytecode.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity run on every LP action and likely only allow the hook's own positions, so outside LPs may be blocked from adding or removing; the hook manages its own liquidity via unlock callbacks.
Fee behaviour
Uses a fixed pool fee constant (POOL_FEE) set at deployment; the exact value cannot be read from the decoded bytecode, and no dynamic fee or extra hook fee via deltas is possible.
Owner & admin controls
No owner or admin setter functions were found; parameters appear fixed at deployment and actions like poke(), initializePool() and deposit() look permissionless.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap

beforeInitialize: restricts which pool can be created; beforeAddLiquidity: gates who can add liquidity; beforeRemoveLiquidity: gates who can withdraw liquidity; beforeSwap: validates swaps before execution.

Security & trust assessment

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

Who controls it: No privileged admin key was identified; behaviour appears fixed at deployment with permissionless maintenance calls.

Risk to user funds: The hook cannot deduct tokens from swaps or liquidity via deltas; it controls its own hook-owned liquidity and deposited ETH, and its remove-liquidity check could block outside LP withdrawals, which is unverified.

Security findings

  • [medium] Remove-liquidity gate enabled: beforeRemoveLiquidity runs on withdrawals and could revert for some callers; it likely only restricts outside LPs since the hook owns its own liquidity, but this cannot be confirmed without source.
  • [low] Unverified bytecode with currency movement: The hook calls take and mint and manages pool liquidity through self-unlock; exact logic and bounds are unknown.
  • [info] No admin functions detected: No owner-controlled setters appear in the dispatched functions, and swap return deltas are disabled so swaps cannot be skimmed.

Contract details

Verified source
No
Bytecode size
13,599 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, self-unlock

Pools using Liquidity management hook