Go-live checklist
A short checklist to run through before your first real-money player session. Every item links back to where it's explained in full.
Credentials & secrets
- [ ] Your operator tenant ID and HMAC secret are stored server-side only — never in a browser bundle, mobile app, or client-visible config. See Signing & authentication.
- [ ] The secret is read from a secrets manager or environment variable, not committed to source control.
Clock & networking
- [ ] The server that signs your outbound calls (and verifies inbound wallet callbacks) has its clock synced via NTP. A skewed clock is the most common cause of an otherwise-unexplained
401— see Environments & base URLs: Clock sync. - [ ] You're pointed at the platform's
baseUrlfor the environment you mean to go live against, not a pre-production one — see Environments & base URLs.
Registered with the platform
- [ ] Your wallet callback base URL is registered through your tenant's portal and already resolves to a running implementation before you save it — see Registering your wallet callback URL.
- [ ] If your typical wallet response time is close to or over 5000ms, you've raised the callback timeout with the platform admin team rather than discovering
TIMED_OUTs in production.
Wallet callback implementation
- [ ]
POST /v1/wallet/transactionandGET /v1/wallet/balanceboth verify the platform's signature (full URI, not just path) before trusting the request — see Signing & authentication. - [ ] Repeated calls with the same
transactionIdreturn the exact same cached response rather than re-applying the balance change — see Idempotency. This is the single most load-bearing property in the whole integration. - [ ]
DECLINEDis only ever returned forBET—WIN,ROLLBACK, andADJUSTMENTeither succeed withOKor fail the HTTP call outright. - [ ]
GET /v1/wallet/balanceis fast and reliable — it's called live by game studios through the platform, not just as a background check. - [ ] You've run at least one
ROLLBACKthrough your implementation, not justBET/WIN— it's the path least exercised by a happy-path demo.
Launch integration
- [ ]
currencyand (if used)languageare validated against the target game'sGameSummarybefore you call launch, so a mismatch fails fast on your side instead of surfacing as an opaque400. - [ ] You've handled the
403risk-control response — seePOST /v1/operator/games/launch— with a player-facing message, not just a generic error. - [ ] Your
429handling honors theRetry-Afterheader rather than retrying immediately — see Errors & retry.
Shell bridge
- [ ] Your
postMessagelistener validatesevent.origin,event.source, and the envelope marker before trusting a message — see Shell bridge. - [ ]
SESSION_REVOKEDis handled distinctly fromEXIT_GAME— a player kicked mid-game (by you, or by risk control) sees a clear message instead of a silent return to your lobby.
Before your first real session
- [ ] You've completed one full
REAL-mode session end-to-end against the platform's pre-production environment (if available) — sign a launch, embed, bet, confirm your wallet settled it, confirm the balance inBET_ENDmatches your ledger. See Testing.