← Back to Sol Wager

Fairness & Proof

Last updated: 2026-05-19

Why this page exists. You're wagering real money against other players. You deserve to know exactly how outcomes are decided, where the platform's cut comes from, and how to verify any game on-chain. Below is every relevant mechanic of Sol Wager, in plain language. If something isn't covered, ask via support and we'll add it.

How game outcomes are determined

Coin Flip

When a Coin Flip round begins, the server generates a random byte using Node.js's crypto.randomBytes(1). This pulls from the operating system's cryptographically secure random pool (Linux's /dev/urandom), the same source banking apps and TLS handshakes use. The result is mapped: even byte = heads, odd byte = tails. There is no weighting; the distribution is uniform.

Sol Wager has no incentive to bias the outcome. We're not the counterparty — one of the two players pays the other. We just take a 1% platform fee from the winning pot regardless of who wins.

Coin Fight

Coin Fight is a real-time multiplayer arena game. There is no RNG for outcome — players control their cells, eat food, eject mass, and eliminate each other through skill. The server runs the authoritative simulation at 30 ticks per second; clients send input, the server computes physics and collisions. Win condition: last cell alive when the timer expires or all other players are eliminated.

Two RNG-driven elements: (1) initial spawn positions are uniform random, (2) food and rugger spawn locations are uniform random. Neither affects who wins more than starting position in any other arena game.

Word Fight

The target word for each round is picked uniformly at random from the answer list for the chosen word length (4–8 letters). The same word is used for all players in the lobby; whoever guesses it in the fewest tries wins. Word lists are static and published in the source code, so a player can verify the word existed in the answer set before the round started.

How to verify a game on-chain

Every payout, refund, deposit, and withdrawal is a real Solana transaction. You can verify any of them yourself:

  1. Click any win in the activity ticker on the homepage, or any entry on your dashboard's Recent Games page. The transaction signature is shown.
  2. Open Solana Explorer (or your preferred Solana explorer like SolanaFM).
  3. Paste the transaction signature into the search bar.
  4. You'll see: the source wallet (Sol Wager's escrow), the destination (your platform wallet), the amount transferred, and the block timestamp.

The escrow wallet's on-chain activity is public. You can audit its full inflow/outflow at any time. This means: if we were siphoning funds, the blockchain would show it.

Fee structure

Sol Wager makes money one way: a 1% platform fee on the total pot, deducted from the winner's payout. Nothing else.

Example: 1v1 Coin Flip, $10 each player
Total pot: $20.00
Platform fee (1%): −$0.20
Winner receives: $19.80
Example: 10-player Coin Fight, $5 each
Total pot: $50.00
Platform fee (1%): −$0.50
Winner receives: $49.50

Network fees (Solana, not us)

Solana itself charges a per-transaction fee of roughly 5,000 lamports (about $0.0004 at current SOL prices). This is paid to Solana validators, not to us. Where this fee comes from:

  • Deposit: your personal wallet pays the fee
  • Withdrawal: deducted from the withdrawal amount
  • Wager into escrow: your platform wallet pays
  • Refund from escrow: deducted from the refund amount
  • Payout to winner: paid by escrow from the 1% platform fee accumulated in escrow

How the escrow works

When you wager, your platform wallet sends the wager amount to a shared escrow wallet controlled by Sol Wager. The escrow holds all active wagers until the game completes:

  • If you win — escrow sends the pot (minus 1% platform fee) to your platform wallet
  • If you lose — your share stays in escrow and is paid out to the winner
  • If the game cannot complete (e.g. server crash, you leave a lobby that hasn't started) — the wager is returned to your platform wallet via the escrow recovery service, which sweeps every 30 minutes

Escrow balance is on-chain and publicly auditable. The address changes occasionally for security; the current escrow public key can be revealed in any payout transaction.

Referral fee allocation

If you join via someone's referral code, 40% of the platform fee on your games is paid to your referrer. From the winner's perspective, the payout is identical — you still get (pot − 1%). The difference comes out of our 1% cut. If you refer 10 active players, you collect a recurring share of their platform fees forever.

Example: $20 pot, you referred one of the players
Total pot: $20.00
Winner receives: $19.80
Platform keeps: $0.20
...of which $0.08 (40%) is credited to the referrer (you)
...and $0.12 (60%) goes to platform operations

Honesty about provably-fair

Some crypto gambling platforms (e.g. Stake, BC.Game) use a stronger model called provably-fair: the server publishes a hash of its random seed before each game, then reveals the seed after, so players can independently verify the result wasn't changed mid-play.

Sol Wager's current model is one step weaker: we use cryptographically secure RNG (the OS's entropy pool) and record outcomes on-chain immediately, but we do not publish a pre-commitment hash. This means:

  • ✅ The randomness itself is genuinely random (not predictable without root access to the server)
  • ✅ Every outcome is permanently recorded on-chain
  • ❌ You cannot independently verify the seed wasn't chosen adversarially after the bet was placed

We mitigate this with the structural argument from the top of this page: Sol Wager has no incentive to bias outcomes. We are not the counterparty in any wager — the loser pays the winner, and we collect a flat 1% regardless. Implementing full provably-fair (seed commit-reveal on-chain) is on our roadmap; we'll announce when it ships.

Open code (for verification)

The relevant game logic is open for inspection. Specifically:

  • Coin Flip RNG — apps/server/src/coin-flip/CoinFlipGame.ts (look for generateFlipResult)
  • Payout math — packages/shared/src/calculatePayout.ts
  • Escrow logic — apps/server/src/services/WalletManager.ts
  • Word lists — apps/server/src/word-fight/words/

Play responsibly

Wagering is risky. Never wager more than you can afford to lose. If you find yourself wagering compulsively:

  • US: National Council on Problem Gambling — call/text 1-800-GAMBLER
  • UK: GamCare — 0808 8020 133
  • Worldwide: Gambling Therapy

We'll add per-account daily loss limits and self-exclusion options before our mainnet launch.

Questions?

If anything on this page is unclear, contact support. We'd rather over-explain than have you wonder.