> ## Documentation Index
> Fetch the complete documentation index at: https://docs.luckie.bet/llms.txt
> Use this file to discover all available pages before exploring further.

# Provably fair

> Commit-reveal randomness that anyone can verify.

Luckie's outcomes are **provably fair**: the result is locked in before you play, and anyone
can recompute it afterward. The server cannot choose the winner.

## Commit → reveal

<Steps>
  <Step title="Commit (before the game)">
    When a room is created, the server generates a secret **server seed** and publishes
    `sha256(server_seed)` — a sealed commitment. The outcome is now fixed.
  </Step>

  <Step title="Play">
    Players join and deposit. Each entry also contributes a **client seed**, so no single party
    controls the inputs.
  </Step>

  <Step title="Reveal (after settle)">
    Once the game settles, the server **reveals** the original server seed. Anyone can hash it
    and confirm it matches the commitment published at the start.
  </Step>
</Steps>

## How the winner is derived

The winner is a deterministic function of inputs that were all fixed before the reveal:

```
winner = f(server_seed, client_seeds, nonce)
```

Because the server seed was committed up front, the server could not have known or chosen the
winner — and because it's revealed afterward, you can recompute the exact same result.

<Card title="Verify a game yourself" icon="magnifying-glass" href="/guides/verify-a-game">
  Step-by-step: pull a game's proof and recompute the winner.
</Card>
