Click to Learn More About Provably Fair & How It Works

Want to learn more? Select any of the questions below to read more about how things work.

What is Provably Fair?

A provably fair system is one that uses a client seed, server seed, and nonce to generate random results which can be verifiable by the end user essentially providing true transparency in gambling, something that is next to impossible at a land based casino. With such systems, you'll see that there are very limited methods for a casino to "cheat" you while using a properly implemented PF (provably fair) algorithm. Any attempts to do so would be clearly visible to the player and easily spotted. An example of this would be tampering with the house edge. The house edge is baked into the games at Stake, so in a game such as dice, changing the house edge would cause the number rolled to not match up with the specified payout. To see the house edge of any game, click on "How Was This Result Calculated?" below the result of any bet verification.

What Methods Can Casinos Use to Compromise Fairness?

  1. 1. Skipping Nonces - This method is about the only reasonable way for a crypto casino to “rig” your rolls while still using a provably fair algorithm for random result generation. For those that aren’t familiar with what a nonce is, a nonce in this particular situation is essentially the ID detailing the order of your bets for that particular seed pair. Your first bet starts with zero, and each succeeding bet increases the nonce by 1. A nonce ensures that you are able to transparently verify the order of the bet results so that a casino can’t switch them around. With this being said, one theoretical method of rigging rolls would be to skip certain nonces when you press roll, effectively allowing a site to pick and choose what bets to give you. Luckily for the player, a casino with a properly implemented provably fair algorithm makes it impossible to hide such an action on the server side without also displaying conflicting results to the player. To expose such a scheme being ran by a nefarious casino, all you need to do is periodically spot check your roll results using a roll verifier. I recommend using an independently ran verifier site/platform just so you know that the results aren’t being manipulated in any way.

  2. 2. Forcing the use of a specific client/seed pair or displaying false validation. Unlike Stake.com, certain sites may force you to use specific characters in your client seed or may force you to use a generated client seed. Be very weary of such sites - remember that the seed pair is essential in the randomization process, and if a known client seed is paired with a proper server seed, results can essentially be pre-determined in the houses favor.

How Can Betsesh Help?

Although a provably fair system is implemented to be fair and verifiable, it only works if you actually verify your bets from time to time. Here at Betsesh, we provide you with an independent verification platform to spot check your bets. Our system allows you to verify any bet from any game on Stake without the need for any connection to them. Furthermore, if you ever find a discrepancy, we’ll do the mediation and figure out what’s going on for you. We’re committed to ensuring that there's continued accountability at Stake.com for the players, and we’ll continue to offer services which further this goal. Should you have any questions or discrepancies, please use the "Have Feedback/Questions" button in the bottom right corner to contact us directly.

Bet Verifier (v1.0)

> Fill in all fields above to verify your bet

X

How does Baccarat get its results?

Baccarat is a card-based game with 52 unique possible outcomes for each card draw on both player and banker.

How Each Card is Calculated ->
X

How is Each Card Calculated?

To calculate each card, Stake multiplies each randomly generated float by 52, and then translates that result into a particular card, based on the following index:

// Index of 0 to 51 : ♦2 to ♣A
const CARDS = [
♦2, ♥2, ♠2, ♣2, ♦3, ♥3, ♠3, ♣3, ♦4, ♥4,
♠4, ♣4, ♦5, ♥5, ♠5, ♣5, ♦6, ♥6, ♠6, ♣6,
♦7, ♥7, ♠7, ♣7, ♦8, ♥8, ♠8, ♣8, ♦9, ♥9,
♠9, ♣9, ♦10, ♥10, ♠10, ♣10, ♦J, ♥J, ♠J,
♣J, ♦Q, ♥Q, ♠Q, ♣Q, ♦K, ♥K, ♠K, ♣K, ♦A,
♥A, ♠A, ♣A ];

// Game event translation
const card = CARDS[Math.floor(float * 52)];

Check Game Verification ->
X

