Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x95811d755fa81acfb4fa4066ef7d2e57957b9afc on Robinhood Chain · Dynamic fee
- Volume (24h)
- $2.38K
- Value locked (TVL)
- $384
- All-time volume
- $2.38K
- Pools using this hook
- 1
- Swaps (24h)
- 99 (51 traders)
- Total swaps
- 99
What it does
A single-pool hook with a controlled opening, built-in oracle and a dynamic swap fee that charges more on larger or faster price moves, collected for author, managers and treasury, with checks on LP deposits and withdrawals.
This read was written for the hook 0x2b98…5afc 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
- Runs a single bound pool with a controlled opening phase that must be completed before normal trading and liquidity actions.
- Charges a hook fee on swaps using a fee model, with a minimum hook fee and an author fee share, and records fees for collection.
- Maintains a built-in price oracle (observations, cardinality growth) for the pool.
- Checks liquidity additions and removals against configuration, likely tied to a liquidity manager and locker.
- Lets fees be collected and split between the author, managers and treasury.
- Swap behaviour
- Before and after each swap the hook computes a fee (feeRate, minimum hook fee, sensitivity per tick and time) and can take it from the swap amounts via return deltas. Swaps may revert if the opening phase is not complete or fee settlement is required.
- Liquidity behaviour
- Adding and removing liquidity runs hook checks tied to the opening state, liquidity manager, and oracle state. Withdrawals can revert under some conditions, and the exact rules cannot be confirmed from bytecode.
- Fee behaviour
- A dynamic hook fee with a stored minimum, scaled by price movement over time, is taken from swaps; an author fee share and treasury/manager claims are tracked. Exact percentages and caps are not visible in bytecode.
- Owner & admin controls
- No obvious owner setter functions; configuration (strategy owner, registrar, liquidity manager, fee model) appears fixed at deployment, while registration and opening completion are gated to specific roles. Exact limits are unknown.
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 opening; beforeRemoveLiquidity checks withdrawals; beforeSwap/afterSwap compute fees and update the oracle; return deltas take swap fees; beforeDonate/afterDonate restrict or track donations.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Roles like registrar, strategy owner and liquidity manager control pool registration, opening and fee collection; no upgrade path was found.
Risk to user funds: Traders pay a dynamic hook fee of unknown cap on swaps; LP withdrawals pass through hook checks that could revert, and positions may be locked by design.
Security findings
- [medium] Swap fees taken via return deltas: The hook can deduct a dynamic fee from swaps; the maximum fee is not verifiable from bytecode.
- [medium] Withdrawal checks enabled: beforeRemoveLiquidity runs on LP withdrawals and can revert, for example tied to opening or oracle state; positions may be managed by a liquidity locker.
- [info] Not a proxy: Direct contract with apparently immutable configuration.
Contract details
- Verified source
- No
- Bytecode size
- 23,538 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, return-delta, self-unlock
Pools using Dynamic fee hook
- WETH / USDG (0.00% fee) — 24h volume $2.38K, TVL $384, 99 swaps today