Playing and leaderboards

The game page, the wallet you connect to play, how runs are posted, per-game leaderboards, likes, tips and remixes.

Every published game has its own page, /play/<id>, where it runs on the same runtime as in the studio. Playing a published game needs a connected wallet: that is the anti-bot rule that makes play counts worth something. One more signature, at the end, puts your score on the leaderboard.

A run in progress on a game page
The game page: the runtime, the card, the leaderboard.

Finding games

The Games page lists published games and the showcase templates. Filter by mode, sort by most played (the default) or newest. Each card shows the number of plays and players.

The Games page
The games list, filterable by mode.

Connect a wallet to play

A published game does not start until a wallet is connected: on its own page and in the mini-games on the home page, the Play button is replaced by Connect wallet to play, and the run starts as soon as the connection is accepted. The studio’s Test step is not affected: your own game runs there with no wallet, as often as you like.

This is the anti-bot rule that makes play counts meaningful. Rewards are computed from how many wallets played a game and how many runs they played, capped at 10 per wallet per 24-hour epoch; if anything that can open a page could post runs, the counter would measure scripts, not players. A run posted by a connected wallet counts fully toward the creator’s weight; the leaderboard asks for one thing more: the player signs the run.

No account, no fee

Connecting a wallet costs nothing and sends no transaction: it is a message signature. Playing stays free, and the $SANDBOX token is only asked for when you publish.

The game page

  • The game, with its mode’s controls (see Game modes).
  • Fullscreen: the button at the top right of the game frame fills the screen with the game and its HUD; Esc, or the same button, leaves it.
  • Sound: the button next to it mutes or unmutes the sound effects.
  • The card: title, description, creator, plays, players and, for a remix, a link to the original game.
  • The game’s leaderboard: the best signed scores.
  • Remix: opens a copy of the game in your studio.
  • Tip: 0.001 ETH sent in full to the creator through the contract, for games published on-chain once the contract is deployed.

Controls of each mode: Game modes.

Posting runs

  1. Connect, then play

    Connecting signs a short session message once (no transaction, no fee). It ties every run of that sitting to your wallet, for at most six hours.
  2. End of run: the post

    As soon as a run ends, its result (score, time, won or not, mode) is posted to the platform with your wallet. It counts fully toward the game’s weight for the current 24-hour epoch.
  3. Sign to get ranked

    The Sign to get ranked button asks your wallet to sign the run itself, score included (again no transaction, no fee). That signature is what puts the score on the game’s leaderboard.
signed messagesText
Sandbox session
game: <game id>
at: <timestamp ms>

Sandbox play
game: <game id>
score: <score>
at: <timestamp ms>

Anonymous runs

A run recorded without a wallet — an older run, or one posted straight to the API — still counts a tenth, and all such runs together are capped at 20 % of a game’s signed weight. See A game’s weight.

Templates do not count

Runs on the showcase templates are recorded, but templates are never eligible for rewards. Remix one and publish it: your version will count.
POST/api/playsrecords a run

Server checks

CheckError
The body has game, score (number) and at (timestamp)400 Bad play
at is within 10 minutes of server time400 Stale play
The game exists (published or template)404 No such game
When an address is given, the run or session signature matches401 Bad signature
The signed session is less than six hours old401 Stale session

The score is rounded and clamped to zero when negative.

Leaderboards

Every game has its own leaderboard, fed only by runs signed one by one. One row per wallet: a new score only replaces the old one when it is strictly better. The game page shows the top 20.

Scores and rewards

Creator rewards do not depend on scores but on the number of plays, capped per wallet. A forged score therefore earns the creator nothing. See Epoch rewards.

Likes

Games and library assets can be liked. A like is idempotent: a visitor counts once per target, identified by their wallet when connected, otherwise by a salted hash of their IP. Counts are refreshed at most every 30 seconds.

GET/api/likes?ids=a,b
POST/api/likes{ id, address? }

Platform in draft mode

Without storage configured (local development), runs are not recorded: the page says so after the run, and the game stays playable.

What next