Moonad

Provably Fair

Verify that every round is fair and unmanipulated

Crash Fairness

Provably Fair is a system allowing players to verify that the site operates legitimately and doesn't tamper game results. It leverages cryptography and third party input to generate random values. At the end of the game, players can verify that the outcome was indeed determined by the original seed and inputs, thus proving that the game was fair.

import { createHmac } from "crypto";

const serverSeed = "REVEALED_SERVER_SEED";
const publicSeed = "MONAD_BLOCK_HASH";

const hmac = createHmac("sha256", serverSeed)
  .update(publicSeed).digest("hex");

const h = parseInt(hmac.slice(0, 13), 16);

// 3% instant crash (house edge)
if (h % 33 === 0) return 1.00;

const e = Math.pow(2, 52);
const crashPoint = Math.floor((100 * e - h) / (e - h)) / 100;

console.log("Crash Point:", Math.min(crashPoint, 100));

How It Works

Seed Chain Flow

Server Seed Hash

Shown BEFORE round

Public Seed

From Monad blockchain

Crash Point

HMAC-SHA256 derived

Server Seed Revealed

Shown AFTER crash

Server Seed Chain: Before the game starts, the server generates a chain of seeds. Each seed is the SHA-256 hash of the previous one. Seeds are used in reverse order, so revealing any seed proves all future seeds were pre-determined.

Public Seed: Sourced from the Monad blockchain (block hash), ensuring the server cannot manipulate it after players have placed their bets.

Crash Point Formula: The crash point is computed as HMAC_SHA256(serverSeed, publicSeed) -- the first 4 bytes are converted to an integer, then mapped to a multiplier with a 3% house edge. There is a ~3% chance of an instant crash at 1.00x.

The server seed hash is shown before the round begins. The actual server seed is only revealed after the round crashes. This ensures the crash point was determined before any bets were placed and cannot be changed.

Verify a Round

Manual Verification

Paste any server seed and public seed to independently calculate the crash point. No server calls are made -- the calculation runs entirely in your browser.

Recent Rounds

RoundCrashStatus
Airdrop Lottery

0.00 MON

00:00:00
Wager 10 MON = 1 ticket0 / 10 MON

10 MON wagered = 1 ticket. Winner takes all!