Dynamic fee hook on Robinhood Chain

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

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

What it does

This hook charges owner-configured dynamic fees taken from swaps in whitelisted pools and splits them to recipients or donates them to LPs, while LP withdrawals stay unrestricted.

How it works step by step

  • Sets a dynamic swap fee for each registered pool, using default or per-pool fee settings managed by the owner.
  • Takes a fee portion from swaps through the swap return-delta and records it as pending fees for each pool, to be claimed and split among configured recipients.
  • Can donate collected fees back to pool LPs through the PoolManager.
  • Restricts pool creation and adding liquidity to whitelisted addresses, and uses an executor or whitelist list during swaps.
  • Counts swaps per pool and stores pool creator and configuration versions.
Swap behaviour
Before each swap, the hook looks up the pool's fee configuration, may override the pool fee, and can deduct a fee amount from the swap through a return delta. After the swap, it records accrued fees. Some swap paths check executor or whitelist status, and the exact fee values cannot be confirmed from bytecode.
Liquidity behaviour
Adding liquidity is checked before it happens and may be limited to whitelisted addresses. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
Fee behaviour
The hook charges a dynamic fee taken from the swap, configured through owner-set default fees and recipient splits with a weight denominator. Accrued fees are claimed to recipients or donated to LPs. The maximum fee cap could not be verified from bytecode.
Owner & admin controls
The owner, with two-step ownership transfer, can set default and per-pool fee configs, set fee recipients and splits, manage whitelists and executors, and set a registrar. Exact fee caps are not visible in bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta

beforeInitialize: registers the pool and applies the fee config, possibly gated by the whitelist; beforeAddLiquidity: gates who can add liquidity; beforeSwap: sets the fee and can deduct from the swap; afterSwap: records fees and swap counts; beforeSwapReturnDelta: lets the hook take part of the swap amount.

Security & trust assessment

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

Who controls it: A single owner controls fee configs, recipients, whitelists and executors. At worst, the owner could raise swap fees to an unverified level or stop new LPs and pools from joining.

Risk to user funds: The hook can deduct a fee from swap amounts, with an unverified maximum, and it holds pending fees until they are claimed or donated. LP principal cannot be locked or drained because withdrawals bypass the hook.

Security findings

  • [medium] Owner-set fees with unverified cap: The owner can change the fee settings, and the hook can take fees from swaps through return deltas. The maximum allowed fee cannot be confirmed from unverified bytecode.
  • [low] Whitelist gating: Pool initialization and adding liquidity check a whitelist that the owner manages, so the owner can restrict who creates pools or provides liquidity.
  • [info] Withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.

Contract details

Verified source
No
Bytecode size
24,231 bytes
Upgradeable proxy
No
Detected patterns
access-control, donates, dynamic-fee, moves-currency, ownable, return-delta, self-unlock

Pools using Dynamic fee hook