Guide

Playground

The page behind puzzles.agntn.dev/playground runs the library in your browser. What it can tell you and what it leaves alone.

The Playground imports @agntn/puzzles into the page and runs it in your browser. Every show, list and verify is the library's own answer, through the same executors the MCP server and the extensions call. Nothing is sent anywhere. The docs worker serves the page and answers one balance route. That's it.

OperationRunsTool equivalent
ShowshowTool(id) and the record behind itpuzzles_show
ListlistTool({ collection, status, withPubkey, limit })puzzles_list
VerifyverifyTool(id)puzzles_verify
Balance/api/balance/<id> on the docs worker, which runs puzzle.balance()puzzles_balance
CollectionscollectionsTool()puzzles_collections
StatsstatsTool(), which loads every collectionpuzzles_stats

The sample chips load the fourteen puzzles the landing walks through, one per collection at least. Want to see a PuzzleNotFoundError? Load a sample and change one character.

The form writes itself into the address. /playground?op=show&id=b1000%2F71 opens the page on that answer, /playground?op=list&collection=zden&status=unsolved on that list. Paste it to someone and they see what you saw. The permalink button copies the current one.

The two snippets

Under the result the page prints the same call as a CLI line and as a tool invocation in JSON, both with copy buttons. They're built from the form. One gap: the CLI has no limit flag, so with a limit set the CLI line lists every match while the tool call keeps the limit.

What green means

Verified means the published key derives the stored address. It doesn't mean the address holds anything, and the page repeats that under every verified puzzle. The balance is the one number here that didn't come from a record. The worker asks the chain's explorer and keeps the answer for five minutes. What you see is the explorer's word, not the library's.

One page per puzzle

A show result links to the puzzle's own page, /collections/b1000/71, with the whole record: every key row, every transaction with its explorer link, the images the record ships, the JSON, and the text a model gets. Every collection page lists its puzzles the same way. All 332 have a page.

The landing

The panels on the home page walk through the same fourteen puzzles on one clock. Each step loads its collection through get(). That's the lazy registry doing its thing where you can watch it. Hover a panel to pause it. The arrows under the record step it by hand.

@agntn/puzzles·MIT license· Public data about public puzzles. Balances come from the chains' explorers through the worker, cached for five minutes. Every key here was public before it landed in a record.