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) | Buy | Sell |
|---|---|---|
| 0 – 60 s | 15 % | 15 % |
| afterwards, forever | 5 % | 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
beforeSwapand paid by the buyer; the claim is redeemed to real BNB on the next swap, or by anyone through the permissionlesssweep(). - 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 (
WalletPaidevent,taxCollectedcounter). - 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().
