---
type: explanation
title: Ship a game to the marketplace
summary: What marketplace game development is, the pieces involved (SDK, manifest, replay contract, the optional engine kit), and how they fit together from code to a published, replayable game anyone can embed.
---

A marketplace game is a game you build once and **anyone** can embed: you publish a public GitHub repo, the platform indexes it, and users reach it by its game id with no involvement from you. This is the opposite end from a [custom game](/docs/custom-game-development/overview), which only you can use and which you host yourself. This section is the detailed, build-and-publish guide to the marketplace path.

If you only want a game for your own site keys, you want [custom game development](/docs/custom-game-development/overview) instead. Come here when you want to distribute a game to every Caputchin user.

## The whole pipeline

```mermaid
flowchart TD
  A["Write the game (game-sdk)"] --> B["Describe it (caputchin.json manifest)"]
  B --> C["Make it replayable: run(seed, trace) yields a verdict"]
  C -.->|optional kit| K["engine-kit: produce run from a reducer"]
  C --> D["Publish: tag the repo caputchin-game"]
  D --> E["Indexer pins the bundle and runs the replay self-check"]
  E --> F["Listed and embeddable, replayable if the self-check passed"]
```

Each box maps to a page in this section:

| Piece | What it is | Page |
|---|---|---|
| The game | A self-contained JS bundle built against the game SDK that runs in the widget's sandboxed iframe. | [Build a marketplace game](/docs/marketplace-game-development/build-a-marketplace-game), [SDK reference](/docs/marketplace-game-development/game-sdk-reference) |
| The manifest | A `caputchin.json` at the repo root describing the game, its presets, and its bundle. | [The caputchin.json manifest](/docs/marketplace-game-development/the-caputchin-json-manifest) |
| The replay contract | A deterministic `run(seed, trace) -> verdict` the server re-runs to reach the authoritative decision. | [The replay contract](/docs/marketplace-game-development/replay-contract) |
| The engine kit | An **optional** authoring kit that produces a conforming `run` from a plain reducer. | [The engine kit](/docs/marketplace-game-development/engine-kit) |
| Publishing | Tag the repo, the indexer discovers and pins it, optionally automate with CI. | [Publish to the marketplace](/docs/marketplace-game-development/publish-to-the-marketplace) |

## Replayable vs not replayable [#replayable-vs-not-replayable]

The single most important idea on this path: a marketplace game can gate verification only if it is **replayable** server-side. When the indexer ingests your game it runs a **replay self-check**: it loads your headless `run` artifact in a sealed isolate and confirms it produces a valid [verdict](/docs/marketplace-game-development/replay-contract).

- **Self-check passes** → the game is **replayable**: a real player's round is re-run on the server to reach the decision, so the game can gate a site key.
- **Self-check fails** → the game shows **Not replayable**. It is still listed and still embeddable, but only as UX (not a security gate) until you publish a version that passes. Sites already on an earlier replayable version keep running that exact snapshot.

This is why determinism is not optional polish: it is the line between a game that can guard a site key and one that is merely decorative.

## How a marketplace game differs from a custom game

| | Marketplace game | [Custom game](/docs/custom-game-development/overview) |
|---|---|---|
| Who can embed it | Anyone, by game id | Only you |
| Hosting | Platform-pinned from your GitHub / npm | You host the bundle (`game-src`) |
| Customization schema | Declared in `caputchin.json` | Declared on the dashboard |
| Replay artifact | Indexed from the manifest's `run` | Uploaded on the dashboard |
| Discovery | Browsable marketplace | None |

## Where to start

If you have never built a Caputchin game, read [Build a marketplace game](/docs/marketplace-game-development/build-a-marketplace-game) top to bottom, then [The replay contract](/docs/marketplace-game-development/replay-contract). When you are ready to ship, follow [Publish to the marketplace](/docs/marketplace-game-development/publish-to-the-marketplace). The [engine kit](/docs/marketplace-game-development/engine-kit) is optional and can be skipped entirely.

## See also

- [Build a marketplace game](/docs/marketplace-game-development/build-a-marketplace-game): the build tutorial.
- [The replay contract](/docs/marketplace-game-development/replay-contract): what makes a game replayable.
- [Publish to the marketplace](/docs/marketplace-game-development/publish-to-the-marketplace): tag, index, automate.
- [Custom game development](/docs/custom-game-development/overview): the self-hosted, your-keys-only alternative.