Is Baccarat at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Baccarat at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Blackjack get its results?

Blackjack is a card-based game with 52 unique possible outcomes for each card draw on both player and the dealer.

How Each Card is Calculated ->
X

How is Each Card Calculated?

To calculate each card, Stake multiplies each randomly generated float by 52, and then translates that result into a particular card, based on the following index:

// Index of 0 to 51 : ♦2 to ♣A
const CARDS = [
♦2, ♥2, ♠2, ♣2, ♦3, ♥3, ♠3, ♣3, ♦4, ♥4,
♠4, ♣4, ♦5, ♥5, ♠5, ♣5, ♦6, ♥6, ♠6, ♣6,
♦7, ♥7, ♠7, ♣7, ♦8, ♥8, ♠8, ♣8, ♦9, ♥9,
♠9, ♣9, ♦10, ♥10, ♠10, ♣10, ♦J, ♥J, ♠J,
♣J, ♦Q, ♥Q, ♠Q, ♣Q, ♦K, ♥K, ♠K, ♣K, ♦A,
♥A, ♠A, ♣A ];

// Game event translation
const card = CARDS[Math.floor(float * 52)];

Check Game Verification ->
X

Is Blackjack at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Blackjack at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Crash get its results?

Crash is a multiplayer, range-based game with an uncapped theoretical floor for each round result.

How Game Results are Generated ->
X

How Are Results Generated?

To calculate each round result in Crash, Stake uses a block hash in the future from when this formula to generate game results in has was released:

const gameHash = hashChain.pop()
const hmac = createHmac('sha256', gameHash);

// blockHash is the hash of bitcoin block #584,500
hmac.update(blockHash);

const hex = hmac.digest('hex').substr(0, 8);
const int = parseInt(hex, 16);

// 0.01 will result in 1% house edge with a lowest crashpoint of 1
const crashpoint = Math.max(1, (2 ** 32 / (int + 1)) * (1 - 0.01))


Check Game Verification ->
X

Is Crash at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Crash at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Diamond Poker get its results?

Diamond Poker is a player vs dealer game with 7 possible outcomes in the form of gems.

How Game Results are Generated ->
X

How Are Results Generated?

To calculate each round result in Diamond Poker, Stake multiplies each generated float by 7 before being translated into a correspoding gem using the following index:

// Index of 0 to 6 : green to blue
const GEMS = [ green, purple, yellow, red, cyan, orange, blue ];

// Game event translation
const gem = GEMS[Math.floor(float * 7)];

Check Game Verification ->
X

Is Diamond Poker at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Diamond Poker at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Dice get its results?

Dice is a range-based game with a range of 10,001 possible outcomes for each round.

How Game Results are Generated ->
X

How Are Results Generated?

To calculate each round result in Dice, Stake uses a very simple formula - It multiplies the float by number of possible outcomes and then dividing by 100 so that the resulting number fits the constraints of their version of dice:

// Game event translation
const roll = (float * 10001) / 100;

Check Game Verification ->
X

Is Dice at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Dice at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Hilo get its results?

Dice is a card-based game with 52 unique possible outcomes for each card draw.

How Each Card is Generated ->
X

How Are Results Generated?

To calculate each card, a randomly generated float is multiplied by 52, and then the result is translated into a particular card, based on the following index:

// Index of 0 to 51 : ♦2 to ♣A
const CARDS = [
♦2, ♥2, ♠2, ♣2, ♦3, ♥3, ♠3, ♣3, ♦4, ♥4,
♠4, ♣4, ♦5, ♥5, ♠5, ♣5, ♦6, ♥6, ♠6, ♣6,
♦7, ♥7, ♠7, ♣7, ♦8, ♥8, ♠8, ♣8, ♦9, ♥9,
♠9, ♣9, ♦10, ♥10, ♠10, ♣10, ♦J, ♥J, ♠J,
♣J, ♦Q, ♥Q, ♠Q, ♣Q, ♦K, ♥K, ♠K, ♣K, ♦A,
♥A, ♠A, ♣A ];

