Skip to content

Tax hook ​

The BNB / GRUB pool is bound to a Uniswap V4 hook that taxes swaps in native BNB.

Schedule ​

Period (from the first swap)BuySell
0 – 60 s15 %15 %
afterwards, forever5 %5 %

currentRates() on the hook is the source of truth; the app's countdown is informative only.

Mechanics ​

  • Buy (BNB → GRUB, exact input): the buy share of the input BNB is minted as an ERC-6909 native claim to the hook in beforeSwap and paid by the buyer; the claim is redeemed to real BNB on the next swap, or by anyone through the permissionless sweep().
  • Sell (GRUB → BNB, exact input): the sell share of the output BNB is taken in afterSwap.
  • Every redeemed or taken amount goes in full to the tax wallet in the same transaction (WalletPaid event, taxCollected counter).
  • Liquidity operations and exact-output swaps are not taxed. The exit of the position is not taxed.
  • The hook is bound to exactly one pool (BNB as currency0, GRUB as currency1) in beforeInitialize. No owner, no setters, no pause.

Reads used by the app ​

currentRates(), tradingStart(), pendingEth(), taxCollected(), taxWallet(), TIER1_END(), poolKey().

Grub · @grubonchain on X · open tools, no account · contracts unaudited · the official $GRUB address is published on the Contracts page first, anything before that is a scam.