Dynamic fee hook on Robinhood Chain

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

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

What it does

This hook charges traders a governor-configurable, capped swap fee and tax that goes to a fee recipient, while LPs can add and withdraw liquidity freely.

This read was written for the hook 0x4889…d0cc 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

  • Charges a per-pool swap tax and base fee, collected through swap return deltas and sent to a fee recipient.
  • Tracks the last pool tick after each swap, likely to adjust fees based on price movement.
  • Lets a governor set per-pool settings (fees, tax, timing values), with a settings delay before changes apply.
  • Has no liquidity callbacks, so LPs add and withdraw freely.
Swap behaviour
Before and after each swap the hook can take a fee or tax out of the swap amounts and credit it for the fee recipient. The exact rates depend on per-pool settings and price movement, and they cannot be fully confirmed from bytecode.
Liquidity behaviour
No liquidity callbacks; LPs can add and withdraw freely.
Fee behaviour
The hook applies a configurable base fee and a swap tax, each limited by hard-coded maximums (MAX_BASE_FEE_PIPS and MAX_TAX_PIPS) whose exact values are not visible from bytecode. Collected amounts are taken from the pool and sent to a feeRecipient address.
Owner & admin controls
A governor can change per-pool fee, tax and timing settings, subject to a settings delay and the maximum fee and tax caps. The cap values themselves are not readable from the decoded bytecode.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

afterInitialize: records the starting tick and pool setup; beforeSwap: works out the fee or tax and can adjust the swap input; afterSwap: updates the last tick and can take a cut of the output; beforeSwapReturnDelta/afterSwapReturnDelta: let the hook deduct its fee from swap amounts.

Security & trust assessment

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

Who controls it: A governor address controls per-pool fee and tax parameters, within hard-coded maximums and a time delay. The size of those maximums cannot be verified from bytecode.

Risk to user funds: The hook can deduct fees or tax from swap amounts, up to the unverified MAX_TAX_PIPS and MAX_BASE_FEE_PIPS caps, and send them to the fee recipient. LP principal cannot be locked or drained by this hook.

Security findings

  • [medium] Governor-set swap tax: A governor can set per-pool tax and base fees, which are taken from swaps via return deltas. The changes are capped by MAX constants of unknown size and delayed by SETTINGS_DELAY.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook cannot block withdrawals or charge LPs on exit.

Contract details

Verified source
No
Bytecode size
15,713 bytes
Upgradeable proxy
No
Detected patterns
erc20, fee-sharing, moves-currency, return-delta

Pools using Dynamic fee hook