Index
Repositories
Every repository this site points you at, grouped by what you are building. CLONE means you actually run git clone. READ means it is the authority for a rule you need. CONSUME means you only ever touch a running instance or a website.
Repositories marked private are private during the curated phase — access on request. Post in #builders on Discord with the repository name and what you are building.
Build an Arcade game
| Repository | Access | You | What it is |
|---|---|---|---|
| arcade-xayaman | private | CLONE (on request) | The copy-me template for an Arcade game: a working two-to-three player game with its wasm rules blob, its React board UI, the build and bundle scripts, and the offline test ladder. This is where you start. |
| arcade-platform | private | READ | The host game-state processor that runs every Arcade game, the wasm judge that executes your rules blob, the submissions service, and the @xayaarcade/sdk your frontend imports. It is the authority for the judge ABI and every submission limit. |
| arcade-xayaships | private | READ | A shipped Arcade game. Read it for the commit-reveal pattern: how to get unpredictability when the judge ABI gives your rules no source of randomness. |
| arcade-xayatrails | private | READ | A shipped Arcade game built and submitted end to end by someone with no prior knowledge of the platform. The closest thing to a worked answer for 'what does a real submission look like'. |
| arcade-dungeonchannel | private | READ | A shipped Arcade game: a two-to-four seat hidden-information dungeon crawl. Read it for a one-byte cfg suffix and for the additive arcade_share_weights payout surface, which is how a game splits a multi-seat pot by anything other than winner-takes-all. |
| arcade-vector-sumo | private | READ | A shipped Arcade game: a two-to-four seat commit/reveal arena with a zero-byte channel cfg (registered with no suffix at all) and on-screen touch controls. It declares no share weights, so its three- and four-seat wagered matches settle winner-takes-all. |
| arcade-taurion-racer | private | READ | A shipped Arcade game: a two-seat real-time racer whose fixed-point C++ physics, two AI cars and both tracks live in one freestanding rules blob. Read it for a signed setup stage (track and lap count agreed before the race), a seeded channel config (one-byte cfg suffix) and a browser that predicts ahead of the signed state and snaps back to it. |
| arcade-skills | private | CLONE/READ (on request) | These two skills. Install them as a Claude Code plugin, or clone and copy them into .claude/skills/. |
Build a standalone channel game
| Repository | Access | You | What it is |
|---|---|---|---|
| libxayagame (gamechannel/) | public | READ | The gamechannel/ directory is the reference implementation of the channel protocol: how a referee validates a state proof, resolves a dispute, and times a channel out. |
| xaya-relay | private | CLONE (on request) | The message relay two players' browsers use to exchange signed moves off chain. You run one yourself for a standalone channel game; Arcade games use the hosted one. |
| soccer2d | private | READ | A real-time two-player channel game — useful for how a fast game hides network latency behind local prediction. |
| xayarts | private | READ | A channel game with a turn-based structure. |
| xayafpsdemo | private | READ | A first-person demo showing the patterns a high-tick-rate game needs on top of a channel. |
Build a persistent world or MMO
| Repository | Access | You | What it is |
|---|---|---|---|
| libxayagame | public | CLONE | The C++ library every Xaya game-state processor is built on: it feeds you ordered moves and stores your state, and you supply the rules. Also the home of the `mover` example, the smallest complete GSP there is. |
| xayax | public | READ | The bridge that turns Polygon blocks into the move stream your GSP consumes. You run it beside your GSP. |
| taurion_gsp | public | READ | A large persistent-world GSP: an economy, resources and territory, all fully on chain. The best available answer to 'how big can this get'. |
| tfgsp | public | READ | Treat Fighter's GSP — a smaller, more readable persistent game than Taurion, and a good first read. |
| xid | public | READ | Identity and authentication built on Xaya names, if your game needs players to prove who they are off chain. |
| xaya (Core) | public | READ | Xaya Core. Its doc/xaya directory holds the live protocol specifications for names, moves and games. |
| Soccerverse | public | READ | A persistent football-management world built on Xaya — named here as a class of game rather than a single repository. |
Platform and operator
| Repository | Access | You | What it is |
|---|---|---|---|
| forked-evm-testing | public | READ | The minimal forked-chain substrate arcade-fork-testing is built on — fork a real chain locally and spend no real funds. |
| xaya-arcade | private | CONSUME | The Arcade website itself: the lobby, the docs you are reading, and the submission form. You use a running instance; you never need to clone it to ship a game. |
| arcade-wager | private | READ | The contract that escrows WCHI stakes for a wagered match and pays out the winner. |
| arcade-fork-testing | private | READ | An operator's own deployment repository: brings up a forked Polygon chain with the whole stack on top, runs the browser end-to-end proofs, and is what runs the public playground. Private, and a builder never needs it. |
Worked examples
| Repository | Access | You | What it is |
|---|---|---|---|
| taurion_racer | private | READ | A small game built on Taurion's world — a compact example of building on top of an existing persistent GSP. |
| taurionui | private | READ | Taurion's game client: a large frontend against a persistent GSP. |
| treatfighter_ui | private | READ | Treat Fighter's game client. |
Core Xaya infrastructure
| Repository | Access | You | What it is |
|---|---|---|---|
| polygon-contract (XayaAccounts) | public | READ | XayaAccounts: the contract that owns every p/ name and carries every move on chain. The single most important contract in the system. |
| wchi | public | READ | The WCHI token contract — what stakes and name registrations are paid in. |
| delegation-contract | public | READ | Lets a name owner delegate permission to send moves for that name without handing over the name. |
| democrit-evm | public | READ | Atomic trading of in-game assets against WCHI. |
| charon | public | READ | Lets a light client reach a game-state processor it does not run itself. |
| eth-utils | public | READ | Shared Ethereum/Polygon helpers used across the Xaya contracts. |
| stats-subgraph | public | READ | A subgraph indexing Xaya activity for stats and dashboards. |
| xaya-mcp-server | public | READ | An MCP server exposing Xaya chain data to AI agents. |
Archived or superseded — do not start here
| Repository | Access | You | What it is |
|---|---|---|---|
| xaya/xayaships_frontend | public | READ | A 2021 Xaya Core-era frontend. Name-collides with arcade-xayaships and is not related to it. |
| xaya/xaya_tutorials | public | READ | Superseded. The repository root has been dead since 2019, and the tutorial wiki attached to it predates Polygon, the Arcade and the current SDK. Use this site's docs and agent skills instead — they are verified against the code and rebuilt with it. |
| xaya/xaya_docs | public | READ | Its own README opens by saying the contents are outdated. Use this site's docs, and Xaya Core's own doc/xaya for node internals. |
| xaya/mypp | public | READ | A MariaDB connector wrapper, unrelated to building games. |
| xaya/xayaman | private | READ | The frozen pre-split monorepo. Superseded by arcade-xayaman — starting here is a known trap, because it predates the Arcade platform entirely. |
| xaya/polyxayaships | private | READ | The frozen pre-split ships monorepo. Superseded by arcade-xayaships. |
| xaya/xaya-game-skill | private | READ | The previous AI skill, superseded by the two skills in arcade-skills. |