Agent skills
Two skills. Which one you want is decided by where your game’s state lives, not by how fast it plays: a signed off-chain channel between two to four named players is building-channel-games; a world the chain persists, where every move is its own transaction, is building-persistent-games.
Unzip into .claude/skills/: no install step, nothing to run. Command line and other agents below.
| What you are building | Skill | Start with |
|---|---|---|
| Two to four people playing each other, in real time or fast turns | building-channel-games | ARCADE.md |
| A persistent world, an MMO, an economy, or an async every-move-on-chain game | building-persistent-games | SKILL.md |
Before you build an Arcade game
An Arcade game is 2 to 4 seats, React/Next only (the SDK has no supported non-React path today), and ships as a static export with no server of any kind: no API routes, no server actions, no database, no asset backend, no leaderboard service, and no accounts beyond your Xaya p/ name. All shared state is produced by a deterministic wasm judge with no floats, no clock, no network and no file access, whose state output is bounded and whose execution is fuel-capped, which caps how big a world and how long a history you can have. Input is keyboard- or tap-shaped, and every game must be playable by touch: it declares on-screen touch controls (a d-pad and/or action buttons) that the SDK mounts on touch devices, or it declares that it draws its own touch surface and takes the whole frame to draw it in: a game that declares neither is labelled desktop-only on the shelf and a player on a phone cannot start or join a match in it. There is no gamepad support and no key remapping. And a match needs two to four named, funded humans online at the same moment; there is no solo mode, no bot and no matchmaking.
Authority: arcade-xayaman/next.config.ts - “A static export has NO SERVER”.
If your idea does not fit, say so in Discord before you build: we would rather hear it early. A persistent world, an economy or an async every-move-on-chain game is not a worse idea; it is the other skill.
Download
Download the files into your workspace:
Or from a terminal:
curl -fsSLO https://arcade.xaya.io/skills/arcade-skills.zipunzip arcade-skills.zip -d .claude/skills/
If your agent discovers .claude/skills/, it can load these files automatically. Otherwise, point it at the files or use the URLs below.
The game template, arcade-xayaman, enables these as a plugin in its .claude/settings.json, and a fork of it keeps that. If you have one open in Claude Code, you already have the skills and can skip this step.
If your agent has no plugin system
If your agent does not discover .claude/skills/, give it these URLs directly. Every skill and module is served as plain markdown:
https://arcade.xaya.io/skills/building-channel-games.md
https://arcade.xaya.io/skills/building-channel-games/arcade.md
https://arcade.xaya.io/skills/building-channel-games/standalone.md
https://arcade.xaya.io/skills/building-channel-games/wasm.md
https://arcade.xaya.io/skills/building-channel-games/wagering.md
https://arcade.xaya.io/skills/building-channel-games/hidden-information.md
https://arcade.xaya.io/skills/building-channel-games/commit-reveal.md
https://arcade.xaya.io/skills/building-channel-games/pitfalls.md
https://arcade.xaya.io/skills/building-channel-games/examples.md
https://arcade.xaya.io/skills/building-persistent-games.md
https://arcade.xaya.io/skills/building-persistent-games/gsp.md
https://arcade.xaya.io/skills/building-persistent-games/determinism.md
https://arcade.xaya.io/skills/building-persistent-games/ops.md
https://arcade.xaya.io/skills/building-persistent-games/fork-testing.md
https://arcade.xaya.io/skills/building-persistent-games/pitfalls.md
https://arcade.xaya.io/skills/building-persistent-games/examples.mdPlugin marketplace
Not yet public. xaya/arcade-skills is a private repository, so the commands below fail today: use the download above instead. This is the install that works once the repository is public:
/plugin marketplace add xaya/arcade-skills
/plugin install arcade-skills@arcade-skillsThat command pair is the supported way to install via the marketplace: a site-hosted marketplace.json URL is not an interchangeable alternative. It does not retire the download above; both stay valid side by side. Cloning xaya/arcade-skills directly needs the same repository to be public.
building-channel-games
For a game two to four people play against each other in real time or in fast turns: moves are signed off chain and only open, join, close and dispute touch the chain. Covers both the hosted Xaya Arcade (write rules and a board UI, submit a tested repository, no production servers of your own) and a standalone channel game you host yourself.
- ARCADE.md - The one file to read if you just want to ship a game: the whole flow from a template clone to an accepted submission.
- STANDALONE.md - Running a channel game without the Arcade: your own referee GSP, relay, session keys and deployment.
- WASM.md - Compiling deterministic C++ rules to a freestanding WebAssembly judge, and authoring the golden traces that prove it.
- WAGERING.md - Putting a WCHI stake on a match: escrow, the payment queue, and paying out N players.
- HIDDEN-INFORMATION.md - Every seat holds the full signed state, so nothing in it is secret: where a secret lives instead, and what crosses the wire in its place.
- COMMIT-REVEAL.md - Simultaneous moves on a strictly turn-based protocol, at N seats: the commitment, the reveal window, and the seat that never opens theirs.
- PITFALLS.md - The failures this platform actually produces, written so you recognise one in seconds.
- EXAMPLES.md - Shipped channel games and what each one is worth reading for.
building-persistent-games
For a game whose state lives fully on chain (a persistent world, an MMO, an economy, or an async game where every move is its own transaction) and for the platform foundation every Xaya game rests on: the GSP, the XayaX Polygon bridge, names, moves and determinism.
- GSP.md - Building a GSP on libxayagame: the callbacks you implement, protobuf state, and the build recipe.
- DETERMINISM.md - The law every Xaya game obeys (the same ordered moves must produce byte-identical state) and how to prove yours does.
- OPS.md - The day-2 runbook: WAL growth, ZMQ staleness, resync and genesis height, and a GSP that will not sync.
- FORK-TESTING.md - Testing against a forked Polygon chain with no real funds, and the traps that come with it.
- PITFALLS.md - The on-chain and GSP failures that bite hardest, with the symptom first.
- EXAMPLES.md - Shipped persistent worlds and the foundation repositories both skills rest on.
Driving an agent?
There is a literal copy-paste opening prompt for each of the two paths: see /docs/ai-agent.
/repos: every repository this site points you at, and what your relationship to it is · Quickstart · llms.txt