The Game Cycle
GlobalPVP operates in a repeating cycle of three phases: Countdown, Voting, and Execution. Understanding this cycle is critical to playing effectively.
Phase 1: Countdown (4 Hours)
The game begins with a 4-hour countdown. During this phase:
- Trading is fully open — Buy and sell any alive country's tokens
- Standard fees apply — 1-5% dynamic fee based on volatility
- Market caps shift — Prices move based on buying and selling pressure
- Alliances form — Players coordinate to pump specific countries
The goal during this phase is to position yourself advantageously before voting begins. You want to either:
- Become the top holder of any alive country — that's how you earn a seat at the voting roundtable
- Hold tokens in countries unlikely to be nuked (safe havens)
- Accumulate tokens in countries you think will receive buyback ETH after the nuke
What Determines Market Cap?
Market cap = token price x total supply (1 billion per country). Since supply is fixed, market cap is purely a function of the Uniswap pool price. More buying pressure = higher price = higher market cap.
The country with the highest market cap when the countdown expires becomes the immune country for the round — it gets a seat at the roundtable and cannot be targeted by the nuke.
Phase 2: Voting (5 Minutes, Secret Roundtable)
When the countdown hits zero, anyone can call triggerVote(). This:
- Snapshots the highest market cap country as the immune country
- Activates the Nuke Window — a 20% sell fee on ALL country tokens
- Starts a new
GovernanceVotingV2round; the keeper computes a ranking of every alive country by market cap, looks up each country's top holder, and publishes the Merkle root ofPoseidon(countryCode, rank, topHolder)leaves on-chain - Opens a 5-minute voting period
Who Can Vote?
Only the top holder of each alive country. One seat per alive country — the roundtable starts full (every country in the game gets a seat) and shrinks by one every time a country is nuked.
Each seat's weight is its market-cap rank:
| Rank | Weight (with aliveCount alive countries) |
|---|---|
| #1 (immune) | aliveCount — most powerful seat, can't be nuked |
| #2 | aliveCount - 1 |
| ... | ... |
| Last | 1 |
Formula: weight = aliveCount - rank + 1.
How the Vote Stays Secret
Each leader submits a zero-knowledge proof (built from a Noir circuit in the browser, ~3–5s) that they are a legitimate top holder of some alive country, without revealing which one. Alongside the proof, the actual target is NaCl-box-encrypted to the keeper's on-chain public key. The contract stores a keccak binding commitment so the keeper cannot later forge or substitute votes.
Until the voting window ends, no one — not even the keeper — knows who voted for whom. No bandwagoning, no last-second tactical switching, no public kingmaker coercion.
Reveal
When the window closes, the keeper decrypts every ciphertext off-chain and submits a single revealAndFinalize transaction. The contract:
- Verifies each reveal's keccak commitment matches what was posted at vote time
- Rejects any reveal targeting the immune country
- Tallies weighted votes and emits the final target
What If Nobody Votes?
If no votes are cast during the window, a random alive country (excluding the immune #1) is selected for elimination during the VRF-driven nuke phase.
The Nuke Window
During voting, a 20% sell fee applies to ALL token sales across every country. This mechanic:
- Prevents panic selling during the vote
- Makes it expensive to dump tokens of the likely-nuked country
- Incentivizes holding through the vote
- Creates a temporary liquidity lock effect
Phase 3: Execution (The Nuke)
After the 5-minute voting period ends, anyone can call executeNuke(). Execution happens in two on-chain steps using Chainlink VRF for verifiable randomness:
Step 1: Request Randomness (Phase 1)
When executeNuke() is called:
- The governance vote is finalized — the nuke target is determined (or marked as needing random selection if nobody voted)
- A randomness request is sent to Chainlink VRF V2.5
- The game enters a brief "VRF pending" state (typically 1-2 blocks)
Step 2: VRF Callback (Phase 2)
When the Chainlink VRF node delivers the verified random number:
- If no votes were cast, the random number selects the nuke target
- ALL 7 liquidity positions in the target country's Uniswap pool are removed
- The recovered ETH is redistributed via buyback swaps
Step 3: Redistribute ETH
The recovered ETH is distributed via three buyback swaps, with targets chosen using the VRF random seed:
| Recipient | Share | Mechanism |
|---|---|---|
| Immune (#1) Country | 40% | ETH swapped into the immune country's tokens |
| Random Country #1 | 40% | ETH swapped into a random surviving country (not the winner) |
| Random Country #2 | 10% | ETH swapped into another random surviving country (distinct from winner and #1) |
| Treasury | 10% | Sent directly to protocol treasury |
Each buyback swap immediately increases the receiving country's token price. This is one of the primary ways players profit. All random selections use Chainlink VRF to ensure no one — not validators, not the protocol — can predict or manipulate which countries receive buyback ETH.
Step 4: Anti-Snipe Protection
After each buyback swap, a 5-minute anti-snipe window activates on the receiving pool. During this window, selling fees start at 90% and decay linearly back to normal over 5 minutes.
This prevents bots and frontrunners from immediately dumping after the buyback pump, ensuring organic price discovery.
Step 5: Mark and Reset
The nuked country is permanently marked as dead. Its token still exists as an ERC20 but can no longer be traded through the router. A new 4-hour countdown begins.
The Endgame
As countries are eliminated, the dynamics change dramatically:
- Fewer countries = larger share of buyback ETH per survivor
- Concentrated liquidity = more ETH flowing into fewer pools
- Higher stakes = each vote becomes more consequential
- Alliance shifts = previously allied countries may turn on each other
The game continues until only one country remains.
Game Over & The Prize Pot
When the final nuke reduces the alive countries to 1, the game ends automatically:
gameOveris set totrue— no more countdowns or votes- The surviving country is recorded as the
winningCountry - The Prize Pot is finalized — its ETH balance and the winning token's supply are snapshotted
The winning country's token holders can then forfeit their tokens to claim proportional ETH from the prize pot. This is the RFV (Risk-Free Value) — a guaranteed payout for every token held.
Throughout the game, 30% of all trading fees across every country flow into the Prize Pot. The more trading volume the game generates, the larger the pot grows. See Prize Pot & RFV for full details on how claiming works.
Cycle Timing Summary
| Phase | Duration | Key Action |
|---|---|---|
| Countdown | 4 hours | Trade freely, build market cap |
| Voting | 5 minutes | Top holders cast secret, ZK-proved votes |
| Reveal | 1 tx | Keeper decrypts and submits revealAndFinalize |
| Execution (Phase 1) | Instant | Request Chainlink VRF randomness |
| VRF Pending | ~1-2 blocks | Waiting for verified random number |
| Execution (Phase 2) | Instant | Nuke target, redistribute ETH |
| Anti-Snipe | 5 minutes | High sell fees decay on buyback recipients |
| New Countdown | 4 hours | Cycle repeats |