Fee sharing hook on BNB Chain
Uniswap v4 Hook Contract 0x0bdd8bbc58e9f4224016e6640b6a24cda5d105c7 on BNB Chain · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- <$0.01
- All-time volume
- $6.96M
- Pools using this hook
- 6
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 2,510
What it does
A Uniswap v4 fee-sharing hook that charges tiered per-pool fees on swaps and splits the revenue between the protocol owner and a pool creator, with owner-controlled pause and whitelist features.
How it works step by step
- Sets a per-pool fee from tiered defaults (tier one, two, three) and a default fee
- Takes a fee delta on swaps through afterSwapReturnDelta and tracks swaps per pool
- Splits collected fees between an owner share (ownerBps) and a creator share (creatorBps)
- Allows a trusted router allowlist and optional whitelist-only mode
- Supports owner pause of swaps and owner withdrawal of accrued tokens
- Swap behaviour
- beforeSwap computes a tiered fee (with gas threshold and trusted router checks) and afterSwap counts swaps and takes a fee delta, splitting it between owner and creator shares.
- Liquidity behaviour
- afterAddLiquidity and afterRemoveLiquidity callbacks are enabled with return deltas, so the hook can adjust balances during liquidity changes. beforeAddLiquidity and beforeRemoveLiquidity selectors exist as views only. The precise accounting and what the deltas represent could not be determined.
- Fee behaviour
- Fees are set per pool by tiered defaults (tierOne, tierTwo, tierThree and a default fee, with quoteFee and dynamic fee logic keyed off gas threshold and trusted router status). Fee revenue is split between an owner share (ownerBps) and a creator share (creatorBps, default creator BPS constant), with the remainder handled by the hook; the exact split math could not be confirmed without source.
- Owner & admin controls
- Owner (Ownable, transferOwnership) can set default fee tiers via 0x5ba9f60a, set owner/creator BPS splits (setOwnerBps, setCreatorBps), set fee recipient, set trusted routers and whitelist mode, set gas threshold, pause or unpause swaps (setPaused), set an exempt address, and withdraw tokens (withdraw). No upgrade proxy pattern was identified in the decoded functions.
Enabled Uniswap v4 callbacks
afterAddLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, afterSwapReturnDelta, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta
afterAddLiquidity and afterRemoveLiquidity: post-liquidity bookkeeping with return deltas. beforeSwap and afterSwap: fee computation, swap counting per pool (swapCount mapping) and fee/split accounting. afterSwapReturnDelta: the hook takes or returns a delta after each swap, which is how it extracts its fee share. afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta: return deltas on liquidity changes.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: The owner controls fee tiers, the owner and creator revenue splits, the fee recipient, trusted router allowlist, whitelist-only mode and can pause swaps. The owner can also withdraw tokens held by the contract. A compromised owner key could redirect fee revenue, block swaps via pause, or drain hook-held balances.
Risk to user funds: The hook takes fee deltas on swaps and liquidity changes and holds accrued balances, which the owner can withdraw. It can pause or restrict swaps, but it does not appear to hold pooled LP principal beyond fee accounting. Exposure depends on owner key security since no source verification was possible.
Security findings
- [medium] Owner can withdraw hook-held tokens: withdraw(address,address,uint256) is an owner-callable function that moves ERC20 balances out of the hook, so any tokens the hook holds (accrued fees) are controllable by the owner.
- [medium] Owner can pause or restrict swaps: setPaused and an owner-controlled whitelistOnly flag can halt or restrict swaps through the beforeSwap path.
- [medium] Fee and revenue split parameters are owner-adjustable: Several fee and split parameters (fee tiers, ownerBps, creatorBps, feeRecipient) are adjustable by the owner with no timelock detected.
- [info] Return-delta permissions allow the hook to take value: The hook sets afterSwapReturnDelta and liquidity return-delta permissions, so it takes and accounts for tokens in the pool flow. This is standard for fee-taking hooks but means it can hold user-flow balances.
- [info] Reentrancy guard present: Bytecode shows a reentrancy guard error selector, so some protection exists, but correctness could not be verified without source.
Contract details
- Verified source
- No
- Bytecode size
- 18,349 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, pausable, return-delta
Pools using Fee sharing hook
- QQQB / USDC (Dynamic fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDC / SPCXB (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- NVDAB / USDC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- NVDAB / USDC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- GMEB / USDC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / SPCXB (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today