DocsReference

Glossary

The words this documentation and the verifier use, each with what the thing is for and the page that covers it.

Alphabetical. Most of these words turn up on a fairness panel or in a verifier report before they turn up in any code, so the entries are written for someone holding a bet and wondering what the label means. Each one links to the page with the detail.

Client Seed

The player's share of the randomness: any text up to 64 characters, handed out at random by default and changeable whenever the player likes. It exists so that the casino can't have arranged a run of results in advance, because it didn't know what you'd type. See Client seeds.

Commitment

The SHA-256 hash of the server seed, shown before you bet. It pins the casino to one seed without giving the seed away. Save your own copy, since a commitment you never saw proves nothing later. Server seeds and commitments covers how it's made and Publishing commitments where to show it.

Cursor

A counter inside a single bet. One digest yields eight floats, and a game that needs more, a full card shuffle for instance, raises the cursor to get the next digest. The record stores the highest cursor the bet reached, so a checker knows how far the calculation went. See Nonce and cursor.

Digest

The 32 bytes that come out when the server seed, client seed, nonce and cursor are mixed with HMAC-SHA256. Everything a game result is made of comes from these bytes, and the same four inputs always give the same ones. From digest to floats follows them from there.

Float

A number from 0 up to but never reaching 1, read from four bytes of a digest. Floats are the raw material a game works with: one becomes a dice roll, fifty-one shuffle a deck of cards. See From digest to floats.

Game Hash

In Crash, the one link of the hash chain that belongs to one round. It's the key the crash point is calculated from, and it's published when the round ends so anyone can check the result and check that it hashes to the previous round's link. See Crash.

GFS

The Galabet Fair Spec, the written rules every calculation here follows. The current version is 1.0 and a record says so in its first field, which tells a verifier which rules to apply. Versioning explains how the spec number and the library number relate.

House Edge

The share of stakes a game is built to keep over the long run. In Limbo and Crash it's a number inside the result formula, so it's written into the record and the verifier recalculates with it. In the other games it lives in the payout table, which is outside the fairness scheme altogether. Declared is not the same as audited: see Advertised Return.

Mapper

The few lines of arithmetic that turn floats into a result for one particular game: a roll, a pocket, a set of mine positions. A mapper has no randomness of its own, which is why two people with the same inputs always reach the same answer. Each page under Games, Dice being the longest, describes one.

Nonce

The bet counter. It starts at 0 under each new server seed and goes up by one per bet, so a thousand bets under the same pair of seeds give a thousand different results. A nonce used twice is a fault worth reporting; Nonce reuse and replay says why, and Nonce and cursor has the mechanics.

Profile

Which of the two schemes a round belongs to. Single-player is the seed, client seed and nonce arrangement used by nine of the ten games. Crash is the multiplayer profile, where everyone in the round shares one result and a hash chain replaces the seeds. Only single-player records carry the word as a field; the verifier recognises a Crash record by its game hash. How it works tells both stories without code.

Record

A small JSON object holding everything a stranger needs to recalculate one bet: game, parameters, commitment, client seed, nonce, cursor, result and time. It's what you paste into the verifier. The server seed is missing at first and gets added after rotation. See Record format.

Record Hash

A SHA-256 fingerprint of a record, taken over a strictly ordered form of its JSON. Two people can compare it to confirm they hold the same record without reading every field. It changes when the server seed is added, so compare like with like. See Canonical JSON and record hash.

Return (RTP)

Return to player: the fraction of all stakes a game pays back over a very long run, which is one minus the house edge. It's a property of the payout rules, not of the randomness. Verifying a bet tells you the result was fixed in advance and tells you nothing about the return. Settling bets shows how Galabet's demo calculates its own.

Reveal

Publishing a server seed that has been retired. Until this happens no bet under that seed can be checked by anybody, and after it every one of them can. See Rotation and reveal.

Rotation

Retiring the current server seed, revealing it, and starting a new one with the nonce back at 0. For a player it's the step that turns "I'll have to trust this" into "I can check this", and on Galabet's demo the player triggers it. See Rotation and reveal.

Salt

In Crash, a public value mixed into every round's result that didn't exist yet when the hash chain was published, such as the hash of a future block. It stops an operator from generating many chains and publishing the one that pays worst. See Crash.

Server Seed

The casino's secret share of the randomness: 32 random bytes written as 64 hex characters. It stays hidden while bets are being made under it and is revealed at rotation. While it's live the casino can calculate coming results but can't change them, a limit the threat model spells out. See Server seeds and commitments.

Signature

An optional Ed25519 signature the operator puts on a record, so that it can't later deny having issued it. A passing check shows the record matches the public key named inside it. Whether that key belongs to the casino is something to confirm elsewhere, and a signature made at bet time stops matching once the server seed is added. Signing records covers both.

Terminating Hash

The last link of a Crash hash chain and the only one published before the first round. Every game hash revealed afterwards has to hash back to it, link by link, which is what fixes the whole sequence of crash points in advance. See Crash.

Vector

A worked answer published with the project: given these inputs, the result must be exactly this. The vector files hold thousands of them, and their purpose is to show that an independent implementation, in any language, agrees with the reference one byte for byte. See Test vectors.

Verifier

Any program that recalculates a bet from its record. Galabet's is the page at /verify/, which runs in your browser and uploads nothing. Because the rules are public you don't have to use ours, and How to check a bet walks through a check from the player's side.