HOW TO PLAY
Stake your USDm, find Patient Zero before they turn everyone, and walk away with the pot. Activate your Shield if you're being framed — but you only get one free, so spend it wisely.
The Objective
Patient Zero
The original source of infection. Has the power to spread the plague each round. If eliminated, the next player in the infection chain is promoted to Patient Zero.
Win Condition
Survive until infected players strictly outnumber clean players alive.
Infected
Secretly infected by the current Patient Zero. Acts as a normal Clean player to the public while secretly working to let the infection spread. Waiting in succession to become Patient Zero.
Win Condition
Survive until infected players strictly outnumber clean players alive.
Clean
You know you're clean. Use deduction and your Shield to find the infected before they take everyone down.
Win Condition
Eliminate all infected players before rounds run out.
Room Lifecycle
Every game goes through four distinct statuses before it ends.
The room is open. Players can join by staking the required USDm amount. Once the room fills or the host closes it, no more entries are accepted. Rooms automatically expire if not started within the configured time — all stakes are fully refunded.
- →Join by staking USDm
- →Wait for min players (4 minimum)
- →Room expires if unfilled → stakes refunded
The host started the game and the join window is closed. Every player has to lock in their secret role within a short window. If too few players lock in, the game ends early — the ones who locked in split the pot, the rest get refunded.
- →Set your Shield Password to lock in your role
- →Lock in fast — missing the window can end the game early
- →No new players can join
The game is live. Rounds of Infection → Discussion → Voting → Reveal repeat until one side wins. Every action is locked in on-chain — no take-backs.
- →Infection, Discussion, Voting, Reveal phases cycle
- →Cast votes and activate Shields on-chain
- →Watch for phase-change events
The game is over. The smart contract has determined the winner faction and distributed the pot automatically. No admin action needed.
- →Pot distributed automatically to winners
- →Platform takes 0.3% fee from pot
- →Results finalized on-chain
Round Structure
Each round cycles through four phases. Understanding phase timing is critical to using proofs strategically.
Infection
Round 1: the system selects a Clean player to infect using a deterministic hash. Round 2+: the player Patient Zero voted for in the previous round becomes the infection target (if still eligible). Only the newly infected player receives a private notification — everyone else sees nothing. This makes Patient Zero's vote a hidden strategic weapon: it openly nominates a suspect for elimination and secretly queues that same player as the next infection target.
Discussion
Players discuss and debate who might be infected. Clean players can activate a Shield to prove they're not the zombie without revealing anything else. One Shield per player per round, and the window closes the moment voting begins.
Voting
Every alive player casts an on-chain vote for the player they believe is infected. Any player who fails to vote before the timer expires automatically receives a self-vote — their vote is cast against themselves. Silence equals guilt; abstention is never safe.
Reveal
The smart contract resolves votes, applies the vote-protection rules, eliminates (or saves) a player, checks endgame conditions, and either starts the next round or triggers the final payout.
Patient Zero Succession
The infection has a chain of command. Eliminating Patient Zero doesn't stop the plague — it just promotes the next infected player.
- 1Initial Patient Zero is set when the first player is ever infected.
- 2Each newly infected player is appended to the infection chain in order.
- 3When the current Patient Zero is eliminated, the next alive player in the chain is promoted.
- 4Example: A infects B, B infects E, E infects C, C infects G. If A is eliminated → B becomes PZ. If B is eliminated → E becomes PZ. And so on.
- 5The current Patient Zero address is public on-chain — players can verify it.
On-Chain Verifiable
The current Patient Zero address is stored publicly in the contract (currentPatientZero[roomId]). Any player can verify who holds the role at any time.
Vote Resolution Rules
The smart contract applies deterministic rules to resolve every vote. There is no ambiguity or moderator discretion.
Single top candidate — no Shield
One player got the most votes and never activated a Shield. They get kicked out of the game.
Single top candidate — Shield activated
One player got the most votes but activated their Shield during Discussion. They survive; the game continues normally next round.
Tie — at least one infected or unprotected
Multiple players share the top vote count. If any tied player is infected, all tied infected players are kicked out. If none are infected, all tied clean players without a Shield go down. Anyone with an active Shield is safe.
Tie — everyone Shielded
Every tied top-voted player activated their Shield. Nobody goes home, and no extra infection is forced — only Patient Zero infects normally next round. The room sees a generic message; nobody learns who Shielded.
Absent Vote Rule
Any player who does not cast a vote during the Voting phase automatically has a self-vote recorded against them. Silence equals guilt — abstaining is actively dangerous regardless of who else is leading. There is no safe way to skip your vote.
Shields
Shields are your insurance policy. Use them wisely — they are limited.
First Shield is free
Every player gets one free Shield per game. No USDm needed.
Extra Shields cost a fee
After your free one, each extra Shield costs the room's fee. The fee goes to the platform.
One Shield per round
Max one Shield per player per round. You can't spam them.
Only Clean players can Shield
Infected players can't fake a Shield — the math literally won't let them. If you're infected, don't try; it will fail and reveal you.
Discussion phase only
The Shield window opens when Discussion starts and slams shut the moment voting begins. Miss it and you're on your own.
Strategic gamble
You have to decide whether to Shield before you know who'll be the top vote target. Use it when safe and you waste it; don't use it when targeted and you lose the game.
Under the Hood (for the curious)
The Shield circuit (built in Noir) proves your role is CLEAN without revealing your role or your secret to anyone. Your commitment Poseidon(role, secret) was registered on-chain at game start. The nullifier Poseidon(secret, roomId, round) stops the same Shield from being replayed across rounds. The Groth16 proof is verified on-chain before the Shield is accepted.
Endgame & Payouts
Win conditions are checked automatically by the contract after every Reveal phase. Payouts are instant and trustless.
Clean Win
Condition
All infected players are eliminated.
Payout
The entire pot (minus 0.3% platform fee) is split equally among surviving Clean players.
Infected Win
Condition
Infected players alive > Clean players alive.
Payout
The pot is split equally among surviving Infected players.
1 vs 1 Draw
Condition
Exactly 1 infected alive and 1 clean alive at Reveal finalization.
Payout
Draw outcome. No faction win is declared.
Max Rounds Draw
Condition
The game reaches the maximum round limit without a decisive win.
Payout
Counts as an Infected win. The pot goes to surviving Infected players.
Platform Fee
A 0.3% platform fee is deducted from the pot at game end before distribution to winners. Proof fees (paid for proofs after your first free one) are collected separately and do not come from the pot.
Strategy Tips
Playing Clean
- →Save your free Shield for when you're about to be voted out.
- →Watch for players who never vote against obvious suspects — they might be covering for their team.
- →Team up with trusted clean players and focus votes decisively.
- →Shielding too early tips your hand — only do it when you need to.
Playing Infected
- →Never vote obviously against the clean side — it gives you away.
- →Vote early and convincingly against a clean player to build false trust.
- →If the current Patient Zero is under suspicion, push for their elimination — you might get promoted.
- →You can't fake a Shield — the math will reject you. Don't try; it will publicly out you.