GALABET FAIR / Read the table. Follow the deal.

Blackjack

Take a seat at a public-deck practice table. Hit, stand and follow each card from its place in the shoe to the final hand.

Interactive public-seed demonstration

A seated fox dealer slides a card out of a dealing shoe.
7♣7K♣K3♠3A♣AQ♥Q

Ready to deal

One deck. Dealer stands on all 17s. Aces count as 1 or 11. No split, double, insurance or chip settlement in this practice table.

Read the calculation ↓

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 Blackjack 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
51
Highest cursor
6
Server seed commitment
ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7
Open full verifier ↗

Revealed inputs and complete JSON
{
  "spec": "GFS/1.0",
  "profile": "single-player",
  "game": "blackjack",
  "params": {
    "decks": 1
  },
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42,
  "commitment": "ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7",
  "cursor": 6,
  "result": [
    "7C",
    "KC",
    "3S",
    "AC",
    "QH",
    "5H",
    "6S",
    "JC",
    "KH",
    "QS",
    "AD",
    "4C",
    "7H",
    "7D",
    "4S",
    "7S",
    "TS",
    "QD",
    "5S",
    "TC",
    "3D",
    "TD",
    "JH",
    "2D",
    "9S",
    "8S",
    "2C",
    "2H",
    "8H",
    "KS",
    "3H",
    "TH",
    "9H",
    "5C",
    "6H",
    "JS",
    "9C",
    "4D",
    "8C",
    "8D",
    "KD",
    "9D",
    "5D",
    "6D",
    "AH",
    "AS",
    "JD",
    "QC",
    "2S",
    "3C",
    "6C",
    "4H"
  ],
  "at": 0
}

THE SHUFFLE IS THE START

A deck has an order.
A hand has a history.

“Why did the dealer draw?” is a question about the table rules and the action sequence. The shuffle tells you which card comes next; the transcript explains why it was dealt.

DECK POSITION0 / 7♣1 / K♣2 / 3♠3 / A♣4 / Q♥

At this practice table

Deck
One 52-card deck; 51 shuffle fractions.
Aces
11 until that would bust the hand, then 1.
Dealer
Draws below 17; stands on hard and soft 17.
Actions
Hit or stand. Naturals are resolved on the deal.
Settlement
Result labels only. No chips, splits, doubles or insurance.

The core library returns the shuffled deck. This page adds a small public practice ruleset. A concealed, server-managed Blackjack session and its payout rules are separate integration work.

THE DEALER HAS SEVENTEEN

Why draw
another card?

An ace and a six make soft 17: the ace can still change from 11 to 1. A table that hits soft 17 takes another card; a table that stands on all 17s stops. Compare both policies against the same following cards.

Controlled example. Following cards: 4♥ · K♠ · 2♣.

S17 / STAND ON ALL 17s
A♣A6♦6

Stand without drawing

Start at 17 with a usable ace. Finish at 17 soft.

followingCardsUsed: 0
H17 / HIT SOFT 17
A♣A6♦64♥4

Draw 4♥

Start at 17 with a usable ace. Finish at 21 soft.

followingCardsUsed: 1

The dealer policy changes card consumption. Save the policy with the hand; a deck alone cannot explain every action. The public practice table above uses S17.

A HAND YOU CAN RECONSTRUCT

Keep the rule and the card position on the same line.

The Galabet library fixes the deck order. A game engine decides who receives the next card. For a split hand, each branch needs its own hand identifier and stake, while both continue to consume the same ordered deck.

Opening pair / 8♣ 8♦
HAND A8♣ + next card
handId: A
HAND B8♦ + following card
handId: B

This is the record structure an implementation must support. Split and double actions are not enabled at the practice table above.

Try the dealer analysis endpoint.

It accepts explicit public cards and returns the draw steps, final total and rule version. It runs the same card analysis used in this comparison. It does not create a concealed game or settle a stake.

Bash / public dealer analysis
curl -X POST http://localhost:3000/api/demo/games/analyze/blackjack \
  -H 'Content-Type: application/json' \
  -d '{"hand":["AC","6D"],"following":["4H","KS"],"hitSoft17":true}'

Expected for this request: H17, one card drawn, total 21, complete true. Requires the local demo API on port 3000.

REFERENCE EXAMPLE / NONCE 42

Inspect a disclosed deck prefix

JavaScript · shuffle inspection
import { play } from '@galabet/fair';

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

const { result: deck, floats } = await play({
  game: 'blackjack', ...seeds, params: { decks: 1 }
});
console.log('first five', deck.slice(0, 5));
console.log('shuffle fractions', floats.length);
EXPECTED OUTPUT
first five         7♣  K♣  3♠  A♣  Q♥
shuffle fractions  51

A deck prefix is not a Blackjack settlement. Dealing order, permitted actions and payouts need a defined rules engine.