ποΈ Architecture
O Wave Γ© um monorepo Turborepo + pnpm com 5 apps e 4 packages compartilhados. Todos os serviΓ§os se comunicam via REST sobre o apps/api.
Apps
apps/api β Backend (port 7000)
Backend principal em Express + TypeScript + SQLite (sql.js). ResponsΓ‘vel por toda a lΓ³gica de negΓ³cio:
| Grupo de rotas | DescriΓ§Γ£o |
|---|---|
/casino/* | Rotas do jogador: auth, balance, deposit, withdraw, play, history, seed |
/casino/admin/* | AdministraΓ§Γ£o: games, agents, transactions, RTP, GGR, balances |
/casino/legacy/* | Proxy Pragmatic Play β modo Seamless |
/casino/vgames/* | 12 jogos HTML5 (Construct 3 / Spine 2D) |
/embed/* | White-label iframe β CRUD de operadores externos |
/public/* | Endpoints pΓΊblicos: whitelabel config, recent bets, leaderboard |
apps/platform β Player UI (port 4001)
Casino Poseidoon β interface do jogador em React + Vite.
Stack: @solana/web3.js, wallet adapter, Zustand, styled-components, Framer Motion, Three.js.
apps/admin β Backoffice (port 7003)
Dashboard do operador em React + Vite + Radix UI + Recharts.
Funcionalidades: gestΓ£o de jogos, agentes, jogadores, relatΓ³rios de GGR, RTP, finanΓ§as, KYC.
apps/embed β White-label iframe
SPA React para embedding em qualquer site externo via <iframe>.
CORS aberto (any origin). Operadores provisionados via /embed/operators com admin key.
apps/website β Docs & Marketing (port 7003 dev)
Este site β Next.js 13 + Nextra, static export.
Diagrama de sistema
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β apps/platform β β apps/embed β
β (port 4001) β β (iframe SPA) β
β Player casino UI β β Operator embed β
ββββββββββββ¬ββββββββββββ ββββββββββββ¬βββββββββββββ
β REST + SIWS β REST
ββββββββββββ¬βββββββββββββββ
βββββββββββββββββΌββββββββββββββββββββββββββ
β apps/api (port 7000) β
β /casino/* player routes β
β /casino/admin/* admin routes β
β /casino/legacy/* Pragmatic Play proxy β
β /casino/vgames/* HTML5 games β
β /embed/* operator CRUD β
βββββββββββββββββ¬ββββββββββββββββββββββββββ
β
βββββββββββββββββΌββββββββββββββββββββββββββ
β apps/admin (port 7003) β
β Operator backoffice β
βββββββββββββββββββββββββββββββββββββββββββPackages
| Package | FunΓ§Γ£o |
|---|---|
@wave/core | Tipos TypeScript, constantes Solana, utilitΓ‘rios de token |
@wave/react | WaveProvider, hooks (useAccount, useWalletAddress) |
@wave/ui | Componentes de jogo, Canvas, hooks (useGame, useFees, useTokenBalance, useWagerInput) |
@wave/design-system | Tokens CSS (cores, tipografia, espaΓ§amento), temas dark/light |
Modelo de receita β GGR Waterfall
Cada aposta gera uma divisΓ£o de receita configurΓ‘vel por operador:
Aposta do jogador
ββ House Edge (%) β capturado do resultado do jogo
ββ Wave Fee (1%) β plataforma Wave
ββ Pool Fee (%) β provedores de liquidez
ββ Jackpot (%) β pool de jackpot compartilhado
ββ Bonus (%) β pool de bΓ΄nus/afiliados
ββ Casino Net β receita lΓquida do operadorPricing: sem setup fee, sem taxa de licenΓ§a. VocΓͺ paga 1% por aposta processada.
Tech stack
| Camada | Tecnologia |
|---|---|
| Runtime | Node.js 18 + TypeScript |
| API | Express.js + Zod (validaΓ§Γ£o) |
| Banco de dados | SQLite (sql.js in-memory/file) + MySQL legacy opcional |
| Blockchain | Solana β @solana/web3.js, Anchor framework |
| Frontend | React 18 + Vite (platform/admin) |
| Auth | SIWS β Sign-In-With-Solana (assinatura de wallet, sem senha) |
| State | Zustand, @preact/signals-react |
| Monorepo | Turborepo + pnpm workspaces |
| Jobs | node-cron para reconciliaΓ§Γ£o periΓ³dica |
AutenticaΓ§Γ£o
O Wave usa Sign-In-With-Solana (SIWS): o cliente assina uma mensagem com a private key da wallet, o backend valida a assinatura e retorna um Bearer token com validade de 30 minutos. Sem senha, sem OAuth, sem chave de API por usuΓ‘rio.
Ver Authentication para detalhes.
CatΓ‘logo de jogos
| Tipo | Jogos |
|---|---|
| Wave Originals (provably-fair) | Crash, Mines, Slots, Roulette, Flip, BlackJack, HiLo, Plinko, Wheel |
| Pragmatic Play | Seamless mode β acesso ao catΓ‘logo completo do provedor |
| PGSoft | IntegraΓ§Γ£o via API do provedor |
| vGames (HTML5) | 12 jogos Construct 3: Fortune Tiger, Fortune Ox, Fortune Mouse, e outros |