Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x6d789105d1e77c849fdd2ef55a9529a4ee7ad503 on Robinhood Chain · Dynamic fee
- Volume (24h)
- $181
- Value locked (TVL)
- $562
- All-time volume
- $2.99K
- Pools using this hook
- 1
- Swaps (24h)
- 4 (1 traders)
- Total swaps
- 44
What it does
A dynamic-fee hook that lets an owner-controlled fee setting adjust the pool LP fee, track accrued fees, and take a share of liquidity-operation deltas.
How it works step by step
- Sets the pool LP fee via owner-controlled setLPFee and fee controller, bounded by MAX_LP_FEE
- Tracks accrued fees per currency (accruedFees0 and accruedFees1) and allows claimFees
- Runs after-liquidity callbacks that can return balance deltas to take a revenue cut
- Keeps ERC6909 claim balances through mint and burn
- Uses unlock and unlockCallback to interact with the pool manager
- Supports registration of strategy managers that can be used for fee routing
- Swap behaviour
- No swap callbacks.
- Liquidity behaviour
- After liquidity is added or removed, the hook runs afterAddLiquidity and afterRemoveLiquidity and can return balance deltas, so it may take or give currency on those operations. The hook also keeps ERC6909 claim balances (mint and burn selectors are present) and interacts with the pool manager through unlock and unlockCallback.
- Fee behaviour
- The hook is registered for dynamic fees and can push a new LP fee into the pool through updateDynamicLPFee, with a fee controller and a configurable MAX_LP_FEE and revenue fee cap (MAX_REVENUE_FEE_BPS). Accrued fees are tracked per currency (accruedFees0, accruedFees1) and claimable by an authorised party via claimFees; a FEE_INCREASE_DELAY constant suggests fee increases are time-delayed.
- Owner & admin controls
- Owner (Ownable2Step: transferOwnership and acceptOwnership, renounceOwnership) can set the LP fee via setLPFee and change the fee controller via setFeeController, and can register strategies via registerStrategy. Owner-gated functions also appear to govern fee claims (claimFees). No pause or upgrade mechanism was identified in the decoded selectors.
Enabled Uniswap v4 callbacks
afterInitialize, afterAddLiquidity, afterRemoveLiquidity, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta
afterInitialize sets up pool state when the pool is created; afterAddLiquidity and afterRemoveLiquidity run accounting after liquidity changes; afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta let the hook take a cut of the currency deltas on liquidity operations. No beforeSwap or afterSwap callback is in the permission set.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The owner can set the LP fee (bounded by MAX_LP_FEE), replace the fee controller, and register strategy managers. A malicious or compromised owner could set fees to the maximum on the pool, redirect or manipulate fee accrual, or route revenue through a strategy, so users face price and fee risk from that key.
Risk to user funds: The hook can hold claimable ERC6909 balances and accrued fees in each currency and can take or give deltas during liquidity operations, so it can affect the amounts of pool funds that LPs deposit or withdraw. It does not appear to block swaps, but a fee change by the owner can raise the cost of every swap.
Security findings
- [medium] Return deltas on liquidity operations: Return-delta permissions let the hook take or give currency during liquidity add and remove operations, so the hook can alter the amounts users receive or pay.
- [medium] Owner-controlled dynamic fee: setLPFee and setFeeController are owner-controlled, so the owner can change the fee charged to traders on the pool up to the configured maximum.
- [medium] Self-unlock pattern: The hook uses an unlock and unlockCallback pattern, which is a frequent source of reentrancy and accounting errors if callbacks are not strictly validated.
- [info] Ownable2Step administration: Ownership uses a two-step transfer (transferOwnership then acceptOwnership), and an owner can renounce ownership, which would lock admin functions permanently.
- [info] Unverified source: No source is verified and the analysis rests on selectors and storage writes alone, so the exact accounting and fee logic could not be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 8,990 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc6909-claims, moves-currency, ownable, return-delta, self-unlock
Pools using Dynamic fee hook
- USDG / oSTANDARD (Dynamic fee) — 24h volume $181, TVL $562, 4 swaps today