Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
boha — 暗号バウンティ、パズル、チャレンジのデータライブラリ | Kitploit
ツール/GitHubGitHub/oritwoen/boha
暗号化CTF論文と研究学習と教育厳選リソース
GitHuboritwoen/boha

boha

暗号バウンティ、パズル、チャレンジのデータライブラリ

リポジトリを見る
166532日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

@agntn/puzzles

npm version npm downloads license Ask DeepWiki

公開されている暗号パズルとバウンティを、型付きレコードとして提供します。パズルを要求すると、そのアドレス、鍵素材、そしてオンチェーンで何が起きたかが返ってきます。

なぜ?

どのパズルスレッドにも同じ3つの要素があります。アドレス、賞品、そして誰が何を解いたかです。あらゆるスキャナーやトラッカーが、スレッドからそれらを毎回少しずつ異なる形で打ち直しています。そこで、ここに一度だけコードとして置くことにしました。パズルはTypeScriptのレコードです。テストより先に型チェッカーがそれを読みます。CLI、MCPサーバー、そしてPiとOMPの拡張機能は、1つのレジストリを読みます。

ドキュメント、パズルごとに1ページ、そしてライブプレイグラウンド:puzzles.agntn.dev。

[!WARNING] 1.0未満です。API、CLIフラグ、データモデルはまだ変わる可能性があります。その上に構築する場合は、正確なバージョンを固定してください。

✨ 機能

  • 🧾 コードとしてのデータ。 パズルごとに1つのPuzzleSpecリテラルを、すべてのチェーン共通のpuzzle()ファクトリで構築します。JSONもビルドステップもありません。
  • 🕳️ 無いものは無いまま。 ソルバーや賞品のないパズルには、そのキー自体が存在しません。何もnullとしてシリアライズされません。
  • 🔑 あらゆる形式の鍵素材。 16進数、WIF、BIP38ペイロード、シードフレーズ、秘密分散、封印されたArweaveキーファイル、あるいは単なるビット幅。マルチシグのすべての鍵も同様です。ビルダーは1つです。
  • 💤 遅延レジストリ。 パッケージをインポートしてもレコードは読み込まれません。get("bits/71")は1つのコレクションモジュールをインポートします。
  • ✅ 検証は値である。 公開された鍵がアドレスを導出できるか、できないか。不正なレコードでも例外は投げません。
  • 💰 ライブ残高。 @agntn/explorers経由のpuzzle.balance()。基本単位はbigint、APIキーはエラーから伏字化されます。
  • 👀 レコードへの監視。 puzzles watchは、レコードが見落としている入金と出金、移動した賞品、出金によって漏れた公開鍵、変更されたソースページを一覧表示します。レコードを編集することは決してありません。編集するのはあなたです。
  • 📋 週末前のチェックリスト。 puzzles eligibilityは、ソース、アドレス、エクスプローラーからの累計、根拠付きのステータス、そして何が解決とみなされるかを集めます。誰も埋められないものはmissing行として返り、推測にはなりません。
  • 🖼️ パズルそのもの、そのリンクではなく。 puzzles_assetsはモデルに、ヒントの背後にある画像、ステージファイル、アーカイブされた投稿を、レコードが固定したSHA-256と照合した上で渡します。リンクは腐ります。これらは腐りません。
  • 🤖 15のエージェントツール。 MCP、Pi、OMPの背後に1つのエグゼキューター。どこでも同じ答え。
  • 🌐 どこでも動作。 Fetch API上のニュートラルなESM。Node、ブラウザ、エッジワーカー。

📦 インストール

pnpm add @agntn/puzzles

Node.js 26 以降(CLI 用)。

🚀 最初の呼び出し

npx @agntn/puzzles stats

これにより、合計、ステータスごとの件数、および既知の公開鍵を持つパズルの数が出力されます。鍵も設定もネットワークも不要です。レコードはパッケージ内に同梱されています。以下の素の puzzles は、ローカルで pnpm add した後の pnpm exec puzzles、または pnpm add -g @agntn/puzzles の後の単なる puzzles を指します。

