Go-live checklist
Before applying for production
Section titled “Before applying for production”-
operator-conformancepasses with 0 failures against your sandbox wallet (Sandbox self-test). - Launch codes are single-use and expire within 5 minutes; your App never passes its own access token to the game.
- Signature verification uses the raw body, a constant-time comparison and a 300 s window, and accepts several secrets (rotation).
- Idempotency by
transaction_idcovers failures too;duplicate_mismatchis detected. - Rollbacks record tombstones; a late debit after its rollback returns
rolled_back. - Several debits per player per round are accepted; nothing deduplicates by round.
- Credits and rollbacks never check session, logout or ban state.
- Batch responses contain one result per item, in order; HTTP 200 only when every item has a result.
- 429 / 503 responses carry
Retry-After; your declared maximum batch size and concurrency match what your wallet can sustain at peak. - Transactions are kept for at least 180 days.
- The Host Bridge answers
getConfigwithin 8 s, handlesgameLoaded,gameRecharge,destroy, and callswindow.walletUpdate()after a top-up. - Real rounds played from the App in the sandbox reconcile with your ledger.
Review
Section titled “Review”Click Apply for production on Console → Overview. Production stays in Pending review until we have checked your integration and your commercial terms (coin rate and revenue share) are set. Once set, the terms are shown on Console → Overview; you cannot edit them.
Switching on production
Section titled “Switching on production”- Configure Console → Integration, Production tab: Wallet URL, Currency, Decimals, Max batch size, Max concurrent requests, then Generate secret.
- Generate a separate production signing secret and deploy it to your wallet.
- Enable the games you want and set their target margin (1%–10%) for production.
- Top up your prepaid balance (Console → Top-ups); top-ups are confirmed manually. Consumption, service fees and your balance ledger are under Console → Billing.
- Change your App’s entry URLs from
sandbox.sentosatower.comtogames.sentosatower.com(theopvalue stays the same). - Open each enabled game once in production and check the first transactions in your ledger.
- Set up monitoring on your wallet endpoints: latency, 4xx/5xx rate,
retryandinsufficient_fundsshare.
Billing
Section titled “Billing”- You prepay in USD. Player coins always stay in your own wallet.
- Every day is billed for the Singapore calendar day (Asia/Singapore, UTC+8), shortly after midnight SGT.
- Consumed coins for a day = total stakes − total payouts across all coin games (board games are free). It can be negative.
- The day’s fee = consumed coins converted to USD at your coin rate, multiplied by your revenue share. A negative fee is credited back to your balance.
- The sandbox is never billed.
- If your balance falls to zero or below, a 3-day grace period starts. If it is still not positive afterwards, production is suspended: new game sessions are refused (
operator_suspended) while rounds in progress settle normally. A confirmed top-up that makes the balance positive resumes production automatically. We email you when the balance drops below about one week of average fees.