अपडेट पर वापस जाएँ
New releaseAug 1, 2026

boha v0.19.0

क्रिप्टो बाउंटी, पहेलियाँ और चुनौतियाँ डेटा लाइब्रेरी

साझा करें

@agntn/puzzles

npm version npm downloads license Ask DeepWiki

🧩 ग्यारह संग्रहों में 333 सार्वजनिक क्रिप्टो पहेलियाँ और इनाम, टाइप्ड रिकॉर्ड के रूप में। आप एक पहेली माँगते हैं, आपको उसका पता, उसकी कुंजी सामग्री और ऑन-चेन क्या हुआ, मिल जाता है।

क्यों?

हर पहेली थ्रेड में वही तीन चीज़ें होती हैं: पते, इनाम, और किसने क्या हल किया। हर स्कैनर और ट्रैकर उन्हें थ्रेड से दोबारा टाइप करता है, हर बार थोड़ा अलग। इसलिए वे यहाँ एक बार, कोड के रूप में रहती हैं। एक पहेली एक TypeScript रिकॉर्ड है। टाइप चेकर इसे टेस्ट से पहले पढ़ता है। CLI, MCP सर्वर और Pi तथा OMP एक्सटेंशन एक ही रजिस्ट्री पढ़ते हैं।

डॉक्स, प्रति पहेली एक पेज और एक लाइव प्लेग्राउंड: puzzles.agntn.dev।

[!WARNING] Pre-1.0। API, CLI फ़्लैग और डेटा मॉडल अभी भी बदल सकते हैं। अगर आप इस पर कुछ बनाते हैं तो एक सटीक वर्शन पिन करें।

✨ विशेषताएँ

  • 🧾 डेटा कोड के रूप में। प्रति पहेली एक PuzzleSpec लिटरल, उसकी चेन के लिए एक फ़ैक्ट्री द्वारा बनाया गया। कोई JSON नहीं, कोई बिल्ड स्टेप नहीं।
  • 🕳️ अनुपस्थित का मतलब अनुपस्थित। बिना सॉल्वर या इनाम वाली पहेली में ऐसी कोई कुंजी नहीं होती। कुछ भी null के रूप में सीरियलाइज़ नहीं होता।
  • 🔑 हर आकार में कुंजी सामग्री। Hex, WIF, एक BIP38 पेलोड, एक सीड फ़्रेज़, सीक्रेट शेयर, या बस एक बिट चौड़ाई। एक बिल्डर।
  • 💤 लेज़ी रजिस्ट्री। पैकेज इम्पोर्ट करने पर कोई रिकॉर्ड लोड नहीं होता। get("b1000/71") एक संग्रह मॉड्यूल इम्पोर्ट करता है।
  • ✅ सत्यापन एक मान है। एक प्रकाशित कुंजी पता व्युत्पन्न करती है या नहीं। खराब रिकॉर्ड के लिए कुछ भी थ्रो नहीं होता।
  • 💰 लाइव बैलेंस। @agntn/explorers के माध्यम से puzzle.balance()। बेस यूनिट bigint के रूप में, API कुंजियाँ त्रुटियों से हटाई गईं।
  • 🤖 छह एजेंट टूल्स। MCP, Pi और OMP के पीछे एक executor। हर जगह एक ही उत्तर।
  • 🌐 कहीं भी चलता है। Fetch API पर न्यूट्रल ESM। Node, ब्राउज़र, एज वर्कर।

📦 इंस्टॉल

pnpm add @agntn/puzzles

CLI के लिए Node.js 24 या नया।

🚀 पहली कॉल

npx @agntn/puzzles stats
Total: 333
Solved: 131
Unsolved: 93
Claimed: 11
Swept: 96
Expired: 2
With pubkey: 237

कोई कुंजी नहीं, कोई कॉन्फ़िग नहीं, कोई नेटवर्क नहीं। रिकॉर्ड पैकेज के अंदर ही आते हैं। नीचे दिया गया बेयर puzzles लोकल pnpm add के बाद pnpm exec puzzles है, या pnpm add -g @agntn/puzzles के बाद बस puzzles।

puzzles show b1000/71
b1000/71	unsolved	7.100226 BTC	1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU

कमांड

