A fox mechanic inspects the pointer of an upright indexing wheel.
0×1.5×1.2×1.5×0×2×1.2×1.5×0×1×6SEGMENT

GALABET FAIR / A place for every value

Wheel

Ten equal segments. One recorded index. Bring the selected segment to the pointer and read the value attached to that position.

Interactive public-seed demonstration

INDEX 5 / SEGMENT 62.00×

Value in the example configuration.

Read all ten segment values
  1. Segment 10.00×
  2. Segment 21.50×
  3. Segment 31.20×
  4. Segment 41.50×
  5. Segment 50.00×
  6. Segment 62.00×
  7. Segment 71.20×
  8. Segment 81.50×
  9. Segment 90.00×
  10. Segment 101.00×
Read the calculation ↓

The mapper selects an index. The configured table assigns its value. This example does not settle chips.

Public inputs. Real calculations.
Each new example advances the nonce and runs @galabet/fair in your browser. Results are reproducible, and the seed is visible to everyone.

Inspect this Wheel result · nonce 42

THIS EXAMPLE / NONCE 42

Keep the inputs.
Check the result.

This demonstration uses a public server seed. Its record checks the calculation; it does not establish when a live service published a commitment.

Client seed
galabet
Fractions consumed
1
Highest cursor
0
Server seed commitment
ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7
Open full verifier ↗

Revealed inputs and complete JSON
{
  "spec": "GFS/1.0",
  "profile": "single-player",
  "game": "wheel",
  "params": {
    "segments": 10
  },
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42,
  "commitment": "ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7",
  "cursor": 0,
  "result": 5,
  "at": 0
}

THE INDEX IS THE CONNECTION

Sixth segment.
Index five.

The pointer, record and configured value should refer to the same position. Showing both the zero-based index and the human-facing segment number prevents a quiet off-by-one error.

0.00
0.11
0.22
0.33
0.44
0.55
0.66
0.77
0.88
0.99
floor(0.5611712262… × 10) = 5payouts[5] → 2.00×

The sixth interval runs from 0.5 up to, but not including, 0.6. This example fraction falls inside it.

Repeated values are separate segments: three positions can carry the same value while still having different indices. The diagram reads the same ten-entry configuration as the written result.

POSITIONS AND REPEATED VALUES

Ten equal chances.
Five different values.

The current wheel has ten equal segments, but only five distinct multipliers. Three positions carry zero and one carries 2×. Group the values to see why selecting a segment and selecting a value are different questions.

Read the positions together.

Segment 6 is index 5. Its configured value is 2.00×.

0.00×
3 of 10Segments 1, 5, 9
1.00×
1 of 10Segments 10
1.20×
2 of 10Segments 3, 7
1.50×
3 of 10Segments 2, 4, 8
2.00×
1 of 10Segments 6
WHEN A TABLE CHANGES

Index 5 only means 2× in this configuration.

Reordering the values while retaining an old result changes what the pointer appears to mean. The renderer and settlement service need the same versioned table. A completed record should retain that version with the selected index.

Bash / current demo rules
curl http://localhost:3000/api/demo/games/rules

The response includes the wheel values and calculated table return, together with the rule version. The current average is 0.99× before whole-chip rounding.

REFERENCE EXAMPLE / NONCE 42

Look up the selected segment

JavaScript · configuration check
import { play } from '@galabet/fair';

// Public example inputs. Never publish an active server seed.
const seeds = {
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42
};

const payouts = [0, 1.5, 1.2, 1.5, 0, 2, 1.2, 1.5, 0, 1];
const { result: index } = await play({
  game: 'wheel', ...seeds, params: { segments: payouts.length }
});
console.log({ index, segment: index + 1, multiplier: payouts[index] });
EXPECTED OUTPUT
index       5
segment     6 of 10
multiplier  2.00×

This uses the current demo’s ten-segment configuration. The library’s more general mapper does not imply arbitrary payout tables are implemented.