Build cloud-ready HTML5 and WebGL games with saves, leaderboards, trusted identity, events, and multiplayer hooks.
Use Grotto Runtime Sessions for trusted player identity. Use Railway or Supabase when your game needs custom cloud backend logic like seasons, anti-cheat validation, admin tools, analytics, or custom leaderboard rules.

Keep the Runtime SDK skill token-efficient. Use these specialist skills when your game needs ownership gates or a GitHub-hosted client workflow.

Give your gamedev agent the documentation it needs to build token-gated HTML5 and WebGL game experiences with NFT checks, ERC1155 assets, game passes, associated wallet inventory, and server-authoritative entitlement logic.
Use Grotto Runtime Sessions for trusted player identity. Use the Grotto indexer-backed inventory API when your game needs to unlock skins, items, levels, quests, rewards, or passes based on what the player owns across associated wallets.

Give your gamedev agent the documentation it needs to maintain Grotto games like normal production web apps with GitHub PRs, CI tests, preview deploys, hosted Railway or Vercel clients, and a small Grotto iframe wrapper.
Use Grotto Runtime Sessions for trusted player identity. Use a hosted client workflow when your game needs fast updates, easy rollback, automated testing, version history, or frequent client maintenance without re-uploading a full game zip for every bugfix.
Best for custom Node, Express, Fastify, worker queues, webhooks, and game-specific APIs.
Best for Postgres-backed leaderboards, realtime tables, season data, analytics, and admin views.
Security rule: the game client should never be trusted to claim a wallet, user ID, or score authority. Verify the Grotto runtime session server-side.
Use this skill when building a Grotto-hosted HTML5 or WebGL game that needs trusted player identity, cloud saves, leaderboards, events, presence, or multiplayer hooks.
Recommended cloud providers:
- Railway for custom Node, Express, Fastify, or game backend APIs.
- Supabase for Postgres, realtime channels, analytics tables, admin views, and season data.
Use Grotto Runtime Sessions for trusted identity. Use Railway or Supabase for custom game backend logic. Never trust wallet addresses, user IDs, or scores sent directly by the game client without verifying the Grotto runtime session.
Include the SDK:
<script src="https://api.enterthegrotto.xyz/sdk/grotto-game-runtime.v1.js"></script>
Core calls:
const grotto = await GrottoRuntime.ready();
const player = await grotto.getPlayer();
const save = await grotto.loadSave('default', DEFAULT_STATE);
await grotto.save('default', gameState);
await grotto.event('score_submitted', { leaderboard: 'global', score: 12345 });