# Casino Staging Handoff This is the short partner-facing package for the `bspin-staging` casino integration. Send this with the staging start page before the casino starts technical integration. The detailed API contract remains in `docs/API.md`. ## Staging Status - Environment: staging only, no real-money traffic. - Base URL: `https://staging-games.rougereels.com`. - Docs URL: `https://staging-games.rougereels.com/docs.html`. - Health check: `https://staging-games.rougereels.com/health`. - Readiness check: `https://staging-games.rougereels.com/ready?operatorId=bspin-staging`. - Current staging operator: `bspin-staging`. - Current staging currency: `USD`. - Casino callback base URL: `https://podrum.supersport.club:49165/CasinoRougeReelsApi`. - Casino callback transport: HTTPS wallet callbacks. - Supported games: Dice, Limbo, Plinko, Keno, Mines, Blackjack. - Supported modes: Manual and Auto. Strategies are visible but disabled for v1. ## Important Disclaimer - This staging environment is not approved for real-money traffic. - Rouge Reels does not own wallet funds, custody crypto, process payments, perform KYC/AML, manage responsible gaming, or decide jurisdiction rules. - The casino remains the source of truth for player accounts, wallet balances, player currency, debits, credits, rollbacks, compliance, and player restrictions. - Production launch requires legal, security, operations, jurisdiction, and certification review. ## Example Staging Launch URLs Use these examples after the casino generates a launch token for `bspin-staging`. `/sandbox/launch` is local/demo only and is not used for this staging path. ```text https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=dice&token=&embed=1 https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=limbo&token=&embed=1 https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=plinko&token=&embed=1 https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=keno&token=&embed=1 https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=mines&token=&embed=1 https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=blackjack&token=&embed=1 ``` For a full-height placement: ```text https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=dice&token=&embed=1&fill=1 ``` Embedded games show the casino-provided balance inside the betting panel by default. To make the balance behavior explicit in a launch URL: ```text https://staging-games.rougereels.com/game.html?operatorId=bspin-staging&game=dice&token=&embed=1&showBalance=1 ``` The embedded balance is still casino-provided. It uses the same wallet callback balance returned during session creation and settlement; Rouge Reels does not custody funds or poll balances in v1. Operators can hide it by default with `theme.showBalanceInEmbed: false`, or per launch with `showBalance=0`. Example iframe: ```html ``` ## Integration Package Links - Start here: `https://staging-games.rougereels.com/docs/staging-integration-start-here.md` - Full API guide: `https://staging-games.rougereels.com/docs/API.md` - OpenAPI spec: `https://staging-games.rougereels.com/docs/openapi.json` - Postman collection: `https://staging-games.rougereels.com/docs/postman_collection.json` - Integration checklist: `https://staging-games.rougereels.com/docs/integration-checklist.md` - Sample casino callback backend: `https://staging-games.rougereels.com/docs/sample-casino-backend.js` - Signing example: `https://staging-games.rougereels.com/docs/signing-example.js` - Bspin staging seed template: `https://staging-games.rougereels.com/docs/bspin-staging-operator.sql` - Local sandbox guide: `https://staging-games.rougereels.com/docs/sandbox-integration-guide.md` - Production readiness gates: `https://staging-games.rougereels.com/docs/production-readiness.md` ## Game Thumbnail Assets Use these static PNG thumbnails for casino launchers, lobby cards, or integration previews. Each game includes square, vertical, and horizontal variants in the manifest: - Manifest: `https://staging-games.rougereels.com/thumbnails/index.json` - Dice: `https://staging-games.rougereels.com/thumbnails/dice.png` - Dice horizontal: `https://staging-games.rougereels.com/thumbnails/dice-horizontal.png` - Dice vertical: `https://staging-games.rougereels.com/thumbnails/dice-vertical.png` - Limbo: `https://staging-games.rougereels.com/thumbnails/limbo.png` - Limbo horizontal: `https://staging-games.rougereels.com/thumbnails/limbo-horizontal.png` - Limbo vertical: `https://staging-games.rougereels.com/thumbnails/limbo-vertical.png` - Plinko: `https://staging-games.rougereels.com/thumbnails/plinko.png` - Plinko horizontal: `https://staging-games.rougereels.com/thumbnails/plinko-horizontal.png` - Plinko vertical: `https://staging-games.rougereels.com/thumbnails/plinko-vertical.png` - Keno: `https://staging-games.rougereels.com/thumbnails/keno.png` - Keno horizontal: `https://staging-games.rougereels.com/thumbnails/keno-horizontal.png` - Keno vertical: `https://staging-games.rougereels.com/thumbnails/keno-vertical.png` - Mines: `https://staging-games.rougereels.com/thumbnails/mines.png` - Mines horizontal: `https://staging-games.rougereels.com/thumbnails/mines-horizontal.png` - Mines vertical: `https://staging-games.rougereels.com/thumbnails/mines-vertical.png` - Blackjack: `https://staging-games.rougereels.com/thumbnails/blackjack.png` - Blackjack horizontal: `https://staging-games.rougereels.com/thumbnails/blackjack-horizontal.png` - Blackjack vertical: `https://staging-games.rougereels.com/thumbnails/blackjack-vertical.png` ## Casino Wallet Callback Contract For this staging integration, the casino provides a backend callback base URL over HTTPS. Rouge Reels calls: - `POST /wallet/validate-session` - `POST /wallet/balance` - `POST /wallet/debit` - `POST /wallet/credit` - `POST /wallet/rollback` Money-changing calls must be idempotent. Repeating the same idempotency key must return the original result and must never double-charge or double-pay. Rouge Reels signs callbacks with HMAC-SHA256. Required headers: - `X-Operator-Id` - `X-Timestamp` - `X-Nonce` - `X-Signature` - `X-Idempotency-Key` for money-changing callbacks ## Currency Model Rouge Reels supports multiple configured currencies, but v1 uses one active currency per operator profile. If a casino wants USD and uBTC, it should use separate operator-currency profiles, for example: ```text casino-usd casino-ubtc ``` Rouge Reels does not perform FX conversion. The casino chooses the player currency before launch and sends all balances, debits, credits, rollbacks, limits, and reconciliation records in that same currency. Supported configured currency codes: ```text USD, EUR, GBP, USDT, USDC, BTC, uBTC, ETH, LTC, DOGE, BNB, SOL, XRP, ADA, TRX, XLM, ZEC ``` ## Staging Test Evidence Before moving beyond staging, capture evidence for: - `GET /health` - `GET /ready?operatorId=bspin-staging` - Dice launch, Manual bet, Auto bet - Limbo launch, Manual bet, Auto bet - Plinko launch, Manual bet, Auto bet - Keno launch, Manual bet, Auto bet - Mines launch, start round, reveal tile, cashout, restore active round - Blackjack launch, start round, insurance decision, hit, stand, double, split, restore active round - Successful debit and losing settlement - Successful debit and winning credit - Identical idempotency retry returning the original result - Idempotency conflict returning an error - Failed settlement rollback evidence - Round lookup by `roundId` - Bet report modal from a recent result - Fairness verifier after server seed reveal - Reconciliation export ## Acceptance Criteria - Casino can launch Dice, Limbo, Plinko, Keno, Mines, and Blackjack from the docs alone. - Casino balance is shown in the game, but Rouge Reels never owns wallet funds. - Bets debit from the casino wallet only. - Wins credit back to the casino wallet only. - Duplicate requests cannot double-charge or double-pay. - Failed settlement creates rollback and reconciliation evidence. - Casino can inspect a full dispute trail by `roundId`. - A completed round can be verified through the fairness verifier. ## Next Version Step After this package is committed and merged, create a stable release tag such as: ```text staging-handoff-v0.1 ``` That tag should be the version referenced in casino emails, demo notes, and implementation support.