# Casino Sandbox Demo Package This is the short partner-facing package for a casino sandbox pilot. It is meant to be sent before a casino starts technical integration. The detailed API contract remains in `docs/API.md`. ## Sandbox Status - Environment: sandbox/staging only. - 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=staging-rouge`. - Current demo operator: `staging-rouge`. - Current demo currency: `USD`. - Demo callback transport: `sandbox://demo-casino`. - Supported games: Dice, Limbo, Plinko. - Supported modes: Manual and Auto. Strategies are visible but disabled for v1. ## Important Disclaimer - This sandbox 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. ## Quick Demo Links Use these links to open the current staging games directly: ```text https://staging-games.rougereels.com/game.html?operatorId=staging-rouge&game=dice&token=demo_launch_player-demo-1&embed=1 https://staging-games.rougereels.com/game.html?operatorId=staging-rouge&game=limbo&token=demo_launch_player-demo-1&embed=1 https://staging-games.rougereels.com/game.html?operatorId=staging-rouge&game=plinko&token=demo_launch_player-demo-1&embed=1 ``` For a full-height placement: ```text https://staging-games.rougereels.com/game.html?operatorId=staging-rouge&game=dice&token=demo_launch_player-demo-1&embed=1&fill=1 ``` Example iframe: ```html ``` ## Integration Package Links - Pilot offer/checklist: `https://staging-games.rougereels.com/docs/sandbox-pilot-offer.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` - Sandbox integration guide: `https://staging-games.rougereels.com/docs/sandbox-integration-guide.md` - 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` - Currency profile template: `https://staging-games.rougereels.com/docs/sandbox-currency-profiles.sql` - Production readiness gates: `https://staging-games.rougereels.com/docs/production-readiness.md` ## Casino Wallet Callback Contract For real casino sandbox 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 sandbox currency codes: ```text USD, EUR, GBP, USDT, USDC, BTC, uBTC, ETH, LTC, DOGE, BNB, SOL, XRP, ADA, TRX, XLM, ZEC ``` ## Sandbox Test Evidence Before moving beyond sandbox, capture evidence for: - `GET /health` - `GET /ready?operatorId=staging-rouge` - Dice launch, Manual bet, Auto bet - Limbo launch, Manual bet, Auto bet - Plinko launch, Manual bet, Auto bet - 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, and Plinko 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 sandbox-pilot-v0.1 ``` That tag should be the version referenced in casino emails, demo notes, and implementation support.