If you integrate with Stake Engine today
The operator API and the wallet contract are the same. The RGS follows Engine's /v1 operator API and wallet contract byte for byte, and its game API is compatible with unmodified Engine front ends. Moving a game library over is mostly configuration.
| Item | Engine | RuneCode | What you do |
|---|---|---|---|
| Operator API base URL | Engine's | ours (given at onboarding) | change the setting |
X-Operator | your Engine operator id | your RuneCode operator id | change the setting |
| Your key pair | Ed25519 (or legacy RSA) | Ed25519 only | upload the public key (you may reuse your Engine pair; we recommend a new one) |
RGS public key (wallet x-signature) | Engine's | ours | add it; keep both, and pick by ingress URL |
| Wallet ingress URL | configured at Engine | configured with us | register it |
/v1/game/url, /v1/game/url/demo, /v1/product, /v1/{product}/game, /v1/bet/{id} | as documented by Engine | identical | nothing |
Wallet /v1/balance, /v1/debit, /v1/credit, /v1/rollback | Engine's contract | identical | nothing |
| Game ids | product/publisher/game slugs | the same, with our slugs | map your lobby entries |
| Network allow-listing | Engine's IPs | our six production egress IPs | firewall change |
| Extensions | none | optional and additive | ignore them if you want |
What differs, so you are not surprised
- Ed25519 only. There is no RSA fallback.
- Retry safety on launch. A byte-identical repeat within 10 minutes returns the same URL, and an
Idempotency-Keyheader is supported. Engine says a launch is not idempotent; ours never changes the result of a first call. - Full-request signing is available (timestamped, covers method, path and query). Engine-style body-only signing keeps working.
- Errors: plain-text status lines by default, as in Engine; ask for
Accept: application/jsonto get a code. - If one wallet serves both Engine and RuneCode, you must give RuneCode its own ingress URL (a distinct path or host), so the right key verifies and round ids from the two RGSes (unique only per RGS) never collide: key rounds by
(rgs, round). - A refused debit is fenced. After answering
ERR_IPB, the RGS sends a rollback for that debit and expects200with nothing refunded. Engine's reference wallet forgets refused debit ids; yours should store them as consumed.