Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x2b98cb26d734c859c9cf97df68de6285d17e5afc on Robinhood Chain · Dynamic fee
- Volume (24h)
- $1.11K
- Value locked (TVL)
- $109
- All-time volume
- $1.11K
- Pools using this hook
- 1
- Swaps (24h)
- 60 (50 traders)
- Total swaps
- 60
What it does
This hook runs a single managed pool with a built-in oracle, charging swappers a dynamic volatility-sensitive fee above a minimum floor that is split among author, manager and treasury, while gating liquidity changes through its own manager.
How it works step by step
- Runs a single bound pool with a staged opening: the pool must be registered and its opening completed before normal trading and liquidity actions proceed.
- Charges a dynamic hook fee on swaps, with a minimum fee floor and a sensitivity setting that appears to scale the fee with how fast the price moves per tick over time.
- Keeps a built-in price oracle (time-weighted observations) that others can read.
- Collects swap fees into the hook's accounting and splits them between an author, a strategy manager and a treasury, paid out through a fee-collection function.
- Checks liquidity additions and removals against a configured liquidity manager and locker, and appears to require fees to be settled first.
- Swap behaviour
- Before and after each swap the hook updates its oracle, computes a dynamic fee, and can take that fee from the swap amounts through return deltas. Swaps appear blocked until the pool opening is complete; exact fee levels cannot be confirmed from bytecode.
- Liquidity behaviour
- Adding and removing liquidity both pass through hook checks that seem to restrict who can manage positions (a liquidity manager and locker) and may revert if fees are unsettled or opening is incomplete. Because the remove-liquidity check is enabled and can revert, LP withdrawals are not guaranteed to be unrestricted.
- Fee behaviour
- A dynamic hook fee with a minimum floor (minimumHookFeePips) and a volatility sensitivity parameter is taken on swaps; exact percentages and the maximum cap cannot be read from bytecode. Fees are split among an author share, manager claims and treasury sweeps.
- Owner & admin controls
- No classic owner setters were decoded, but configuration roles exist (registrar, strategy owner, liquidity manager, liquidity locker) that register the pool and complete its opening. Fee parameters appear fixed at configuration, though their caps are unverified.
Enabled Uniswap v4 callbacks
afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, afterDonate, beforeSwapReturnDelta, afterSwapReturnDelta
afterInitialize: sets up the oracle and pool state; beforeAddLiquidity: gates who can add liquidity; beforeRemoveLiquidity: gates or checks withdrawals; beforeSwap: computes fee and enforces opening state; afterSwap: records oracle data and fees; beforeDonate/afterDonate: tracks or restricts donations; beforeSwapReturnDelta/afterSwapReturnDelta: take the hook fee from swap amounts.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Registrar, strategy owner and liquidity manager roles control pool registration, opening and position management. Their exact powers over fees cannot be confirmed without source.
Risk to user funds: Traders pay a dynamic hook fee taken from swaps with an unverified cap; collected fees are held as claims and distributed to author, manager and treasury. LP principal sits in the PoolManager but withdrawals pass through a hook check that can revert.
Security findings
- [medium] Swap fees via return deltas: The hook can take a dynamic fee from swap amounts; the maximum fee cannot be verified from unverified bytecode.
- [medium] Withdrawal checks enabled: beforeRemoveLiquidity can revert, and withdrawals appear tied to a liquidity manager/locker and fee-settlement state, so LPs may not withdraw freely outside that system.
- [info] Built-in oracle: Maintains time-weighted price observations that external contracts can query.
Contract details
- Verified source
- No
- Bytecode size
- 23,538 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, fee-sharing, moves-currency, oracle, return-delta, self-unlock
Pools using Dynamic fee hook
- WETH / USDG (0.00% fee) — 24h volume $1.11K, TVL $109, 60 swaps today