SPB Git forge

spb/spinza

Public
8commits 1branches 0releases
1.6 MBsize
maindefault branch
16 days agolast push
TypeScript 97.6% SQL 1.4% JavaScript 0.5%
1.9 KB

# 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/<slug>.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 <slug> --spins 10000000
pnpm sim certify <slug> --spins 10000000