Fee Structure
GlobalPVP uses a sophisticated multi-layer fee system implemented through a Uniswap V4 hook. Fees serve three purposes: protocol revenue, volatility dampening, and game mechanic enforcement.
Fee Layers
Every swap passes through the fee calculation engine. The final fee is determined by combining multiple layers:
Layer 1: Flat Fee (Always Active)
A constant 1% fee (100 bps) applies to every single trade, buy or sell, in every pool, at all times. This is the floor fee that can never go lower.
Layer 2: Dynamic Volatility Fee (0-4%)
On top of the flat fee, a dynamic component scales with pool volatility. The more volatile a pool has been recently, the higher the fee.
How volatility is measured:
- Each swap records how much the price moved (tick displacement)
- The squared tick displacement is accumulated into a
volatilityAccumulator - The accumulator decays by 50% every 60 seconds of inactivity
- The dynamic fee =
accumulator * 500 / 100,000, capped at 400 bps (4%)
What this means in practice:
- A quiet pool with steady trading: ~0% dynamic fee
- A pool with moderate price swings: ~1-2% dynamic fee
- A pool with extreme volatility (large buys/sells): up to 4% dynamic fee
The total base fee (flat + dynamic) is capped at 5% (500 bps).
Layer 3: Nuke Window Fee (Sells Only)
When a vote is triggered, the Nuke Window activates. During this window (typically 5 minutes):
- Buy fee: Normal (flat + dynamic, 1-5%)
- Sell fee: 20% (2,000 bps)
This asymmetric fee structure:
- Discourages panic selling during the vote
- Makes it expensive to dump tokens of the likely-nuked country
- Encourages holding through the uncertainty
- Buying remains cheap so new players can still enter
The Nuke Window deactivates immediately after the nuke is executed.
Layer 4: Anti-Snipe Fee (Sells Only)
After each post-nuke buyback, the receiving pool gets anti-snipe protection:
- Buy fee: Normal (flat + dynamic, 1-5%)
- Sell fee: Starts at 90%, decays linearly to normal over 5 minutes
The decay formula:
fee = 9000 - (9000 - defaultFee) * elapsed / 300
Where defaultFee is the normal flat + dynamic fee (~100-500 bps), and elapsed is seconds since the buyback.
Anti-snipe prevents sandwich attacks on buyback transactions — making it unprofitable for bots to buy ahead of the known buyback and sell immediately after.
Fee Priority
When multiple special conditions overlap, the highest fee wins for sells:
- Anti-snipe active AND nuke window active? Anti-snipe fee (90% > 20%)
- Nuke window active only? 20% sell fee
- Neither active? Normal dynamic fee
Buys always pay the normal flat + dynamic fee regardless of special windows.
Where Do Fees Go?
All fees are collected by the Uniswap V4 hook and sent to the protocol fee recipient. None of the fees go to liquidity providers (the LP fee is set to 0%).
This is intentional — since the game contract owns all liquidity, LP fees would just go back to the game itself. Instead, all fees go to the protocol to fund development.
Fee Summary Table
| Condition | Buy Fee | Sell Fee |
|---|---|---|
| Normal trading | 1-5% | 1-5% |
| During nuke window | 1-5% | 20% |
| Anti-snipe (0 min) | 1-5% | 90% |
| Anti-snipe (2.5 min) | 1-5% | ~45% |
| Anti-snipe (5 min) | 1-5% | 1-5% (back to normal) |
Fee Impact on Strategy
- Buy early in the countdown when volatility is low and fees are minimal
- Avoid selling during the nuke window — the 20% fee is brutal
- After a nuke, wait 5 minutes before selling tokens in buyback-recipient pools
- Large trades increase volatility fees for subsequent traders — whale moves create short-term fee spikes
- Buying is always cheaper than selling during special windows — this creates a structural buy bias during volatile periods