Modular Rust Casino Engine & React UI SDK
License individual games or the complete 10-game suite. Every module is physically isolated in its own Rust microservice crate (games/<slug>/backend) and typed React UI package (@solana-shuffle/games/<slug>), connected through a universal 3-mode balance hub.
1. Commercial Licensing Tiers
Delivered as a clean, self-contained repository archive or private GitHub release containing only your licensed modules.
Pick any single game (e.g. Blackjack, Plinko, Mines, or Jackpot Shuffle) with full customizable React UI source + pre-compiled Rust engine binary.
- 1 Pre-Compiled Rust Game Engine Binary
- Full Desktop + Mobile React UI Source Code
- Works with Any Chain / Existing External Ledger
- HMAC Webhook Custody + Admin Control Panel
- ✕ No `.rs` Rust Backend Source Code (Binary Only)
./scripts/package-buyer-bundle.sh buyer --binary-only blackjackChoose any 4 games — e.g. the Originals Pack (Plinko, Mines, Dragon Tower, Rug/Crash) or PvP Pack (Shuffle, Poker, Coinflip, RPS).
- 4 Pre-Compiled Rust Game Engine Binaries
- Full React UI Source + White-Label Theme Engine
- Realtime WebSocket Gateway (`rt-gateway`)
- Any Crypto (EVM, SOL, BTC), Fiat, or Sweepstakes
- ✕ No `.rs` Rust Backend Source Code (Binaries Only)
./scripts/package-buyer-bundle.sh buyer --binary-only plinko mines tower rugComplete, unredacted Rust `.rs` + React `.tsx` source code for all 10 microservices (14 playable casino games including the 5-in-1 Card Suite), Admin Hub, and Docker stack.
- ✓ 100% Unredacted Rust (`.rs`) & React (`.tsx`) Source
- All 10 Microservices (14 Playable Casino Games)
- Any-Chain Webhook Custody + Built-In Postgres Ledger
- End-to-End Automated Smoke Test Suite
- Full Cargo Workspace to Modify Game Math & Rules
./scripts/package-buyer-bundle.sh buyer all🔒 What Exactly Are You Buying? (Compiled Binaries vs. Unredacted Source Code)
To protect our provably fair RNG engines and multiplayer state machines from AI scraping and unauthorized redistribution, raw Rust backend source code (*.rs) is NOT included in the $1,500 Single Module or $3,900 4-Pack tiers. Standard buyers receive 100% of the Frontend React/Next.js UI source code (for complete visual and brand customization) paired with pre-compiled, production-ready Rust engine binaries (./bin/turnkey-hub, ./bin/rt-gateway, ./bin/game-<slug>). Unredacted Rust backend source code is unlocked exclusively on the $8,900 Enterprise Full-Source Tier (or via a +$1,000 / game Source Unlock add-on).
| Deliverable Included in Your .zip | Single Game ($1,500) | 4-Game Pack ($3,900) | Enterprise Full Suite ($8,900) |
|---|---|---|---|
| Frontend React / Next.js UI Source Code (.tsx / .css) | ✅ Full UI Source (1 Game) | ✅ Full UI Source (4 Games) | ✅ Full UI Source (All 14 Games) |
| White-Label Brand, Theme Palette & Any-Chain Currency Admin | ✅ Included | ✅ Included | ✅ Included |
| External Wallet / Existing Ledger Webhook Integration | ✅ Included (Any Crypto / Fiat) | ✅ Included (Any Crypto / Fiat) | ✅ Included (Any Crypto / Fiat) |
| PostgreSQL Schemas & Migrations (migrations/*.sql) | ✅ Included | ✅ Included | ✅ Included |
| Pre-Compiled Rust Game Engine & Hub Executables (./bin/*) | ✅ Included (1 Engine) | ✅ Included (4 Engines) | ✅ Included + Buildable from Source |
| Unredacted Rust Backend Source Code (*.rs + Cargo.toml) | ❌ Not Included (+$1,000 to unlock) | ❌ Not Included (+$2,500 to unlock) | ✅ 100% Unredacted Rust Source Code |
2. Plug Into Any Existing Wallet / User Database (Webhook Custody)
Switch Balance Mode to WEBHOOK in the Admin Control Panel and point it at your backend. Turnkey Hub signs every bet debit and payout credit with X-Turnkey-Signature.
import express from "express";
import crypto from "crypto";
const app = express();
const WEBHOOK_SECRET = process.env.TURNKEY_WEBHOOK_SECRET!;
app.post("/api/turnkey/balance", express.raw({ type: "application/json" }), async (req, res) => {
const sig = req.header("X-Turnkey-Signature") ?? "";
const ts = req.header("X-Turnkey-Timestamp") ?? "";
const nonce = req.header("X-Turnkey-Nonce") ?? "";
const rawBody = req.body.toString("utf8");
// 1. Verify HMAC-SHA256 signature: HMAC(secret, "{timestamp}.{nonce}.{rawBody}")
const expected = crypto
.createHmac("sha256", WEBHOOK_SECRET)
.update(`${ts}.${nonce}.${rawBody}`)
.digest("hex");
if (sig !== expected) {
return res.status(401).json({ accepted: false, error: "INVALID_SIGNATURE" });
}
// 2. Apply idempotent balance delta in your existing user database
const event = JSON.parse(rawBody);
// event = { transaction_id, user_id, asset_id, delta_base_units, direction, amount_base_units, idempotency_key, service_name, purpose }
const newBalance = await db.applyIdempotentDelta({
idempotencyKey: event.idempotency_key,
userId: event.user_id,
assetId: event.asset_id,
signedDelta: BigInt(event.delta_base_units),
});
return res.json({
accepted: true,
balance_after_base_units: newBalance.toString(),
});
});3. Physical Module Isolation (How Individual Games Are Packaged)
Every game microservice is 100% independent — games never import each other and each manages its own PostgreSQL schema (`plinko.*`, `blackjack.*`, `mines.*`, `tower.*`, `rug.*`, `rps.*`, `shuffle.*`, `cards.*`, `coinflip.*`, `poker.*`). When a buyer purchases a subset of games, run:
# Package only Blackjack + Plinko + Mines for buyer "acme-casino":
./scripts/package-buyer-bundle.sh acme-casino blackjack plinko mines
# Output: releases/solana-turnkey-acme-casino.zip
# - Includes core/ (common, turnkey-hub, rt-gateway)
# - Includes ONLY games/blackjack, games/plinko, games/mines
# - Rewrites Cargo.toml & docker-compose.yml to only compile & boot those 3 games
# - Stamps LICENSE-GRANT.md with the buyer's ID and licensed modules4. On-Chain Solana Deposit & Withdrawal Custody Add-On (`--with-wallet`)
Most existing casinos use Webhook Custody (Section 2) to keep balances in their own database. For buyers launching a brand-new crypto casino from scratch who need native SOL & SPL token deposits and withdrawals out-of-the-box, include the addons/solana-wallet Rust microservice via --with-wallet:
No keys are ever hardcoded. The buyer generates their own 64-byte BIP39/SLIP-0010 master seed locally (openssl rand -hex 64) and injects HD_MASTER_SEED_HEX via KMS / Vault. Per-user Solana deposit addresses are derived deterministically at m/44'/501'/<tenant>'/0'/<index>'.
The buyer sets SOLANA_RPC_URL (Helius, QuickNode, or Triton) for outbound withdrawal signing and TATUM_API_KEY + TATUM_HMAC_SECRET for HMAC-SHA512 verified deposit webhooks.
Built-in sweep worker automatically transfers excess SOL above HOT_WALLET_MAX_SOL_LAMPORTS to the buyer's air-gapped COLD_WALLET_ADDRESS, and enforces WITHDRAWAL_MAX_PER_HOUR velocity caps.
Ready to License a Single Game or the Full 10-Game Suite?
Email [email protected] with the tier and games you want. Once payment settles, our automated packager generates and delivers your private repository bundle within hours.