Integration brief · for engineering

Integrate once.
The house always settles.

The one-page technical picture your engineers need before the kickoff call: the request path, the wallet contract, the fairness math, and the exact route from sandbox to a real production round. No SDK lock-in — a REST endpoint and a gRPC wallet you already know how to build.

Bet transport
RESTPOST /api/v1/bet · HMAC
Wallet transport
gRPCmTLS · IP allow-list
Settle round-trip
<3msincl. 2 wallet ops
Time to first bet
Hourssandbox · play money
01 · Architecture at a glance

Two transports, one money path

Bets ride REST; money rides gRPC. Both call the same bet service, the same idempotency and nonce machinery — a round placed over one replays over the other. Nothing about your balances ever leaves your side of the wire.

Bets · inbound

REST /api/v1/bet

One JSON endpoint for all 68 games. Your backend signs each call HMAC-SHA256 (X-API-Key / X-Timestamp / X-Signature, ±30s window). Amounts are decimal strings — no floats, ever.

Wallet + provisioning · outbound

gRPC over mTLS

The RGS calls your wallet over gRPC with mutual-TLS. Unary request/response on the money path — every call carries its full idempotent identity (roundId / actionId / requestId).

Isolation

Per-operator edge

Each operator gets its own edge with an IP allow-list. Your keys, your currencies, your granted game set — no shared blast radius with other operators.

Custody

Zero balance held

A pure-Go engine that never touches player money. We own the RNG, the math and the audit trail; you own every balance. Settlement is a call into your ledger.

02 · The wallet contract

Two capabilities. That is the whole surface.

Implement two gRPC methods and you are wired. The second one is the difference between three round-trips and one.

rpc · reconciliation

GetTransaction

The source of truth for recovery. On any timeout — which always means UNKNOWN, never failure — you query by operation id to learn whether a debit or credit actually landed. Idempotent, side-effect-free.

  • Keyed by requestId / roundId
  • Drives day-close settlement & export reconciliation
  • Lets a retry re-derive the exact prior verdict
rpc · settlement

Atomic SettleBet

For instant games, the debit-then-credit pair collapses into one call carrying the gross stake and gross win. The wallet applies both legs both-or-neither and keeps two ledger records — turnover and GGR stay exact. It halves wallet round-trips on most games.

  • One request settles win and loss
  • Two ledger records: debit + credit, atomic
  • Settlement mode durable before any wallet call
capability · ATOMIC_SETTLE_V1
03 · The bet, in order

One round, start to settle

The full life of a single instant bet — from the player's tap to a settled, verifiable round. The money path is the two arrows into your wallet.

Player client browser · session token Operator backend your server · HMAC FastGamesAPI · RGS math · RNG · no custody Operator wallet gRPC · mTLS place bet · stake 1 POST /api/v1/bet · HMAC-signed 2 3 evaluate — deterministic HMAC-SHA256(seed, cs:nonce) SettleBet · ATOMIC_SETTLE_V1 4 debit + credit · one atomic call settled · new balance 5 round result + server_seed 6 render outcome · verifiable 7
04 · Provably-fair verification

Commit before play. Reveal after.

Every outcome is locked before the bet and recomputable after it — by anyone, without an account. This is a support-ticket deflector as much as a fairness guarantee.

1

Commit

sha256(server_seed)

Published before the round. The outcome is bound before play begins.

2

Play

HMAC-SHA256(
  server_seed,
  client_seed:nonce)

Deterministic and replayable. Impossible to influence from the browser.

3

Reveal

server_seed → shown

Seed rotation reveals the server seed. The commit hash now checks out.

4

Verify

POST /api/v1/seed/verify

Recompute any historical round at a public endpoint. Shareable dispute pages.

05 · Dynamic RTP

Set the edge at game-init. Freeze it per round.

You choose the return-to-player per game when you launch it; the exact value is snapshotted into every round so the audit trail is unambiguous. Never above 100%.

97.00% · this launch
Configurable 85.00 – 99.00% per game · snapshotted into every round · deterministic · never exceeds 100%.
Per game. Each title carries its own RTP, set at game-init.
Per player. Different players can run different RTP on one integration.
Per round. The value in force is written into the round record, forever.
06 · On the wire

A real bet, request and response

One signed POST in; a settled, verifiable round out. Amounts are decimal strings at currency-exponent precision.

request · POST /api/v1/bet
POST /api/v1/bet HTTP/1.1 Host: fastgameapi.com X-API-Key: pk_live_9f3c… X-Timestamp: 1756039200 X-Signature: 4b1e… // HMAC over // METHOD\nPATH\nTS\nBODY Content-Type: application/json { "roundId": "rnd_01J8ZQ…", // idempotency "gameId": "dice", "currency": "USD", "stake": "10.00", "clientSeed": "a7f2…", "betType": { "target": "49.50", "side": "under" } }
response · 200 OK
HTTP/1.1 200 OK { "roundId": "rnd_01J8ZQ…", "status": "completed", "stake": "10.00", "payout": "19.80", // 1.98× · 9900/5000 "multiplier": "1.98", "rtp": "99.00", // snapshot, this round "outcome": { "roll": "12.47", win: true }, "fair": { "serverSeedHash": "sha256:8c1d…", "nonce": 42, "verify": "/api/v1/seed/verify" }, "balance": "1240.00" // from your wallet }
07 · Integration path

Sandbox to production, one lane

Build the whole thing against play money first. Real money is two gates away — and neither gate is a rewrite.

STEP 1

Sandbox

Instant access with play money. No contract, no card. Build the full flow with the built-in demo wallet.

STEP 2

Conformance suite

Implement GetTransaction + SettleBet over gRPC. Self-service certification with expected-vs-received diffs — run it to all-pass.

STEP 3

Production wiring

Fill your production wallet URL + webhook, set currencies and per-currency bet limits, pin the IP allow-list.

Gate 1 · conformance
STEP 4

Go live

Request go-live; a review confirms the wallet and fairness probes, then the switch flips to pk_live_.

Gate 2 · go-live review
Time to first bet

A real round in hours, not a quarter.

One REST endpoint, one gRPC wallet, a conformance suite that tells you exactly what to fix. The house always settles — and it settles fast.