HTTP API
Base: https://cassette.gg. JSON everywhere. Errors: {"error":{"code","message"}} (see errors.md). Amounts: decimal strings of USDC units (6 decimals) plus a usd display string.
Auth: Authorization: Bearer <jwt> from SIWE (EIP-4361): GET /v1/auth/nonce?address= → sign the message → POST /v1/auth/verify {message, signature} → {token} (7 d).
Read endpoints need no key. How to sign in, pair, relay transactions and sign links: https://cassette.gg/agents/protocol.md.
| Method | Path | Auth |
|---|---|---|
GET | /v1/health | none |
GET | /v1/config | none |
GET | /v1/auth/nonce | none |
POST | /v1/auth/verify | none |
GET | /v1/me | bearer |
GET | /v1/me/library | bearer |
GET | /v1/home | none |
GET | /v1/games | none |
GET | /v1/games/:slug | none |
GET | /v1/games/:slug/items | none |
GET | /v1/profiles/:idOrHandle | none |
GET | /v1/users/:username | none |
GET | /v1/usernames/:name | none |
GET | /v1/search | none |
GET | /v1/tags | none |
GET | /v1/entitlements/:address/:gameId | none |
POST | /v1/sessions | bearer |
POST | /v1/sessions/:id/heartbeat | bearer |
POST | /v1/sessions/:id/end | bearer |
POST | /v1/attestations/license | bearer |
POST | /v1/verify | none |
GET | /.well-known/jwks.json | none |
POST | /v1/telemetry | none |
GET | /v1/dev/games/:gameId/stats | bearer |
POST | /v1/builds | bearer |
GET | /v1/builds/:hash | none |
GET | /v1/manifests/:sha256 | none |
POST | /v1/manifests | bearer |
GET | /v1/assets/:sha256 | none |
GET | /v1/jwks | none |
GET | /v1/nft/usernames/:tokenId | none |
GET | /v1/nft/licenses/:gameId | none |
GET | /v1/nft/items/:itemId | none |
POST | /v1/assets | bearer |
POST | /v1/metadata | bearer |
POST | /v1/relay | none |
GET | /v1/relay/:txHash | none |
POST | /v1/dev/faucet | none |
POST | /v1/agent-links | none |
GET | /v1/agent-links/:code | none |
POST | /v1/agent-links/:code/approve | bearer |
POST | /v1/pairings | none |
GET | /v1/pairings/:id | none |
POST | /v1/community/:id/telemetry | none |
GET | /v1/rails | none |
GET | /v1/player-reviews | none |
GET | /v1/player-reviews/summary | none |
GET | /v1/me/player-reviews/eligibility | none |
POST | /v1/player-reviews | bearer |
DELETE | /v1/player-reviews | bearer |
POST | /v1/player-reviews/:id/vote | bearer |
GET | /v1/community | none |
GET | /v1/community/:id | none |
POST | /v1/community/:id/claims | bearer |
POST | /v1/community/:id/claims/:claimId/verify | bearer |
POST | /v1/reports | none |
POST | /v1/me/purchases/consent | bearer |
GET | /v1/me/purchases/consent/:txHash | bearer |
POST | /v1/community/:id/report | none |
GET | /v1/storefronts | none |
GET | /v1/storefronts/:address | none |
GET | /v1/storefronts/:address/listings | none |
GET | /v1/storefronts/:address/sales | bearer |
GET | /v1/sales/:storefront/:saleId | none |
GET | /v1/sales/:storefront/:saleId/self-refund | none |
GET | /v1/receipts/:storefront/:saleId | none |
GET | /v1/receipts/tx/:txHash | none |
GET | /v1/me/sales | bearer |
GET | /v1/wallet/rules | none |
POST | /v1/wallet/decode | none |
GET | /v1/abuse/criteria | none |
GET | /v1/abuse/status/:address | none |
POST | /v1/abuse/appeals | bearer |
Useful reads: GET /v1/games?sort=trending|new|top&capability=phone&pricing=free|free-with-items|paid&tag=&q=&limit=, GET /v1/games/<slug> (GameDetail incl. items, playUrl, stats), GET /v1/search?q=, GET /v1/profiles/<id|handle>, GET /v1/community.
Types: packages/shared/src/api.ts (GameSummary, GameDetail, ItemView, ProfileView, HomeView, DevGameStats, …).