Dynamic fee hook on BNB Chain

Uniswap v4 Hook Contract 0x86184ee41cbfb95bdba3dc1619ab2b9b56b645c7 on BNB Chain · Dynamic fee

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

What it does

This owner-controlled hook charges dynamic tiered swap fees, with cheaper or different rates for owner-set overrides, can take fees from swaps and LP add/remove amounts for the owner and creator, and can pause or whitelist trading.

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

  • Sets a dynamic swap fee per trade using tiered fees, a default fee, and per-address fee overrides set by the owner.
  • Can take a cut from swap output and from liquidity add/remove amounts, splitting it between an owner fee recipient and a creator.
  • Owner can pause swaps and switch the pool to whitelist-only mode using trusted routers and trusted origins.
  • Owner can withdraw tokens held by the hook to any address.
Swap behaviour
Before each swap the hook checks the pause flag and whitelist rules, then picks a fee from tiers, defaults, or per-address overrides. After the swap it can take part of the output as a hook fee via return deltas. Exact amounts cannot be confirmed from bytecode.
Liquidity behaviour
The hook runs after adds and removes and can change the amounts LPs receive or pay through return deltas, likely taking a fee share. The exact deduction and whether withdrawals can be blocked cannot be confirmed without source.
Fee behaviour
The LP fee is dynamic, chosen from three tier fees, a default fee, or owner-set per-address overrides, with a MAX_LP_FEE constant whose value is unknown. A hook fee share is split by owner and creator basis points, with invalid values rejected, paid to the fee recipient and creator.
Owner & admin controls
The owner can pause swaps, enable whitelist-only trading, manage trusted routers and origins, set fee tiers and per-address overrides, change owner/creator fee splits and the fee recipient, and withdraw tokens held by the hook. Exact caps are not verifiable from bytecode.

Enabled Uniswap v4 callbacks

afterAddLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, afterSwapReturnDelta, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta

beforeSwap: pause, whitelist checks and fee selection; afterSwap + afterSwapReturnDelta: takes a hook fee from swap amounts; afterAddLiquidity/afterRemoveLiquidity + return deltas: can adjust LP deposit and withdrawal amounts.

Security & trust assessment

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

Who controls it: A single owner controls pausing, whitelisting, fee levels, fee splits, the fee recipient and withdrawals from the hook. The bytecode does not show hard limits on these powers.

Risk to user funds: The hook can take fees from swap outputs and LP add/remove amounts, at rates that cannot be confirmed from bytecode. It is unclear whether withdrawals could be heavily taxed, so LPs face some uncertainty.

Security findings

  • [medium] Owner can pause and gate swaps: The owner has a pause switch and a whitelist-only mode that can stop or restrict trading.
  • [medium] Return deltas on swaps and liquidity: The hook can deduct from swap output and from LP add/remove amounts. The caps are not verifiable without source.
  • [low] Owner withdraw function: The owner can withdraw tokens held by the hook, likely accrued fees. Pool reserves stay in the PoolManager.

Contract details

Verified source
No
Bytecode size
17,715 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc20, fee-sharing, moves-currency, ownable, pausable, return-delta

Pools using Dynamic fee hook