dmt-receipts について
DMT Receiptsは、標準形式のメモリ記録をBitcoin Ordinalsの刻印用に準備し、刻印内容を検証するローカルstdio MCPサーバー兼ブラウザデモです。ポータブルなメモリレシートを必要とするエージェントやユーザー向けですが、準備だけでは刻印やネットワーク手数料の支払いは行われません。
主な機能
- 015フィールドのメモリ記録の正規化
- 02SHA-256ダイジェストと刻印レシピの生成
- 03メモリと刻印内容の照合
- 04公開コンテンツの任意取得
- 05ブラウザーでの準備と検証
活用シーン
- 01エージェントのメモリを刻印用に準備
- 02保存済みメモリと刻印の照合
- 03インストールせずブラウザーデモを利用
MCP 対応
ローカルMCPサーバーは `prepare_memory` と `verify_inscription` を提供します。刻印用データの準備とダイジェストまたは刻印内容の検証を行いますが、トランザクションの送信やBitcoin手数料の支払いは行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DMT Receipts
TAP Protocol/Ordinalsを介した、ポータブルでBitcoin上に恒久保存されるエージェントメモリーです。
DMT Receiptsは、ローカルstdio MCPサーバー(prepare_memory、verify_inscription)とブラウザデモを提供します。5つのフィールドを持つdmt-memory/v1 JSONオブジェクトを、インスクリプション可能なペイロードに変換します。恒久保存とは、TAP("p":"tap")のもと、メモリーのバイト列がOrdinalsインスクリプションのコンテンツとしてBitcoin L1に記録されることを意味します。メモリーとインスクリプションID/txidは、ご自身で管理するストレージに保存してください。prepare_memoryの実行後、ステータスは準備完了です。ウォレットまたはOrdinalsツールでバイト列をインスクリプションし、Bitcoinの手数料を支払います。
ライブサイト · プロトコルの手順 · リポジトリの紹介 · 完全な仕様 · TAP仕様
メンテナー:github.com/Colchora
まずはこちら
ライブサイトでは、ブラウザー上でメモリーの準備と検証ができます。データはアップロードされません。レシートはエクスポートするまでlocalStorageに保存されます。このパッケージは、ローカルMCPサーバーと同じプロトコルを使用します。npmレジストリには公開されていないため、クローンからインストールする(下記参照)か、サイトをご利用ください。
| 内容 | 場所 |
|---|---|
| インストールせずにメモリーを準備する | ライブアプリ → アンカー |
| インスクリプションを検証する | ライブアプリ → 検証 |
| このブラウザーに保存されたレシート | ライブアプリ → レシート |
| ローカルツールを試す | npm ciの後にnode examples/run-demo.mjsを実行 |
| エージェント用インデックス(ツール、実行方法、デモ) | このリポジトリのllms.txt |
| 正式なバイト列の規則 | ライブサイトのllms.txt |
| 完全なプロトコル | spec.md |
| 機械可読なマニフェスト | agent.json |
| MCPレジストリID | io.github.Colchora/dmt-receipts(server.json、glama.json) |
任意の支援金はインスクリプション手数料とは別です:支援と買い戻し。
レシートで証明できること、できないこと
| レシートで証明できること | レシートでは証明できないこと |
|---|---|
これらの正規化されたバイト列がBitcoinトランザクションでOrdinalsコンテンツとしてインスクリプションされたこと(inscription_id/コンテンツが一致する場合)。 | そのバイト列を誰が作成または所有しているか。作成者を証明するには、別の署名方式が必要です。 |
ローカルのverify_inscriptionでダイジェストを再計算し、必要に応じて公開インスクリプションコンテンツを取得して照合できます。 | メモリーの真実性、正確性、独創性、意図、または独占的所有権。 |
| TAPインデクサー/Ordinalsエクスプローラーで、このリポジトリとは独立してインスクリプションを確認できます。 | ハッシュのみを使った無料のカレンダー証明。インスクリプション手数料は実際のBitcoin手数料です。 |
このMCPサーバーはトランザクションのブロードキャストも手数料の支払いも行いません。prepare_memoryの実行後のステータスは、インスクリプション済みではなく準備完了です。
使用例
Node.js 18 以降が必要です。npm ci で依存関係をインストールし、dist/index.js をビルドします。サーバーは標準入力で MCP を使用し、クライアントが接続するまで起動したままになります。
git clone https://github.com/Colchora/dmt-receipts.git
cd dmt-receipts
npm ci
node examples/run-demo.mjs
このスクリプトは、examples/demo-memory.json に対して prepare_memory を呼び出し、続いて inscription id を指定せずに verify_inscription を呼び出します。実行に成功すると、次のように表示されます。
| チェック | 値 |
|---|---|
sha256 | 76f3f9ff531cecbfe46e676e932f9b0d9d02b3d7c04e5a558924a8092cb0294b |
byte_length | 170 |
status | prepared |
matches_expected_sha256 | true |
ok | バイト列が inscription されるまでは false |
メモリが準備された状態の間、ok は false のままです。正規化されたバイト列と一致する inscription の内容があると、その後の検証が成功します。同じ値は examples/expected-digest.json にも記載されています。
ビルド後、Cursor は .cursor/mcp.json を読み込みます。${workspaceFolder} はこのファイルが置かれているディレクトリを指します。
{
"mcpServers": {
"dmt-receipts": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
Claude Desktop やその他のクライアントでは、ビルド済みファイルの絶対パスを使用します。
{
"mcpServers": {
"dmt-receipts": {
"command": "node",
"args": ["/absolute/path/to/dmt-receipts/dist/index.js"]
}
}
}
examples/demo-memory.json にある 5 つのフィールド(agent_id、key、content、tags、created_at)を指定して prepare_memory を呼び出します。inscription_id を取得するまでは、返された memory と sha256 を fetch_content: false、include_trac: false とともに verify_inscription に渡します。
ツール:
prepare_memory— メモリを正規化してハッシュを計算し、Ordinals/TAP inscription の手順を返します(UTF-8 のコンテンツ + 任意のdtaポインター)。verify_inscription— ダイジェストを再計算します。必要に応じて inscription の内容を取得して比較し、エクスプローラーへのリンクを返します。
手順:examples/README.md。エージェント用インデックス:llms.txt。プロトコルのバイト列:ライブ版 llms.txt。
チェック
npm run typecheck
npm run build
npm test
npm run typecheck は tsc --noEmit を実行します。コンパイラーでは strict、noUncheckedIndexedAccess、exactOptionalPropertyTypes を使用します。npm test は dist/ を再ビルドし、ユニットテストと examples/run-demo.mjs を実行します。
準備、inscription、検証
agent_id、key、contentを指定してprepare_memoryを呼び出します。inscription_recipe.content_utf8を Ordinals コンテンツ(application/jsonまたはtext/plain)として、TAP Wallet または任意の Ordinals/TAP ツールで inscription します。トークンのデプロイ処理では、任意の TAPdta(512 バイト以下)にsha256:<hex>を含めることができます。inscription_id/txidを付けてメモリを保存します。- メモリと
inscription_idを指定してverify_inscriptionを呼び出します。
インストール不要で、ブラウザーでも同じ準備と検証の手順を実行できます:Anchor、続いて Verify。
正規メモリ形式
コンパクトな UTF-8 JSON で、末尾に改行を付けず、キーを Unicode コードポイント順に並べ、非 ASCII 文字はエスケープせずに記述します。
{"agent_id":"demo-agent","content":"Remember this exact state.","created_at":"2026-11-05T17:00:00Z","key":"notes/hello","tags":["demo"]}
| フィールド | 型 | 備考 |
|---|---|---|
agent_id | string | エージェントの安定した識別子です。 |
key | string | メモリキー、スラッグ、またはパスです。 |
content | string、object、array、number、または boolean | 入れ子の値は JSON 互換である必要があります。 |
tags | string の配列 | タグがない場合は [] を使用します。 |
created_at | string | Z で終わる ISO-8601 UTC 形式で、秒単位の精度です。 |
| (拡張フィールド) | 任意の JSON 値 | 省略可能です。追加フィールドは他のフィールドとともにソートされ、ハッシュに含まれます。prepare_memory は追加のツール引数を保持します。 |
プロトコルとプライバシー
inscription の内容は Bitcoin 上で公開されます。秘密情報を inscription しないでください。このツールが独自のバックエンドにメモリのバイト列をアップロードすることはありません。検証中にコンテンツを取得する場合は、公開エクスプローラーに接続します。
ライセンス
MIT
サポートとTap買い戻し
任意の信頼ベースの資金提供は、ライブサイトで受け付けています。
メモリの準備・インスクライブ用ツールは、マイナー/インスクライバーに支払うBitcoinネットワークのインスクライブ手数料を除き、無料です。このリポジトリではカード決済を処理しません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。