Duel is a real-time player-versus-player game. Two players stake the same amount, play one provably-fair round, and the winner takes the whole pot. The house takes nothing from the round — 100% RTP. This document explains exactly what you stake, what you win, how fairness is guaranteed, and how the $PVP token fits in.
Duel turns Rock Paper Scissors into a fair, head-to-head wager. You create a game and set your stake, or join an open one. Once two players are matched, each secretly picks a move. Both picks are cryptographically locked in before either is revealed, so neither side — and not even the platform — can change a pick after seeing the other.
The defining property is simple: the round itself makes nobody any money. There is no rake, no fee, no edge skimmed from the pot. Every lamport that goes in comes back out to a player. This is what “0% house edge” and “100% RTP” mean here.
The most important thing to understand is that Duel has two completely separate economic layers. Confusing them is the #1 source of questions, so we make it explicit:
You play with your balance (see Custody below). In the current demo, balance is play-money from a faucet; with real custody enabled it is SOL you deposited.
| You win | −0.10 stake, +0.20 pot = net +◎0.10 (you doubled your stake) |
| You lose | −◎0.10 (your stake goes to the winner) |
| Tie | both stakes refunded → net ◎0.00 |
| House takes | ◎0.00 — always |
The pot is exactly the sum of the two equal stakes. The winner receives all of it. There is no commission, listing fee, or spread. That is the entire money model of a duel.
RPS only works if neither side can see the other’s move first. Duel guarantees this with a commit-reveal scheme. Each player’s commitment is:
sha256("rps-v1|game:<gameId>|pick:<pick>|key:<clientKey>")The clientKey is a random secret generated in your browser. Before the reveal, the server only ever sees the hash — it cannot derive your pick. After the round, both keys and picks are published, so anyone can recompute both hashes and confirm neither side changed its pick mid-game. Binding the hash to the gameId stops a commitment from being replayed in another game.
Duel is currently custodial: the platform holds balances and settles rounds off-chain for instant, gas-free play. You deposit SOL to your balance, play, and withdraw what you have. Identity is your Solana wallet (or a local guest key); you prove control with a signed message — no one can act on your balance without your signature.
Because duels are 0% rake, Duel doesn’t earn from the rounds. Instead it is funded by $PVP, launched on pump.fun. A share of the token’s trading fees is routed to the Duel Treasury, which is used for:
Tournaments are how the token economy reaches players. Instead of free giveaways, the Treasury seeds a prize pool (funded by token fees) and players compete in a bracket of RPS duels. The tagline from day one: “double or lose your prize.” Advance to grow your prize, or lose it and you’re out.
Entry can be free (fully fee-funded) or staked, depending on the event. This turns trading- fee revenue into recurring, skill-based prize competitions rather than one-off airdrops.
| Live | Phase 0 — Demo 1v1 duels, commit-reveal, in-app verifier, practice vs bot. Play-money on devnet. |
| Next | Phase 1 — Real SOL Enable custodial SOL deposits & withdrawals (devnet → mainnet). |
| Planned | Phase 2 — $PVP token pump.fun launch + Treasury fee routing. |
| Planned | Phase 3 — Tournaments Fee-funded prize pools, bracket play. |
| Planned | Phase 4 — SPL betting Stake with $PVP and other SPL tokens, not just SOL. |
| Later | Phase 5 — On-chain escrow Trustless custody: stakes & settlement in a Solana program. |