Playground: disposable chain, test WCHI, wiped without warning
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, the GitHub account you will clone with, and what you are building.

Build an Arcade game

RepositoryAccessYouWhat it is
arcade-submissionspublicREADWhere a finished game is submitted: open a submission there with the repository, the tested commit and the four registration values. The arcade itself takes no uploads.
arcade-xayamanprivateCLONE (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-platformprivateREADThe 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-xayashipsprivateREADA 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-xayatrailsprivateREADA shipped Arcade game, a 2..4-seat trail battle. Read it as a complete worked submission: rules blob, bundle and the full test ladder.
arcade-dungeonchannelprivateREADA 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-taurion-racerprivateREADA 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-skillsprivateCLONE/READ (on request)These two skills. Install them with a compatible plugin client, or clone and copy them into .claude/skills/.
arcade-taurion-rtsprivateREADA two-player RTS Alpha with signed faction selection, mirror matches, a bounded state codec and native/WASM parity tests. Free play; orders and faction choices are public and sequential.
arcade-fps-duelprivateREADA free-play Arcade prototype: a two-seat desktop FPS whose movement, collision and combat live in one freestanding rules blob the browser runs exactly as the referee does. Read it for a high-tick-rate game on the strictly turn-based channel protocol: inputs sampled when their send slot opens, an unacknowledged move retried unchanged, and at most 200 ms of local prediction corrected against the confirmed state. Keyboard and mouse only.

Build a standalone channel game

RepositoryAccessYouWhat it is
libxayagame (gamechannel/)publicREADThe 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-relayprivateCLONE (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.
soccer2dprivateREADA real-time two-player channel game: useful for how a fast game hides network latency behind local prediction.
xayartsprivateREADA channel game with a turn-based structure.
xayafpsdemoprivateREADA first-person demo showing the patterns a high-tick-rate game needs on top of a channel.

Build a persistent world or MMO

RepositoryAccessYouWhat it is
libxayagamepublicCLONEThe 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.
xayaxpublicREADThe bridge that turns Polygon blocks into the move stream your GSP consumes. You run it beside your GSP.
taurion_gsppublicREADA large persistent-world GSP: an economy, resources and territory, all fully on chain. The best available answer to 'how big can this get'.
tfgsppublicREADTreat Fighter's GSP: a smaller, more readable persistent game than Taurion, and a good first read.
xidpublicREADIdentity and authentication built on Xaya names, if your game needs players to prove who they are off chain.
xaya (Core)publicREADXaya Core. Its doc/xaya directory holds the live protocol specifications for names, moves and games.
SoccerversepublicREADA persistent football-management world built on Xaya: named here as a class of game rather than a single repository.

Platform and operator

RepositoryAccessYouWhat it is
forked-evm-testingpublicREADThe minimal forked-chain substrate the Arcade's playground is built on: fork a real chain locally and spend no real funds.
xaya-arcadeprivateCONSUMEThe 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-wagerprivateREADThe contract that escrows WCHI stakes for a wagered match and pays out the winner.

Worked examples

RepositoryAccessYouWhat it is
taurion_racerprivateREADA small game built on Taurion's world: a compact example of building on top of an existing persistent GSP.
taurionuiprivateREADTaurion's game client: a large frontend against a persistent GSP.
treatfighter_uiprivateREADTreat Fighter's game client.

Core Xaya infrastructure

RepositoryAccessYouWhat it is
polygon-contract (XayaAccounts)publicREADXayaAccounts: the contract that owns every p/ name and carries every move on chain. The single most important contract in the system.
wchipublicREADThe WCHI token contract: what stakes and name registrations are paid in.
delegation-contractpublicREADLets a name owner delegate permission to send moves for that name without handing over the name.
democrit-evmpublicREADAtomic trading of in-game assets against WCHI.
charonpublicREADLets a light client reach a game-state processor it does not run itself.
eth-utilspublicREADShared Ethereum/Polygon helpers used across the Xaya contracts.
stats-subgraphpublicREADA subgraph indexing Xaya activity for stats and dashboards.
xaya-mcp-serverpublicREADAn MCP server exposing Xaya chain data to AI agents.

Archived or superseded: do not start here

RepositoryAccessYouWhat it is
xaya/xayaships_frontendpublicREADA 2021 Xaya Core-era frontend. Name-collides with arcade-xayaships and is not related to it.
xaya/xaya_tutorialspublicREADSuperseded. 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_docspublicREADIts 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/mypppublicREADA MariaDB connector wrapper, unrelated to building games.
xaya/xayamanprivateREADThe frozen pre-split monorepo. Superseded by arcade-xayaman: starting here is a known trap, because it predates the Arcade platform entirely.
xaya/polyxayashipsprivateREADThe frozen pre-split ships monorepo. Superseded by arcade-xayaships.
xaya/xaya-game-skillprivateREADThe previous AI skill, superseded by the two skills in arcade-skills.

Agent skills · Quickstart · llms.txt