Likely fee sharing hook on BNB Chain

Uniswap v4 Hook Contract 0x9300f56d33ab4fb3930dc99ac7f972e740c3c5c7 on BNB Chain · Fee sharing

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$10.21K
Pools using this hook
3
Swaps (24h)
0 (0 traders)
Total swaps
185

What it does

A fee-sharing hook that charges tiered swap fees and splits them between a creator and the owner, with owner controls for pausing, whitelisting and withdrawing funds.

How it works step by step

  • Charges swap fees chosen from tiered and per-address fee config
  • Splits collected fees between creatorRecipient (creatorBps) and owner (ownerBps)
  • Can pause swaps and restrict them to whitelisted or trusted routers
  • Counts swaps per pool and tracks a gas threshold
  • Takes or returns currency through return-delta hooks on swaps and liquidity changes
  • Owner can withdraw tokens held by the hook
Swap behaviour
beforeSwap and afterSwap run on every swap; the hook checks pause and whitelist state and router trust, counts swaps, and applies a tiered fee with creator and owner splits via return delta.
Liquidity behaviour
afterAddLiquidity and afterRemoveLiquidity are enabled with return-delta flags, so the hook can adjust balance deltas after liquidity changes. Exact accounting cannot be determined from bytecode alone.
Fee behaviour
Fees are set from tiered config (tierOne, tierTwo, tierThree, quote and default fees) and per-address fee overrides, then split between creator (creatorBps, default creator BPS) and owner (ownerBps) recipients. Fee tier selection likely depends on router trust and whitelist status and gas usage, but this cannot be confirmed without source.
Owner & admin controls
Owner (slot 5) can pause and unpause swaps via setPaused, toggle whitelistOnly, set trusted routers and origins, set the exempt address, change owner, creator and fee-recipient addresses, set creator and owner BPS splits, set the gas threshold, and withdraw tokens via withdraw. Owner can also update fee tiers and per-address fees through the decoded config functions.

Enabled Uniswap v4 callbacks

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

afterAddLiquidity: post-add accounting, possibly taking a share via return delta. afterRemoveLiquidity: post-remove accounting, possibly taking a share via return delta. beforeSwap: pre-swap checks such as pause, whitelist and router trust. afterSwap: post-swap fee accounting and swap counting, with a return delta that can take a fee. afterSwapReturnDelta, afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta: allow the hook to take or return currency from the pool's deltas.

Security & trust assessment

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

Who controls it: The owner key controls pause, whitelist, router trust, fee recipients, fee splits and gas threshold, and can withdraw tokens. A compromised owner could redirect fees, block swaps or drain hook-held balances.

Risk to user funds: The hook can take currency through return deltas on swaps and liquidity operations and holds accumulated balances that the owner can withdraw. It can also block swaps by pausing or restricting them. Without source, the extent of user exposure cannot be fully confirmed.

Security findings

  • [high] Owner withdrawal of hook-held tokens: Owner can call withdraw(address,address,uint256) to move tokens held by the hook, so fees accumulated in the hook are controlled by the owner key.
  • [medium] Owner can pause or restrict swaps: setPaused and setWhitelistOnly let the owner halt swaps or restrict them to whitelisted addresses.
  • [medium] Owner can redirect and re-split fees: Owner can change feeRecipient, creatorRecipient and the BPS splits, redirecting fee revenue.
  • [info] Return-delta hooks take value from pool flows: Several afterSwap and liquidity hooks return deltas, meaning the hook takes currency from pool accounting on every affected operation.
  • [info] Unverified source: Source is not verified, so exact fee logic, withdrawal limits and upgrade paths are inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
10,721 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, pausable, return-delta

Pools using Likely fee sharing hook