// Game event translation
const card = CARDS[Math.floor(float * 52)];

Check Game Verification ->
X

Is Hilo at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Hilo at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Keno get its results?

Keno is a number selection game with 10 possible game events in the form of hits on a board.

How Each Round is Generated ->
X

How Are Results Generated?

To calculate each of the 10 possible game events, Stake multiplies each float by the number of possible unique squares that exist. Once a hit has been placed, it cannot be chosen again, which changes the pool size of the possible outcomes. This is done by subtracting the size of possible maximum outcomes by 1 for each iteration of game event result generated using the corresponding float provided, using the following index:

// Index of 0 to 39 : 1 to 40
const SQUARES = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40 ];

const hit = SQUARES[Math.floor(float * 40)];

Check Game Verification ->
X

Is Keno at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Keno at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Limbo get its results?

Limbo is a range-based game with a capped max payout of 100,000x and an unlimited max result.

How Each Round is Generated ->
X

How Are Results Generated?

To calculate results in Limbo, Stake uses a two-step process. First, the float is multiplied by both the maximum possible multiplier (100,000) and the house edge of 0.99 (or 1%). Second, the maximum possible multiplier is divided by the result of the first step to create the game event in the form of a crash point:

// Game event translation w/ house edge of 1%
const floatPoint = 1e8 / (float * 1e8) * houseEdge;

// Crash point rounded down to required denominator
const crashPoint = Math.floor(floatPoint * 100) / 100;

Check Game Verification ->
X

Is Limbo at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Limbo at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Mines get its results?

Mines is a tile-based game with 24 separate game events in the form of mines on a board.

How Each Round is Generated ->
X

How Are Results Generated?

To calculate the position of each mine, a float is multiplied by the number of possible unique tiles still remaining on the board. This is done by subtracting the number of tiles remaining by 1 for each iteration of game event result generated using the corresponding float provided. The location of the mine is then plotted using a grid position from left to right, top to bottom.

Check Game Verification ->
X

Is Mines at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Mines at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Plinko get its results?

Plinko is a path-based game where the generated outcome is based on the path of a falling ball.

How Ball Path is Generated ->
X

How Are Results Generated?

In Plinko, there are only two possible directions for each game event (left or right) - The translation is done by multiplying each float by 2, which maps to the following index:

// Index of 0 to 1 : left to right
const DIRECTIONS = [ left, right ];

// Game event translation
const direction = CARDS[Math.floor(float * 2)];

Check Game Verification ->
X

Is Plinko at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Plinko at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Roulette get its results?

Roulette is a wheel-based game where the outcome is based on a selected pocket each round.

How Pocket Result is Generated ->
X

How Are Results Generated?

In Stake's Roulette, each result is calculated by multiplying the float by 37 and then translated into a corresponding pocket using the following index:

// Index of 0 to 36
const POCKETS = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36 ];

// Game event translation
const pocket = POCKETS[Math.floor(float * 37)];

Check Game Verification ->
X

Is Roulette at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Roulette at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Slots get its results?

Slots is a reel-based game where a game even determines the placement for each of the 5 reels.

How Reels are Generated ->
X

How Are Reel Results Generated?

In Stake's version of Slots, a game event number is calculated by multiplying the float by the possible outcomes in the reel. The first 4 reels have a length of 30 possible outcomes, while the last reel has 41 possible outcomes. The game event determines the central stop position for each reel. Slots consists of 5 game event numbers, except in the case of a bonus/free spins round where more are generated.

Check Game Verification ->
X

Is Slots at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Slots at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Video Poker get its results?

Video Poker is a card-based game that involves 52 separate game events in the form of cards in a deck.

How Each Card is Generated ->
X

How Are Results Generated?

