Liquidity management hook on Robinhood Chain
Uniswap v4 Hook Contract 0x5c9c3b13986d2b9f49849064190c52da5ca050c0 on Robinhood Chain · Liquidity management
- Volume (24h)
- $2.55K
- Value locked (TVL)
- $12.32K
- All-time volume
- $2.57K
- Pools using this hook
- 1
- Swaps (24h)
- 16 (4 traders)
- Total swaps
- 21
What it does
An owner-run, oracle-guided hook that manages its own liquidity band and adjusts the pool's dynamic fee, with swap fees varying by an unverified formula, while regular LPs can always withdraw freely.
How it works step by step
- Lets the owner register pools and configure a price band (tick range) per pool, then fund it with tokens that the hook deposits as concentrated liquidity.
- Uses an external price oracle and reverts with a stale-oracle error if the price feed is outdated.
- Can rebalance or recenter its own hook-owned liquidity position after swaps, adding or removing liquidity through the pool manager.
- Can update the pool's dynamic LP fee, so swap fees may change over time.
- The owner can withdraw the hook's funded liquidity and sweep tokens held by the hook.
- Swap behaviour
- Before a swap the hook runs a read-only check, likely confirming the oracle is fresh and the pool is enabled. Stale data or a disabled pool may cause swaps to revert. After the swap it may adjust the hook's own liquidity band or the dynamic fee. It cannot take tokens from swaps through return deltas.
- Liquidity behaviour
- Regular LPs are not checked on add or remove, and remove-liquidity callbacks are disabled, so LPs can always withdraw. The hook manages only its own owner-funded position, which the owner can fund and withdraw.
- Fee behaviour
- The pool can use a dynamic LP fee that the hook updates. The exact fee range and formula cannot be confirmed from bytecode. Fees go to LPs in the normal way, and the hook takes no extra cut.
- Owner & admin controls
- A two-step Ownable owner can configure pools and bands, enable or disable pools, fund and withdraw hook liquidity, and sweep tokens held by the hook. Fee caps cannot be verified from the bytecode.
Enabled Uniswap v4 callbacks
afterInitialize, beforeSwap, afterSwap
afterInitialize: registers the pool and sets up its config or fee; beforeSwap: read-only check of oracle freshness and enabled state; afterSwap: may rebalance the hook's liquidity band and update the fee.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A single owner, using two-step ownership transfer, controls pool configuration, enable or disable toggles, the hook's funded liquidity and token sweeps. The worst case is disabling swaps or setting unfavorable dynamic fees, with no verifiable cap.
Risk to user funds: The hook cannot deduct tokens from swaps or touch other LPs' principal, and LP withdrawals are unrestricted. Only tokens funded into or held by the hook are under owner control, and the maximum dynamic fee is unknown.
Security findings
- [medium] Unverified code with owner controls: The source is not verified. The owner can set configs, toggle pools and update the dynamic fee, and the fee bounds cannot be confirmed.
- [low] Owner sweep of hook balances: A sweep function lets the owner move tokens held by the hook contract. Pool reserves belonging to other LPs stay in the PoolManager.
- [low] Oracle dependency: Swaps may revert if the oracle is stale, which could temporarily halt trading.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block third-party LP withdrawals.
Contract details
- Verified source
- No
- Bytecode size
- 22,305 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, moves-currency, oracle, ownable, self-unlock
Pools using Liquidity management hook
- ETH / HOLLAR (Dynamic fee) — 24h volume $2.55K, TVL $12.32K, 16 swaps today