CommandWhat it prints
puzzles statsTotals and status counts. --json adds the prize sums
puzzles collectionsOne row per collection: key, counts, author
puzzles show <id>One puzzle. --json for the whole record
puzzles list [collection]One puzzle per line. --status and --with-pubkey narrow it
puzzles verify [id]A published key against its address. --all for every puzzle, exit 1 on a mismatch
puzzles balance <id>The live balance. --api-key or ETHERSCAN_API_KEY for Ethereum
puzzles exportThe whole dataset with its data_version
puzzles mcpThe MCP server over stdio

--json हर जगह एक ही सीरियलाइज़र है, bigint स्ट्रिंग के रूप में और अनुपस्थित फ़ील्ड छोड़े गए। फ़्लैग और एग्ज़िट कोड CLI गाइड में हैं।

🧠 लाइब्रेरी

import { get, stats, verifyPuzzle } from "@agntn/puzzles";
import { b1000 } from "@agntn/puzzles/collections/b1000";

const puzzle = await get("b1000/71"); // loads the b1000 collection, nothing else
puzzle?.address().value; // "1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU"
puzzle?.keyRange(); // [2n ** 70n, 2n ** 71n - 1n]

verifyPuzzle(b1000.require(1)).verified; // true, key 1 derives its address
(await stats()).unsolved; // 93
(await b1000.require(71).balance()).totalUnits(); // 7.10190014 when I ran it, mempool.space decides

बस इतना ही है, वाकई। एक संग्रह अपनी खुद की एंट्री है और उस पर सब कुछ सिंक्रोनस है। संग्रहों तक फैले व्यू एक लोड का इंतज़ार करते हैं। त्रुटियाँ PuzzlesError से निकलती हैं, बैलेंस का अपना परिवार BalanceError के अंतर्गत है। बाकी गाइड्स में है: रिकॉर्ड्स, रजिस्ट्री, लुकअप्स, सत्यापन, बैलेंस।

🗺️ संग्रह

KeyPuzzlesChainsWhat it is
b1000256bitcoinKeys of 1 to 256 bits, one address each
rushwallet30bitcoinBrainwallets from a 2014 contest
zden15bitcoin, ethereum, litecoin, decredZden's visual puzzles
arweave12arweave, ethereumTiamat's weave puzzles
warp6bitcoinKeybase's scrypt brainwallet challenges
hash_collision6bitcoinPeter Todd's P2SH collision bounties
ballet3bitcoinBIP38 keys printed on physical wallets
bitimage2bitcoinSeeds hashed from photographs
bitaps1bitcoinA 3 of 5 secret sharing scheme
gsmg1bitcoinA multi phase image puzzle
movie_enigma1bitcoinFilm titles as seed words, solved 2026

आइडेंटिफ़ायर collection/name होते हैं। तीन सिंगलटन, gsmg, bitaps और movie_enigma, बस कुंजी हैं। हर संग्रह का एक पेज है जिसमें कहानी, विचित्रताएँ और हर पहेली है: puzzles.agntn.dev/collections।

🤖 एजेंट्स

claude mcp add puzzles --scope user -- npx -y @agntn/puzzles mcp
pi install npm:@agntn/puzzles
{
  "mcpServers": {
    "puzzles": { "command": "npx", "args": ["-y", "@agntn/puzzles", "mcp"] }
  }
}

छह टूल्स: puzzles_stats, puzzles_collections, puzzles_show, puzzles_list, puzzles_verify और puzzles_balance। केवल अंतिम वाला प्रोसेस से बाहर जाता है, और उसके एनोटेशन यह बताते हैं। टेक्स्ट क्या ले जाता है और सीमाएँ कहाँ हैं: एजेंट्स गाइड।

🚫 यह क्या नहीं करता

यह कुछ भी हल नहीं करता। कोई स्कैनर नहीं, कोई कंगारू नहीं, कोई ब्रेनवॉलेट क्रैकर नहीं, और ट्रांज़ैक्शन लिस्ट से स्टेटस का कोई अनुमान नहीं। solved, swept, claimed और expired हाथ से लिखे जाते हैं, क्योंकि एक क्लेम ट्रांज़ैक्शन और एक प्रकाशित कुंजी का मतलब अभी भी हल होना है। चेन तथ्य @agntn/chains से आते हैं, कुंजी व्युत्पत्ति @agntn/keys से और बैलेंस @agntn/explorers से। यह पैकेज इनमें से किसी को भी दोबारा लागू नहीं करता।

🧩 एक पहेली जोड़ना

श्रेणियाँ