Integration guide
Add your game
This guide takes your slot from zero to a first real spin on the Domin8 arcade. The split is simple: your game owns the presentation and the paytable — reels, features, RTP, animations. The platform owns the money and the randomness — two small REST services called the bank and the RNG. Your game never computes a balance and never rolls its own dice.
What you ship, what we host
| You deliver | What it is |
|---|---|
| Unity WebGL build | The game runs inside an iframe on the hub (desktop + mobile web), so it must be a WebGL build — static files, no secrets inside. |
| A thin game backend | Your spin logic (paytable, RTP, feature math) behind a small HTTP API, shipped as a Dockerfile. Any stack you like. |
We deploy both on our infrastructure under a *.domin8.fun subdomain and register the game in the arcade. The API keys that move money stay on our servers — your backend reads them from environment variables at deploy time. You get a staging deployment with test balances to build against.
Environments
You develop against staging — a full copy of the platform (hub, bank, RNG) with its own databases, its own API keys and free test balances. Nothing you do there can touch real money.
| Staging | Production | |
|---|---|---|
| Base URLs & keys | in your onboarding pack | e.g. bank.domin8.fun — keys never leave our servers |
| Balances | test money — ask us to top up anytime | real player funds |
| Your backend runs | on your machine, calling staging over HTTPS | on our infrastructure |
The flow: build locally against staging → we deploy your backend + WebGL build to the staging hub and you test the full arcade experience → we promote to production with fresh keys.
The map
One spin, four steps
Every round — normal spin or bonus buy — is the same loop from your backend:
| # | Call | What happens |
|---|---|---|
| 1 | bank POST /bet/open | lock the stake (the money is held) |
| 2 | rng POST /random | get provably-fair floats — one per reel |
| 3 | your game | map floats → reels → paytable → payout |
| 4 | bank POST /bet/settle | release the lock, pay the win ("0" on a loss) |
Why it never double-pays
bet_id you generate. If anything crashes mid-spin, retry the whole spin with the same bet_id: the open returns the existing lock, the RNG replays the exact same draws (deterministic per seed + nonce), and the settle pays exactly once.