Fee sharing hook on BNB Chain

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

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

What it does

A Uniswap v4 hook that takes a configurable share of swap and liquidity deltas and splits fees between an owner and a creator, with pause and whitelist controls.

How it works step by step

  • Runs beforeSwap and afterSwap callbacks on each swap, with afterSwapReturnDelta allowing a share of output to be taken by the hook.
  • Runs afterAddLiquidity and afterRemoveLiquidity callbacks with return-delta permissions to adjust liquidity deltas.
  • Stores per-config fee parameters and owner/creator BPS splits in storage.
  • Maintains trusted router and trusted origin lists and a whitelist-only mode.
  • Holds a token balance mapping and exposes an owner withdrawal function.
Swap behaviour
beforeSwap and afterSwap run on every swap, with afterSwapReturnDelta enabled so the hook can take a portion of swap output for fee sharing; exact per-swap math is not confirmed without source.
Liquidity behaviour
afterAddLiquidity and afterRemoveLiquidity callbacks are enabled with return-delta permissions, so the hook can adjust balance deltas on liquidity changes. The exact adjustment logic is not determinable without source.
Fee behaviour
Dynamic fee configuration appears to be stored per config and split between owner and creator by BPS shares (setOwnerBps, setCreatorBps, DEFAULT_CREATOR_BPS). Fee values are inferred from selector names and storage only; exact fee logic is not confirmed.
Owner & admin controls
Owner (slot 0) can transfer ownership, set fee recipient, pause via setPaused, toggle whitelist-only mode, manage trusted routers and origins, set owner/creator BPS shares, set per-config parameters and flags, and withdraw tokens via withdraw(address,address,uint256). Inferred from selectors and storage writes, not verified source.

Enabled Uniswap v4 callbacks

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

afterAddLiquidity and afterRemoveLiquidity run after LP changes, afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta let the hook take a share of liquidity deltas, beforeSwap sets per-swap state or fee, afterSwap runs post-swap accounting, and afterSwapReturnDelta lets the hook take a share of swap output.

Security & trust assessment

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

Who controls it: The owner can pause the hook, change fee recipient, BPS splits and trusted routers, toggle whitelist-only access, and withdraw tokens held by the contract. A compromised owner key could redirect fee shares or drain balances the hook holds.

Risk to user funds: The hook holds tokens through return-delta fee accounting and has an owner withdrawal path, so it can hold and move pool and user value. Trust in the owner and the unverified contract logic is required.

Security findings

  • [high] Owner withdrawal of hook-held tokens: withdraw(address,address,uint256) is an owner-controlled path that moves tokens out of the hook; the hook holds tokens via return deltas and fee accounting.
  • [medium] Owner can pause or restrict access: setPaused and setWhitelistOnly can block or restrict swap and liquidity access for users when toggled.
  • [medium] Owner controls fee recipient and split: Owner can change fee recipient and owner/creator BPS shares, redirecting fee revenue.
  • [medium] Return deltas let hook take user value: Return-delta permissions allow the hook to take tokens from swaps and liquidity operations, so user amounts depend on hook logic not verified here.
  • [info] Single owner key: Ownable pattern with transferOwnership and no evidence of timelock or multisig in the bytecode.

Contract details

Verified source
No
Bytecode size
17,913 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta

Pools using Fee sharing hook