Domin8developer docs

06 — ship it

Go live

Run this list before we flip your game to real money.

Integration

  • Unity client is a WebGL build; backend ships as a Dockerfile; every secret comes from env vars.
  • Backend holds BANK_API_KEY + RNG_API_KEY; the Unity client holds neither.
  • Client reads ?session= / ?token= from the launch URL; backend verifies the JWT and takes user_id from sub — never from the client.
  • Every spin: /bet/open/random(×N) → evaluate → /bet/settle.
  • bet_id is unique per spin and reused on retries; a mid-spin crash replays cleanly.
  • Amounts are decimal strings ("5", not atomic units).
  • A failed /random never settles a win.
  • Losing spins are settled too (payout: "0") — no bet is ever left pending.
  • game-history is reported to the hub once per round, win or loss.
  • Free play works without a single bank call; domin8:play-for-real is wired.
  • domin8:ready, domin8:game-over and domin8:mute are wired.
  • A fairness panel exposes the seed hash, client seed, nonce and rotate-and-verify.

What to send us

  • The WebGL build (or a repo we can build).
  • The backend repo with its Dockerfile.
  • Game name, a thumbnail for the arcade, and your target RTP per mode (base game and every buy bonus) — we monitor realized RTP in production.
  • The game_model / game_id label you picked (stable, lowercase).

That's it. We deploy to staging with test balances, you play it until it feels right, then we register it in the arcade.