Playground — disposable chain, test WCHI, wiped without warning
For AI agents

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.

Download the skills (.zip)

Unzip into .claude/skills/ — no install step, nothing to run. Command line and other agents below.

What you are buildingSkillStart with
Two to four people playing each other, in real time or fast turnsbuilding-channel-gamesARCADE.md
A persistent world, an MMO, an economy, or an async every-move-on-chain gamebuilding-persistent-gamesSKILL.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

This is the install that works today, for Claude Code:

Download the skills (.zip)

Or from a terminal:

curl -fsSLO https://arcade.xaya.io/skills/arcade-skills.zipunzip arcade-skills.zip -d .claude/skills/

Skills placed under .claude/skills/ load automatically in Claude Code — nothing else to run.

A template fork already carries these vendored at .claude/skills/. If you have one, you already have the skills and can skip this step.

If your agent has no plugin system

Cursor, Codex, Copilot and Gemini do not read .claude/skills/. Give them 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.md

Claude Code plugin 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-skills

That 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, upload, no servers of your own — and a standalone channel game you host yourself.

  • ARCADE.mdThe one file to read if you just want to ship a game: the whole flow from a template clone to an accepted submission.
  • STANDALONE.mdRunning a channel game without the Arcade: your own referee GSP, relay, session keys and deployment.
  • WASM.mdCompiling deterministic C++ rules to a freestanding WebAssembly judge, and authoring the golden traces that prove it.
  • WAGERING.mdPutting a WCHI stake on a match: escrow, the payment queue, and paying out N players.
  • HIDDEN-INFORMATION.mdEvery 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.mdSimultaneous moves on a strictly turn-based protocol, at N seats — the commitment, the reveal window, and the seat that never opens theirs.
  • PITFALLS.mdThe failures this platform actually produces, written so you recognise one in seconds.
  • EXAMPLES.mdShipped channel games and what each one is worth reading for.

Raw markdown for agents →

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.mdBuilding a GSP on libxayagame: the callbacks you implement, protobuf state, and the build recipe.
  • DETERMINISM.mdThe law every Xaya game obeys — the same ordered moves must produce byte-identical state — and how to prove yours does.
  • OPS.mdThe day-2 runbook: WAL growth, ZMQ staleness, resync and genesis height, and a GSP that will not sync.
  • FORK-TESTING.mdTesting against a forked Polygon chain with no real funds, and the traps that come with it.
  • PITFALLS.mdThe on-chain and GSP failures that bite hardest, with the symptom first.
  • EXAMPLES.mdShipped persistent worlds and the foundation repositories both skills rest on.

Raw markdown for agents →

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