Documentation

FAIRDRUM documentation

Everything about how the site works is gathered here: where to start, how a round is calculated, where your SOL is held and what has been done to make it all work. Each section is a separate page with the details.

For players: where to start

How the game works

Your SOL and protection

What the project consists of

  • Smart contract on the Solana network. It accepts bets, holds the game balances and the pools, and calculates the round outcome and the payouts. The site does not calculate payouts and cannot change them.
  • The site — static pages with no server holding a database of players. It reads the contract and prepares transactions, which your wallet signs.
  • The house's keeper — a program on a separate server. It reveals the round secret so that the contract can settle the round, credits transfers from personal top-up addresses and makes sure the vault holds no less than the obligations to players.

What has been done to bring the site to this state

The numbers below were counted from the source code and the check logs as of 13 November 2026.

Contract

About 2100 lines of Rust, 27 instructions. 37 automated tests of the calculations and the accounting.

Site

16 games, 37 pages in 14 languages — 519 finished pages in total. About 10000 lines of code and about 1600 phrases in each language.

Code reviews

7 internal code reviews, with the findings fixed, and 83 automated tests of the site. There has been no independent external audit so far.

Rehearsals on a copy of the network

On a local copy of the Solana network: 117 round checks (forging the secret, refunding the bet, changing the secrets root) and 28 keeper checks (downtime, two copies running, someone else's secrets file).

Every game live

All 16 games have been played in the browser on the real contract: after every round the balance on the site was checked against the balance in the contract. Both ways of signing in, a top-up from an exchange and a withdrawal were tested.

Every page

All pages in all languages were opened on a phone and on a computer — 1008 page views: no errors, blank areas or horizontal scrolling.

Decisions that changed the project

  • Our own provably fair draw instead of an external oracle. A measurement showed that the oracle returned the same number on the test network and on the main network, which means the round number could be learned in advance. The oracle has been removed; the round number is now made from a secret recorded before the bet and the hash of the bet's block.
  • A bet refund instead of a stuck round. If the house does not settle a round in time, the contract refunds the bet in full, and the refund is added to a public counter.
  • Personal top-up address. Every player has their own address in the contract: SOL can be sent from an exchange without a signature in a wallet.
  • Signing in without your own wallet. The site creates a wallet in the player's browser; the key is not passed to the site or to the house.
  • There are no keys on the site's server. The house's keys are kept only on the separate contract server.

What is not done yet

No independent external audit of the contract has been carried out. The right to upgrade the program is for now held by a single house key, not by a multisig. The page translations have not been proofread by native speakers. More about the limitations is on the “Provably fair” and “Player protection” pages.