Liquidity management hook on Robinhood Chain
Uniswap v4 Hook Contract 0x2b80f032b49e11d781bbcafcf2d463be80d7aaec on Robinhood Chain · Liquidity management
- Volume (24h)
- $0.06
- Value locked (TVL)
- $0.13
- All-time volume
- $0.06
- Pools using this hook
- 1
- Swaps (24h)
- 3 (1 traders)
- Total swaps
- 3
What it does
This hook manages creator-owned markets that place and move their own liquidity, apply a creator-set fee and sell surcharge on swaps, and take part of swap amounts through return deltas, so traders may pay a surcharge on sells that a creator can switch off.
How it works step by step
- Implements a market and vault system keyed by bytes32 market ids, with creator-owned markets that have a governance-style creator role and proposal/accept flow
- Registers pools and migrations, and manages placed liquidity ranges (curve and static placements, floor and idle deposits) through the pool manager unlock pattern
- Dispatches beforeSwap and afterSwap logic that can adjust returned deltas, so the hook takes part in swap accounting
- Applies dynamic fees via a creator rate and a sell surcharge that can be disabled per market
- Routes collected platform fees and creator payouts through take and transfer calls, and exposes yield stepping and treasury functions
- Swap behaviour
- The hook runs beforeSwap and afterSwap and returns deltas on both, so it can alter the amounts a swap settles; sell trades appear to be subject to a surcharge that a creator can disable, and the exact pricing formula cannot be confirmed without source.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are view functions that gate liquidity, with afterAddLiquidity and afterRemoveLiquidity also present; liquidity is placed and moved by the hook itself through placeCurve, placeMigration, depositFloor, depositIdle and moveBuckets, so the hook manages its own positions.
- Fee behaviour
- Fees are set dynamically using creatorRate and a sell surcharge, and collected fees are routed to a fee destination set by the creator via setFeeDestination and paid out through collectPlatform and payCreator.
- Owner & admin controls
- Creator roles are managed per market through proposeCreator, acceptCreator, cancelCreatorProposal and renounceCreator, and creators can set the fee destination and surcharge; a governance() getter and routeFactory() suggest an external governance or factory role, but its powers cannot be confirmed from bytecode alone.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize registers markets on pool creation; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; beforeSwap and afterSwap set dynamic fees and adjust swap deltas; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take part of swap amounts; beforeDonate and the afterAddLiquidity/afterRemoveLiquidity callbacks are present but their purpose is inferred only from selectors.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A market creator can change fee destination, disable the sell surcharge, transfer or renounce the creator role, and trigger collection and payout; a governance or factory key may have further powers that cannot be confirmed.
Risk to user funds: The hook can take part of swap amounts through return deltas and hold and move pooled liquidity through its own placement functions, so funds in the pool depend on the hook's accounting and creator permissions.
Security findings
- [high] Hook takes swap deltas: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can absorb or redirect part of every swap's amounts.
- [medium] Hook holds and moves pool liquidity: placeCurve, placeMigration, depositFloor, depositIdle and moveBuckets let the hook place and relocate its own liquidity, so user funds depend on its internal accounting.
- [medium] Creator-controlled fees and surcharge: Creators can change the fee destination and disable the sell surcharge, which affects how much traders pay and who receives it.
- [medium] Governance and routing roles unclear: governance() and routeFactory() indicate an external authority whose permissions cannot be verified from decoded bytecode.
- [info] Reentrancy guard present: ReentrancyGuardReentrantCall and SwapReentered errors indicate reentrancy protection on swap paths.
Contract details
- Verified source
- No
- Bytecode size
- 48,369 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, liquidity-management, moves-currency, return-delta, self-unlock
Pools using Liquidity management hook
- PONSPOT / USDG (0.00% fee) — 24h volume $0.06, TVL $0.13, 3 swaps today