puzzles show hash-collision/sha256
hash-collision/sha256	unsolved	0.27734251 BTC	35Snmmy3uhaer2gTboc81ayCip4m9DT4ko
chain: bitcoin  address kind: p2sh
hash160: 292fb39df7cd619a396069383928e6bfb74ebec5
redeem script: 6e879169a87ca887 (hash 292fb39df7cd619a396069383928e6bfb74ebec5)
public key: unknown
private key: unknown
started: 2013-09-13 05:59:09
transactions: 1
	funding	2013-09-13 05:59:09	0.1 BTC	397f12ee15f8a3d2ab25c0f6bb7d3c64d2038ca056af10dd8251b98ae0f076b0
explorer: https://blockstream.info/address/35Snmmy3uhaer2gTboc81ayCip4m9DT4ko
source: https://bitcointalk.org/index.php?topic=293382.0

コマンド

コマンド出力内容
puzzles stats合計、ステータス別件数、賞金合計、データバージョン
puzzles collectionsコレクションごとに1行: キー、件数、作者
puzzles authors [key]作者ごとに1行、または出典付きの事実を含む1人の作者レコード
puzzles author <key>puzzles_author ツールから直接取得した1人の作者レコード
puzzles solvers [key]名前付きソルバーごとに1行、または1人のソルバーレコード: すべての解答、プロフィール、出典付きの事実
puzzles solver <key>puzzles_solver ツールから直接取得した1人のソルバーレコード
puzzles show <id>1つのパズルのレコード: キーマテリアル、トランザクション、ヒント、リンク。データには --json
puzzles hints <id>コレクションのヒント、パズル自身のヒント、続いてそのヒントファイル。両方には --json
puzzles stages <id>マルチステージパズルのステージとそのページ、ファイル、公開された回答。リストには --json
puzzles assets <id>パズルに同梱されるファイルの SHA-256 とサイズ、および参照するアーカイブ済みページ。--read <path> で1つを書き出し、--check/--live で検証
puzzles list [collection]1行につき1つのパズル。--address、--chain、--status、--technique、--with-pubkey で絞り込み、--limit と --offset でページング
puzzles verify [id]公開されたキーとそのレシピをアドレスに対して検証。セットには --all または list フィルタ、不一致時は終了コード1
puzzles balance [id]ライブ残高。list フィルタでセット全体を1行ずつ確認。--api-key、またはチェーンごとに1つの変数
puzzles watch [id]チェーンが知っていてレコードにないもの。--since はソースページも確認し、何か見つかれば終了コード1
puzzles eligibility <query>賞金に取り組む前のチェックリスト。id またはアドレスで指定。いずれかのフィールドが欠けている間は終了コード1
puzzles exportdata_version を含むデータセット全体
puzzles mcpstdio 経由の MCP サーバー

--json はテキストの背後にあるデータを出力し、bigint は文字列として、存在しないフィールドは省略されます。コマンドはエージェントが受け取るものと同じツール定義に由来するため、フラグのタイプミスはモデルに対して失敗するのと同じようにここでも失敗します。フラグと終了コードは CLI ガイド に記載されています。

🧠 ライブラリ

import { get, stats, verify } from "@agntn/puzzles";
import { bits } from "@agntn/puzzles/collections/bits";

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

(await verify(bits.require(1))).verified; // true, key 1 derives its address
(await stats()).unsolved; // how many are still waiting for a key
(await bits.require(71).balance()).totalUnits(); // 7.10190014 when I ran it, mempool.space decides

だいたいそんなところです。コレクションはそれ自体が1つのエントリであり、その上のすべては同期的です。コレクションをまたぐビューはロードを待機します。エラーは PuzzlesError から派生し、残高には BalanceError の下に独自のファミリーがあります。残りはガイドにあります:records、registry、lookups、verification、balances。

🗺️ コレクション

ツールをダウンロード