[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"navigation_docs":3,"-guide-playground":96,"-guide-playground-surround":318},[4,48],{"title":5,"path":6,"stem":7,"children":8,"icon":47},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Puzzle records","\u002Fguide\u002Frecords","1.guide\u002F02.records",{"title":16,"path":17,"stem":18},"Registry","\u002Fguide\u002Fregistry","1.guide\u002F03.registry",{"title":20,"path":21,"stem":22},"Lookups and views","\u002Fguide\u002Flookups","1.guide\u002F04.lookups",{"title":24,"path":25,"stem":26},"Verification","\u002Fguide\u002Fverification","1.guide\u002F05.verification",{"title":28,"path":29,"stem":30},"Balances","\u002Fguide\u002Fbalances","1.guide\u002F06.balances",{"title":32,"path":33,"stem":34},"CLI","\u002Fguide\u002Fcli","1.guide\u002F07.cli",{"title":36,"path":37,"stem":38},"Agents","\u002Fguide\u002Fagents","1.guide\u002F08.agents",{"title":40,"path":41,"stem":42},"Custom collections","\u002Fguide\u002Fcustom","1.guide\u002F09.custom",{"title":44,"path":45,"stem":46},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F10.playground","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":95},"Collections","\u002Fcollections","2.collections\u002F00.index",[53,55,59,63,67,71,75,79,83,87,91],{"title":54,"path":50,"stem":51},"Overview",{"title":56,"path":57,"stem":58},"Bitcoin puzzle transaction","\u002Fcollections\u002Fb1000","2.collections\u002F01.b1000",{"title":60,"path":61,"stem":62},"RushWallet contest","\u002Fcollections\u002Frushwallet","2.collections\u002F02.rushwallet",{"title":64,"path":65,"stem":66},"Zden's puzzles","\u002Fcollections\u002Fzden","2.collections\u002F03.zden",{"title":68,"path":69,"stem":70},"Arweave bounties","\u002Fcollections\u002Farweave","2.collections\u002F04.arweave",{"title":72,"path":73,"stem":74},"WarpWallet challenges","\u002Fcollections\u002Fwarp","2.collections\u002F05.warp",{"title":76,"path":77,"stem":78},"Hash collision bounties","\u002Fcollections\u002Fhash_collision","2.collections\u002F06.hash_collision",{"title":80,"path":81,"stem":82},"Ballet wallets","\u002Fcollections\u002Fballet","2.collections\u002F07.ballet",{"title":84,"path":85,"stem":86},"Bitimage","\u002Fcollections\u002Fbitimage","2.collections\u002F08.bitimage",{"title":88,"path":89,"stem":90},"Bitaps mnemonic challenge","\u002Fcollections\u002Fbitaps","2.collections\u002F09.bitaps",{"title":92,"path":93,"stem":94},"GSMG.io puzzle","\u002Fcollections\u002Fgsmg","2.collections\u002F10.gsmg","i-lucide-layers",{"id":97,"title":44,"body":98,"description":310,"extension":311,"links":312,"meta":313,"navigation":315,"path":45,"seo":316,"stem":46,"__hash__":317},"docs\u002F1.guide\u002F10.playground.md",{"type":99,"value":100,"toc":301},"minimark",[101,115,233,240,245,256,260,267,271,274,278,285,289],[102,103,104,105,109,110,114],"p",{},"The ",[106,107,44],"a",{"href":108},"\u002Fplayground"," imports ",[111,112,113],"code",{},"@agntn\u002Fpuzzles"," 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.",[116,117,118,134],"table",{},[119,120,121],"thead",{},[122,123,124,128,131],"tr",{},[125,126,127],"th",{},"Operation",[125,129,130],{},"Runs",[125,132,133],{},"Tool equivalent",[135,136,137,154,169,184,203,217],"tbody",{},[122,138,139,143,149],{},[140,141,142],"td",{},"Show",[140,144,145,148],{},[111,146,147],{},"showTool(id)"," and the record behind it",[140,150,151],{},[111,152,153],{},"puzzles_show",[122,155,156,159,164],{},[140,157,158],{},"List",[140,160,161],{},[111,162,163],{},"listTool({ collection, status, withPubkey, limit })",[140,165,166],{},[111,167,168],{},"puzzles_list",[122,170,171,174,179],{},[140,172,173],{},"Verify",[140,175,176],{},[111,177,178],{},"verifyTool(id)",[140,180,181],{},[111,182,183],{},"puzzles_verify",[122,185,186,189,198],{},[140,187,188],{},"Balance",[140,190,191,194,195],{},[111,192,193],{},"\u002Fapi\u002Fbalance\u002F\u003Cid>"," on the docs worker, which runs ",[111,196,197],{},"puzzle.balance()",[140,199,200],{},[111,201,202],{},"puzzles_balance",[122,204,205,207,212],{},[140,206,49],{},[140,208,209],{},[111,210,211],{},"collectionsTool()",[140,213,214],{},[111,215,216],{},"puzzles_collections",[122,218,219,222,228],{},[140,220,221],{},"Stats",[140,223,224,227],{},[111,225,226],{},"statsTool()",", which loads every collection",[140,229,230],{},[111,231,232],{},"puzzles_stats",[102,234,235,236,239],{},"The sample chips load the fourteen puzzles the landing walks through, one per collection at least. Want to see a ",[111,237,238],{},"PuzzleNotFoundError","? Load a sample and change one character.",[241,242,244],"h2",{"id":243},"every-state-is-a-link","Every state is a link",[102,246,247,248,251,252,255],{},"The form writes itself into the address. ",[111,249,250],{},"\u002Fplayground?op=show&id=b1000%2F71"," opens the page on that answer, ",[111,253,254],{},"\u002Fplayground?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.",[241,257,259],{"id":258},"the-two-snippets","The two snippets",[102,261,262,263,266],{},"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 ",[111,264,265],{},"limit"," flag, so with a limit set the CLI line lists every match while the tool call keeps the limit.",[241,268,270],{"id":269},"what-green-means","What green means",[102,272,273],{},"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.",[241,275,277],{"id":276},"one-page-per-puzzle","One page per puzzle",[102,279,280,281,284],{},"A show result links to the puzzle's own page, ",[111,282,283],{},"\u002Fcollections\u002Fb1000\u002F71",", 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.",[241,286,288],{"id":287},"the-landing","The landing",[102,290,291,292,296,297,300],{},"The panels on the ",[106,293,295],{"href":294},"\u002F","home page"," walk through the same fourteen puzzles on one clock. Each step loads its collection through ",[111,298,299],{},"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.",{"title":302,"searchDepth":303,"depth":303,"links":304},"",2,[305,306,307,308,309],{"id":243,"depth":303,"text":244},{"id":258,"depth":303,"text":259},{"id":269,"depth":303,"text":270},{"id":276,"depth":303,"text":277},{"id":287,"depth":303,"text":288},"The page behind puzzles.agntn.dev\u002Fplayground runs the library in your browser. What it can tell you and what it leaves alone.","md",null,{"icon":314},"i-lucide-flask-conical",true,{"title":44,"description":310},"Q68t_tEAtixUgpGUdgZ5Rd04UIodLZ3gUymvHCOngQQ",[319,321],{"title":40,"path":41,"stem":42,"description":320,"children":-1},"Extend NamedCollection or NumericCollection with a key and an author and a puzzle list. Register a loader. From then on the registry treats it like a built-in.",{"title":54,"path":50,"stem":51,"description":322,"children":-1},"Ten collections on five chains. Each page says what the puzzle was and what the records carry. The facts strip is read off the library when the page builds.",1789737888866]