OPDUEL

Fairness

OPDuel Originals

Limbo

Plinko

Keno

Roulette

Mines

Blackjack

Roll

Dice

Provably Fair Roll

Roll is a multiplayer wheel game with 15 cells, each containing a symbol with an associated multiplier. Because all players share the same round, Roll uses a different fairness system than other OPDuel Originals.

Verify Game Fairness

Instead of individual client seeds, Roll uses EOS blockchain block IDs as a public source of randomness that no one can predict or manipulate.

The Algorithm

// Roll uses swapped inputs compared to other games:
// - Secret (revealed after round) becomes the HMAC key
// - EOS Block ID goes in the message

const message = `${eosBlockId}:0:0`;
const hash = HMAC_SHA256(secret, message);

// Extract float from first 4 bytes
const bytes = hash.slice(0, 4);
let float = 0;
for (let i = 0; i < 4; i++) {
    float += bytes[i] / Math.pow(256, i + 1);
}

// Scale to wheel (15 cells)
const cellIndex = Math.floor(float * 15);

How It Works

  1. Before the round - The server commits to a hashed secret
  2. Round starts - Players place bets within a time window
  3. EOS block selected - A future EOS blockchain block is chosen (unpredictable until it's mined)
  4. Result calculated - The secret and EOS block ID are combined to determine the winning cell
  5. Secret revealed - Players can verify the outcome using the revealed secret and public block ID

This system ensures neither the server nor players can predict or influence the outcome.

The Wheel (15 Cells)

CellSymbolColorMultiplier
0SkullGreen14x
1HatOrange2x / 7x
2SwordsBlue2x
3DragonOrange2x
4SwordsBlue2x
5DragonOrange2x
6SwordsBlue2x
7DragonOrange2x
8SwordsBlue2x
9DragonOrange2x
10SwordsBlue2x
11DragonOrange2x
12SwordsBlue2x
13DragonOrange2x
14HatBlue2x / 7x

Betting Options

BetWins OnCellsMultiplier
OrangeDragons + Orange Hat7 cells2x
BlueSwords + Blue Hat7 cells2x
HatsEither hat (cells 1, 14)2 cells7x
SkullGreen skull (cell 0)1 cell14x

Note: Hats pay 2x if you bet on their color, or 7x if you specifically bet on Hats.

Example

Given:

  • EOS Block ID: 1ba95ab0ebdac8a211fef46580751c561eea9c1408205219ce03d76985e38362
  • Secret: d930759d7297a524a2eff4746ffac68f44489bf554cf177acd81846162ea8678

The hash produces bytes: [136, 248, 217, 140] (hex: 88 f8 d9 8c)

hash = HMAC_SHA256(secret, "eosBlockId:0:0")

float = 136/256 + 248/256² + 217/256³ + 140/256⁴
      = 0.53125 + 0.003784 + 0.0000129 + 0.00000003
      = 0.5350471465

cellIndex = floor(0.5350471465 × 15)
          = floor(8.025707)
          = 8

Cell 8 is Blue Swords - Blue bets win at 2x.

Why EOS Blockchain?

The EOS blockchain provides:

  1. Public verifiability - Anyone can look up the block ID on blockchain explorers
  2. Unpredictability - Block contents are determined by decentralized miners
  3. Immutability - Once mined, blocks cannot be changed
  4. Fast finality - EOS produces blocks quickly, keeping game rounds short

This makes Roll provably fair for multiplayer gameplay where individual client seeds aren't practical.

Verify rounds by selecting the "My Bets" tab at the bottom of the page while playing, then click on the round you want to verify. You can also check the EOS block ID on any blockchain explorer and use the revealed secret to recalculate the result.

    CashierHomeGamesChat





    OPDUEL