Likely fee sharing hook on BNB Chain

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

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

What it does

A Uniswap v4 hook that charges a tiered, configurable fee on swaps and liquidity events, splits the revenue between a creator, the owner and a secondary recipient, and can be paused by its owner.

How it works step by step

  • Enables before and after swap callbacks and return deltas to take a share of swap output
  • Enables after add and remove liquidity callbacks with return deltas to take a share of liquidity deltas
  • Computes fees from a default fee, a max total fee and a fee denominator, using per-pool tier weights
  • Splits collected fees between creatorBps and ownerBps shares and forwards them to feeRecipient or secondaryRecipient
  • Tracks per-pool state including enabled flag, swap counts and fee configuration version
  • Gives the owner pause, pool enable, exempt address and withdraw controls
Swap behaviour
beforeSwap computes the applicable fee for the pool and tier, afterSwap records swap counts and applies a post-swap return delta that takes a share of the output and routes it to recipients.
Liquidity behaviour
afterAddLiquidity, afterRemoveLiquidity and their return-delta variants are enabled, so the hook can take or settle currency deltas when liquidity is added or removed. beforeAddLiquidity and beforeRemoveLiquidity are present as view-only selectors in the dispatch table and are not enabled in the permission flags.
Fee behaviour
Fees are computed per pool from stored fee configuration (defaultFee, MAX_TOTAL_FEE, FEE_DENOMINATOR, BPS-based creatorBps and ownerBps splits) and a tiered weighting scheme. beforeSwap and afterSwap appear to adjust or split fees, and the hook can take a portion via return deltas and forward it to a feeRecipient, creator or secondaryRecipient.
Owner & admin controls
Owner-only functions include setPaused, setPoolEnabled, setExemptAddress, setSecondaryRecipient, withdraw, withdrawAll, and a parameter setter (0x473b5368 with address and uint8 arguments, likely fee or tier configuration). Owner is readable via a standard owner getter and the bytecode contains an NotOwner revert, indicating an owner check. Upgradeability is not evidenced in the decoded selectors.

Enabled Uniswap v4 callbacks

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

afterAddLiquidity: observes or settles deltas after liquidity is added. afterRemoveLiquidity: observes or settles deltas after liquidity is removed. beforeSwap: runs pre-swap logic, likely fee computation and pool gating. afterSwap: records swap counts and applies post-swap fee accounting. afterSwapReturnDelta: lets the hook take a share of the swap output. afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta: let the hook take a share of liquidity deltas.

Security & trust assessment

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

Who controls it: The owner can pause the hook, enable or disable individual pools, change the exempt address and secondary recipient, change fee parameters, and withdraw or sweep tokens held by the hook. A compromised owner key could redirect fee revenue or drain accumulated balances.

Risk to user funds: The hook can take currency through afterSwap and liquidity return deltas and holds balances until withdrawn by the owner, so user swap output and LP deltas pass through hook-controlled accounting. The owner can pause or block operations but the decoded code does not show a path to seize LP principal directly.

Security findings

  • [medium] Owner can withdraw hook-held balances: The hook holds tokens through return deltas and exposes withdraw and withdrawAll owner functions, so accumulated fee balances sit in the contract until the owner moves them.
  • [medium] Owner can pause or disable pools: setPaused and setPoolEnabled can halt swaps or liquidity operations on the hook's pools, blocking user activity.
  • [medium] Owner can redirect fee recipients: setSecondaryRecipient and setExemptAddress change where fee shares are sent or who is exempt from fees, enabling owner-directed redirection of value.
  • [low] Mutable tier and weight configuration: A setter taking an address and uint8 (0x473b5368) and a bfd8966f setter taking arrays of uint256 are present, suggesting configurable tiers or weights that could be altered after deployment.
  • [info] Unverified source: Source is unavailable, so the exact arithmetic, access checks and any upgrade path could not be verified from bytecode alone.

Contract details

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

Pools using Likely fee sharing hook