To generate cards in Stake's Video Poker, each float is multiplied by the number of possible cards still remaining in the deck. This is done by subtracting the number of cards remaining by 1 for each iteration of game event result generated using the corresponding float provided. This is accomplished by selecting a card from the following index:

// Index of 0 to 51 : ♦2 to ♣A
const CARDS = [
♦2, ♥2, ♠2, ♣2, ♦3, ♥3, ♠3, ♣3, ♦4, ♥4,
♠4, ♣4, ♦5, ♥5, ♠5, ♣5, ♦6, ♥6, ♠6, ♣6,
♦7, ♥7, ♠7, ♣7, ♦8, ♥8, ♠8, ♣8, ♦9, ♥9,
♠9, ♣9, ♦10, ♥10, ♠10, ♣10, ♦J, ♥J, ♠J,
♣J, ♦Q, ♥Q, ♠Q, ♣Q, ♦K, ♥K, ♠K, ♣K, ♦A,
♥A, ♠A, ♣A
];

// Game event translation
const card = CARDS[Math.floor(float * 52)];

Check Game Verification ->
X

Is Video Poker at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Video Poker at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.

X

How does Wheel get its results?

Wheel is a wheel-based game where the outcome is based on a randomly selected segment each round.

How Each Result is Generated ->
X

How Are Results Generated?

In Stake's wheel, the game event number is calculated by multiplying the float by the possible outcomes in the segment. This is then used to determine the game event result as a multiplier, using the following index:

// Index per payout configuration
const PAYOUTS = {
  '10': {
    low: [ 1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0 ],
    medium: [ 0, 1.9, 0, 1.5, 0, 2, 0, 1.5, 0, 3 ],
    high: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9.9 ]
  },
  '20': {
    low: [
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0
    ],
    medium: [
      1.5, 0, 2, 0, 2, 0, 2, 0, 1.5, 0,
      3, 0, 1.8, 0, 2, 0, 2, 0, 2, 0
    ],
    high: [
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 19.8
    ]
  },
  '30': {
    low: [
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0
    ],
    medium: [
      1.5, 0, 1.5, 0, 2, 0, 1.5, 0, 2, 0,
      2, 0, 1.5, 0, 3, 0, 1.5, 0, 2, 0,
      2, 0, 1.7, 0, 4, 0, 1.5, 0, 2, 0
    ],
    high: [
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 29.7
    ]
  },
  '40': {
    low: [
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0
    ],
    medium: [
      2, 0, 3, 0, 2, 0, 1.5, 0, 3, 0,
      1.5, 0, 1.5, 0, 2, 0, 1.5, 0, 3, 0,
      1.5, 0, 2, 0, 2, 0, 1.6, 0, 2, 0,
      1.5, 0, 3, 0, 1.5, 0, 2, 0, 1.5, 0
    ],
    high: [
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 39.6
    ]
  },
  '50': {
    low: [
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0,
      1.5, 1.2, 1.2, 1.2, 0, 1.2, 1.2, 1.2, 1.2, 0
    ],
    medium: [
      2, 0, 1.5, 0, 2, 0, 1.5, 0, 3, 0,
      1.5, 0, 1.5, 0, 2, 0, 1.5, 0, 3, 0,
      1.5, 0, 2, 0, 1.5, 0, 2, 0, 2, 0,
      1.5, 0, 3, 0, 1.5, 0, 2, 0, 1.5, 0,
      1.5, 0, 5, 0, 1.5, 0, 2, 0, 1.5, 0
    ],
    high: [
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 49.5
    ]
  }
};

// Game event translation
const spin = PAYOUTS[segments][risk][float * segments];
Check Game Verification ->
X

Is Wheel at Stake fair?

Fairness Check: VALID/FAIR

Last Checked: Feb 20, 2020

Betsesh has independently verified that Wheel at Stake.com generates random, unmanipulated results using a provably fair system - Should you ever see the status above as "NOT VALID / ISSUES DETECTED" please be especially vigilant about verifying your bets to ensure game fairness.