ExactOdds: provably-fair gaming protocol — commit-reveal outcomes plus provably identical rules, gated byte-identical across every runtime seat. By Slid Phi Labs.
Shell
0
0 commits
updated Sep 26, 2026
Fair outcomes you can prove. Rules you can prove. Both, or neither.
ExactOdds is a protocol for provably-fair gaming with two halves: commit-reveal seeds (the outcome was fixed before your bet) and the exactness law (the game program produces byte-identical output on every target seat — Python, JavaScript, TypeScript, C, C++ — or the program is refused). Today's "provably fair" proves only the outcome. ExactOdds proves the rules too: the program an auditor gates is the only program that can pass, so a house can't run different rules in production than the ones it showed the auditor.
games/ — the three reference games: provably-fair-dice.cuni,
provably-fair-coin-flip.cuni, and provably-fair-roulette.cuni. Short,
readable, deterministic: seeds in, result out.gate/ — the exactness gate runner (run-gate.sh), golden fixtures
(fixtures/), and the per-seat gate report (GATE_REPORT.md).receipts/ — source-hash receipts from the verified 2026-09-26 runs.paper/ — PAPER.md (the full protocol paper), PAPER.pdf, and
OPERATOR_ONEPAGER.md (one page for casino operators).You need the game's source, a SHA-256 tool, and any one of: Python 3, node, or gcc.
games/provably-fair-coin-flip.cuni in this repo, or
the copy your house publishes.sha256sum games/provably-fair-coin-flip.cuni must equal the
source_hash in receipts/provably-fair-coin-flip.receipt.json. If not,
that's a different game — stop.server_seed. echo -n "$server_seed" | sha256sum must match the
commitment published before you bet.flip function — any seat works;
the gate guarantees they all agree. The output must match the result the
house reported for your round.receipts/ holds the gated verdict. Auditors can
re-run ./gate/run-gate.sh to reproduce the PASS../gate/run-gate.sh
This needs the ExactOdds reference compiler. Point it at your build:
PROVABLY_COMPILER=/path/to/cuni ./gate/run-gate.sh
It defaults to ../cuni-langs/target/debug/cuni (the lab tree), then
~/workspace/cuni-langs/target/debug/cuni, then cuni on PATH. For each
game it emits all five native seats, runs them, demands byte-identical
stdout, writes a fresh source-hash receipt into receipts/, and checks the
output against the golden fixtures. Exit 0 means every game passed and no
fixture drifted.
paper/PAPER.md (also paper/PAPER.pdf)paper/OPERATOR_ONEPAGER.mdgate/GATE_REPORT.mdDual-licensed: AGPL-3.0 (LICENSE.AGPL-3.0) or the Slid Phi Labs Commercial
License (LICENSE.COMMERCIAL). See LICENSE and NOTICE.
Copyright (c) 2026 Slid Phi Labs / Corey Tasz.
Not a casino, not a gaming license, no custody of funds, not a randomness source. See §5 of the paper.
Shell
100.0%
ExactOdds: provably-fair gaming protocol — commit-reveal outcomes plus provably identical rules, gated byte-identical across every runtime seat. By Slid Phi Labs.
Shell
0
0 commits
updated Sep 26, 2026
Fair outcomes you can prove. Rules you can prove. Both, or neither.
ExactOdds is a protocol for provably-fair gaming with two halves: commit-reveal seeds (the outcome was fixed before your bet) and the exactness law (the game program produces byte-identical output on every target seat — Python, JavaScript, TypeScript, C, C++ — or the program is refused). Today's "provably fair" proves only the outcome. ExactOdds proves the rules too: the program an auditor gates is the only program that can pass, so a house can't run different rules in production than the ones it showed the auditor.
games/ — the three reference games: provably-fair-dice.cuni,
provably-fair-coin-flip.cuni, and provably-fair-roulette.cuni. Short,
readable, deterministic: seeds in, result out.gate/ — the exactness gate runner (run-gate.sh), golden fixtures
(fixtures/), and the per-seat gate report (GATE_REPORT.md).receipts/ — source-hash receipts from the verified 2026-09-26 runs.paper/ — PAPER.md (the full protocol paper), PAPER.pdf, and
OPERATOR_ONEPAGER.md (one page for casino operators).You need the game's source, a SHA-256 tool, and any one of: Python 3, node, or gcc.
games/provably-fair-coin-flip.cuni in this repo, or
the copy your house publishes.sha256sum games/provably-fair-coin-flip.cuni must equal the
source_hash in receipts/provably-fair-coin-flip.receipt.json. If not,
that's a different game — stop.server_seed. echo -n "$server_seed" | sha256sum must match the
commitment published before you bet.flip function — any seat works;
the gate guarantees they all agree. The output must match the result the
house reported for your round.receipts/ holds the gated verdict. Auditors can
re-run ./gate/run-gate.sh to reproduce the PASS../gate/run-gate.sh
This needs the ExactOdds reference compiler. Point it at your build:
PROVABLY_COMPILER=/path/to/cuni ./gate/run-gate.sh
It defaults to ../cuni-langs/target/debug/cuni (the lab tree), then
~/workspace/cuni-langs/target/debug/cuni, then cuni on PATH. For each
game it emits all five native seats, runs them, demands byte-identical
stdout, writes a fresh source-hash receipt into receipts/, and checks the
output against the golden fixtures. Exit 0 means every game passed and no
fixture drifted.
paper/PAPER.md (also paper/PAPER.pdf)paper/OPERATOR_ONEPAGER.mdgate/GATE_REPORT.mdDual-licensed: AGPL-3.0 (LICENSE.AGPL-3.0) or the Slid Phi Labs Commercial
License (LICENSE.COMMERCIAL). See LICENSE and NOTICE.
Copyright (c) 2026 Slid Phi Labs / Corey Tasz.
Not a casino, not a gaming license, no custody of funds, not a randomness source. See §5 of the paper.
Shell
100.0%