Fee sharing hook on BNB Chain

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

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$4.89M
Pools using this hook
28
Swaps (24h)
0 (0 traders)
Total swaps
56,348

What it does

A fee-sharing hook that takes a tiered fee from swaps after execution and routes it to a configured recipient address.

How it works step by step

  • Applies a tiered fee (tierOne, tierTwo, tierThree) to swaps through afterSwap return delta
  • Tracks a swap count per pool id in a mapping
  • Forwards collected tokens to a configurable recipient address
  • Holds a gas threshold parameter that influences fee tier selection
  • Owner can reconfigure fee parameters and withdraw balances
Swap behaviour
After each swap, afterSwap records a per-pool swap count and, using the configured tier fees, takes a share of the swap output that is sent to the recipient; beforeSwap is also present in the dispatch table.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are exposed as selectors but appear to be default or pass-through handlers; no liquidity-modifying logic was identified.
Fee behaviour
Fees are tiered: tierOne, tierTwo and tierThree fee values plus a gas threshold are stored in contract state and read in afterSwap; the owner-set configuration (via 0x24d64c99) controls these tiers, and a recipient address receives the collected amount. Exact tier selection logic is inferred, not confirmed from source.
Owner & admin controls
Owner (slot 0) can set fee tiers and thresholds via the nonpayable setter at selector 0x24d64c99, change the fee recipient via setRecipient(address), withdraw tokens via withdraw(address,address,uint256), and transfer ownership via transferOwnership(address). No pause or upgrade mechanism was identified.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap is used to inspect swaps and account a swap counter per pool key; afterSwapReturnDelta lets the hook take a share of the swap output and forward it, which is how fees are diverted to the recipient.

Security & trust assessment

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

Who controls it: The owner can reconfigure fee tiers, change the recipient address to redirect collected fees, withdraw tokens held by the hook, and transfer ownership to any address.

Risk to user funds: The hook can hold and transfer tokens (moves-currency tag, withdraw and take selectors), and it takes a share of swap output through afterSwapReturnDelta. Users are exposed to fee changes and to the owner withdrawing accumulated balances.

Security findings

  • [medium] Hook takes swap output via return delta: afterSwapReturnDelta allows the hook to take a portion of every swap's output, so the hook directly affects trader proceeds.
  • [medium] Owner can withdraw hook-held tokens: The owner can call withdraw(address,address,uint256) to move tokens the hook holds, including accumulated fees.
  • [medium] Owner can redirect and raise fees: The owner can change the recipient via setRecipient and the fee configuration via the nonpayable setter, which can redirect or inflate the fee taken from swappers.
  • [info] Single owner key controls configuration: Ownable pattern with transferOwnership; no timelock or multisig is evident in the bytecode.

Contract details

Verified source
No
Bytecode size
5,240 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta

Pools using Fee sharing hook