DEV Community

Designing a 50/50 Bet People Actually Trust

You can’t ship a 50/50 on-chain bet and then ask users to "just trust" your random number generator.

When we built Yoss.gg — a P2P USDC coin flip game on Base — the bar was: anyone who cares enough can verify every flip.

A few design constraints that shook out of that:

  1. Non-custodial first

    Funds live in smart contracts, not on a database. If the operator disappears, user balances don’t.

  2. Commit–reveal randomness

    The flip result is derived from a process users can recompute after the fact. No opaque RNG claim, no "provably fair" badge with nothing behind it.

  3. USDC as the unit of play

    Chips are stable. A 10 USDC bet is a 10 USDC bet; you’re not secretly speculating on token price between deposit and withdrawal.

  4. No rake in the payout function

    Two equal stakes go in. Winner receives 100% of the pot. The contract literally has nowhere to take a fee.

  5. Base L2 for UX

    Sub-cent gas and fast finality are what make this feel like a game, not a DeFi ritual.

You can tack "web3" onto a casino and call it a day. Or you can take the primitives seriously and design a small, sharp game where the math is the feature.

For a 50/50 bet, that starts with: 50/50 everyone can verify.

Top comments (0)