# Spinza **www.spinza.dev — The Virtual Casino Playground.** Spinza is a premium *fictional* social casino: twenty original games, a real server-authoritative game engine, cryptographically secure RNG, versioned game mathematics, a simulation & certification platform and an immutable wallet ledger — all running on **Spinza Credits (SC)**, a virtual currency with no monetary value. > Virtual credits only. No deposits. No withdrawals. No cash value. 18+. ## What's inside - `packages/game-core` — the Spinza Game Engine (ways/lines, wilds, scatters, cascades, hold & respin, pick bonuses, persistent meters, heat, mystery, quantum split, dynamic grids, fictional jackpots), simulator and certification. - `games/` — 20 original definitions (`defineGame`), calibration and 10,000,000-spin certification reports. - `apps/api` — Fastify API: username/password accounts (Argon2id), recovery codes, opaque sessions, atomic spins with idempotency, ledger, XP/levels, achievements, missions, daily & rescue rewards, leaderboards, TOTP admin. - `apps/web` — Next.js 16 front-end: landing, lobby, PixiJS game screen with procedural art and WebAudio sound, rewards, leaderboards, profile, settings, admin console. - `apps/simulator` — multi-threaded CLI (`pnpm sim …`). See `CLAUDE.md` for the working guide and `docs/SPEC-original.md` for the product brief. ## Quick start ```bash pnpm install createdb spinza pnpm db:migrate && pnpm db:seed pnpm dev:api # http://127.0.0.1:8231 pnpm dev:web # http://localhost:8230 ``` Requires Node ≥ 22, pnpm 11, PostgreSQL 17 and Redis on localhost. ## Certification Every game ships with `games/certifications/.json`; the seed publishes a game only when the report is `PASS` for the exact version. Re-certify after any math change: ```bash pnpm sim calibrate --spins 10000000 pnpm sim certify --spins 10000000 ```