SwapFeeHook on BNB Chain

Uniswap v4 Hook Contract 0x7f0ed2223ffbeecddaea6adce0191d178420a2cc on BNB Chain · Fee sharing · Verified contract

Volume (24h)
$0
Value locked (TVL)
$5.00
All-time volume
$0
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
0

What it does

This hook charges MEET buyers a 2% stablecoin fee (adjustable up to 10%) sent to a fee recipient while sellers pay no hook fee, and it blocks LP withdrawals unless the LP holds nearly all circulating MEET, effectively locking liquidity.

How it works step by step

  • Charges a fee (2% by default, hard cap 10%) only on buys of the MEET token, paid in the stablecoin; sells of MEET pay no hook fee.
  • Sends the fee directly to a fee recipient wallet, or holds it as a claim in the PoolManager if the transfer fails, for later permissionless delivery.
  • Allows only one pool (stable/MEET with preset fee, tick spacing and starting price), and only the owner can initialize it.
  • Blocks liquidity withdrawals unless the withdrawing LP holds essentially all circulating MEET outside the pool and reward reserve, which in practice locks liquidity for most LPs.
  • Fee increases wait 1 day before taking effect; decreases apply immediately.
Swap behaviour
When buying MEET with the stablecoin, the hook takes the current fee (default 2%, max 10%) of the stablecoin amount, before the swap for exact-input and after the swap for exact-output; sells of MEET are not charged. For exact-input buys with a price limit that only partially fill, the fee is still charged on the full requested amount.
Liquidity behaviour
Adding liquidity is unrestricted, but every removal (including fee-only collection) reverts unless the LP's wallet holds at least all MEET supply not sitting in the PoolManager or the reward distributor. This effectively locks liquidity for anyone who does not hold nearly the entire circulating MEET supply, and burned or stuck MEET can make the lock permanent.
Fee behaviour
Buys of MEET pay a hook fee of 2% by default in the stablecoin, adjustable from 0% to 10% by the owner or the fee recipient, with increases delayed by 1 day; sells pay only the pool's static LP fee. Fees go to the fee recipient, or are held as PoolManager claims and later delivered to them.
Owner & admin controls
The owner (intended to be a Safe) can change the fee recipient, manage trusted routers used to identify LPs on withdrawal, and set the fee between 0% and 10% (increases take 1 day); the fee recipient can also set the fee within the same cap. The owner can renounce ownership after the pool is created.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts creation to one preset pool initialized by the owner; beforeRemoveLiquidity enforces the MEET-holding withdrawal lock; beforeSwap takes the fee on exact-input buys; afterSwap takes the fee on exact-output buys; beforeSwapReturnDelta and afterSwapReturnDelta charge that fee to the swapper.

Security & trust assessment

Risk level: high (verified source, high confidence).

Who controls it: The owner sets the fee recipient and trusted routers, and the owner or fee recipient can set the buy fee up to 10%. Nobody can raise the fee above 10% or take LP principal, but the withdrawal lock is built into the code.

Risk to user funds: Buyers pay 0% to 10% (default 2%) of their stablecoin amount to the fee recipient; sellers pay no hook fee. LP principal cannot be drained by the hook but is effectively trapped unless the LP holds essentially all circulating MEET.

Security findings

  • [high] LP withdrawals effectively locked: Removing liquidity reverts unless the LP holds all circulating MEET outside the pool and reward reserve, so ordinary LPs cannot withdraw or even collect LP fees. Burned or stuck MEET makes the lock permanent, while the check can be met temporarily with a flash loan.
  • [info] Buy-only fee capped at 10%: The hook fee is 2% by default, hard-capped at 10%, applies only to buys, and increases need a 1-day delay.
  • [low] Trusted router list controls LP identity: The owner decides which routers are trusted to report the real LP address, which affects who passes the withdrawal check.
  • [info] Single owner-initialized pool: Only one preset stable/MEET pool can exist on this hook, and only the owner can initialize it, preventing front-run pool creation.

Contract details

Verified source
Yes (SwapFeeHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
9,331 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc20, erc6909-claims, fee-sharing, moves-currency, ownable, return-delta, rewards, self-unlock

Pools using SwapFeeHook