Arccade is an on-chain gaming platform built on Canton Network.
Games run against real balances, matches settle atomically on-ledger, and players keep custody of their own keys. We treat a game lobby and a swap venue as the same kind of problem: a piece of economic state that has to clear cleanly or not at all.
- Swap — atomic delivery-vs-payment between CC and USDCx. A match and its settlement are a single ledger transaction; there is no window where one side has paid and the other hasn't.
- Games — skill-based arcade titles with on-chain stakes. The outcome of a round and the movement of the pot resolve together.
- Wallet — non-custodial by default. Keys are generated and signed with client-side, and the platform holds no recoverable copy.
Arccade is a DAML-first codebase. Economic rules — who can stake, who can settle a swap, what a "win" means — live in DAML smart contracts, not in backend application code. The backend (Java / Spring Boot) and the SDK proxy (Node.js) orchestrate those contracts against a participant node over the Canton JSON Ledger API. The frontend is a TypeScript React app that talks only to the backend.
Core primitives we lean on heavily: Canton's atomic multi-contract
exercise, the Splice Token Standard (Holding, AllocationInstruction,
Allocation_ExecuteTransfer), and DAML exceptions for safe failure paths.
Gaming and real-value swaps have the same hard requirement: two-sided state has to change together or not at all. Canton gives us that atomicity natively — a single transaction can exercise choices across multiple contracts, signed by multiple parties, and either commits entirely or aborts. No mempool, no reorgs, no "did the other side settle?" polling. Combined with non-custodial external-key parties, it lets us offer on-chain guarantees without taking custody of user funds.
- arccade-wallet-backend — Spring Boot API: auth, swap matching, balances, XP, streaks, game lifecycle
- arccade-wallet-app — React frontend (dashboard, wallet, swap, game clients)
- arccade-wallet-sdk-proxy — Node.js wrapper around the Canton Splice SDK; the backend talks to this instead of calling the SDK directly
- arccade-daml — DAML models (swap, game, wallet, token interfaces)
- Website: arccade.io
- Twitter / X: @Arccadeio