Dynamic fee hook on Robinhood Chain

Uniswap v4 Hook Contract 0x0d7d2d7dc63482af92379c4c73582e66ebe49afc on Robinhood Chain · Dynamic fee

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
3 (3 traders)
Total swaps
3

What it does

A single-pool launch-style hook that charges traders a dynamic swap fee (with a minimum, rising with price movement), splits that fee among an author, a manager and a treasury, runs an on-chain price oracle, and gates liquidity changes through a managed opening and locker process.

This read was written for the hook 0x4468…1afc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Bound to a single registered pool that must go through a controlled opening step before normal trading and liquidity activity.
  • Charges a hook fee on swaps through return deltas, with a minimum hook fee and a fee that appears to scale with price movement over time (fee sensitivity per tick per second).
  • Keeps a built-in price oracle (observations, truncated observe) that other contracts can read.
  • Accrues collected fees for an author, manager and treasury, with checkpointing and collection through a liquidity manager or locker contract.
  • Checks add and remove liquidity against configuration, opening status and oracle state.
Swap behaviour
Before and after each swap the hook updates its oracle and can take a dynamic hook fee from swap amounts using return deltas. The exact rate cannot be confirmed from bytecode. Swaps may revert if the pool opening is not complete or fees have not been settled.
Liquidity behaviour
The hook runs checks when liquidity is added or removed, tied to opening completion, the expected position count and a liquidity locker. Withdrawals can therefore revert under some conditions, and liquidity appears to be managed or locked by a dedicated manager rather than freely held by LPs.
Fee behaviour
A hook fee with a stated minimum is charged on swaps and appears to rise with recent price movement. Proceeds are split among an author share (author fee in basis points), manager claims and treasury sweeps. Exact percentages and caps are not verifiable from bytecode.
Owner & admin controls
No obvious owner setters were found. Roles such as registrar, strategy owner, liquidity manager and core handle pool registration, opening completion and fee collection. Configuration appears fixed at deployment through a config hash.

Enabled Uniswap v4 callbacks

afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, afterDonate, beforeSwapReturnDelta, afterSwapReturnDelta

afterInitialize sets up the oracle and pool state; beforeAddLiquidity gates deposits during and after opening; beforeRemoveLiquidity checks withdrawals; beforeSwap computes the fee and checks state; afterSwap records oracle and fee data; beforeDonate and afterDonate gate donations; the two swap return-delta permissions let the hook take fees from swap amounts.

Security & trust assessment

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

Who controls it: The registrar, core and strategy owner roles control pool registration, opening and fee collection. No pause or fee setter was identified, but this is unverified.

Risk to user funds: Swap amounts are subject to a hook fee of unknown maximum, and accrued fees are held for later claiming. LP withdrawals pass through checks and may be restricted by the locker design.

Security findings

  • [medium] Unverified swap fee via return deltas: The hook can deduct a dynamic fee from swaps, but its maximum cannot be confirmed without source code.
  • [medium] Remove-liquidity callback active: beforeRemoveLiquidity can revert withdrawals based on opening and oracle state. Liquidity appears locked or managed by a locker contract by design.
  • [info] Built-in oracle: The hook keeps price observations with a maximum cardinality for time-weighted price reads.

Contract details

Verified source
No
Bytecode size
23,945 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta, self-unlock

Pools using Dynamic fee hook