Dmt Receipts

io.github.many77146-bot由 GitHub 帳號 many77146-bot 發布v0.1.0更新於 Nov 6, 2026

Stamp and verify Bitcoin-anchored OpenTimestamps memory receipts for AI agents.

已驗證STDIO僅桌面金融知識與記憶

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,將代理記憶正規化並產生比特幣 Ordinals/TAP 銘文配方,並可驗證已銘刻的憑證。

可以做什麼
  • 準備記憶:將含五個欄位的 dmt-memory/v1 JSON 物件正規化、計算雜湊,並回傳含 UTF-8 內容與選用 dta 指標的銘文配方。
  • 驗證憑證:重新計算摘要,可選擇抓取公開銘文內容進行比對,並回傳區塊瀏覽器連結。
  • 支援「準備—銘刻—驗證」流程,實際銘刻與支付費用由獨立的錢包或 Ordinals 工具完成。
適用情境
當你希望把代理的記憶位元組以 Ordinals 內容永久寫入比特幣 L1,並在日後與已銘刻位元組核對時使用。它不是通用記憶儲存,也不證明作者身分、真實性或所有權。
執行需求
以本機 Node.js 18+ 程序執行;此套件未發佈到 npm 儲存庫,需從 git 複製後以 npm ci 建置,再讓用戶端指向建置產物 dist/index.js。未宣告任何帳號、API 金鑰或環境變數。驗證時抓取銘文內容會連線至公開區塊瀏覽器。
安裝前請注意
銘文內容在比特幣上公開,切勿銘刻機密資訊。伺服器不會廣播交易或支付費用,實際比特幣手續費需透過錢包或 Ordinals 工具另行支付。已準備的記憶尚未銘刻,在位元組被銘刻前驗證不會成功。選用的自願贊助與回購機制與銘刻費用無關。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Dmt Receipts,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

DMT Receipts

Portable, Bitcoin-permanent agent memories via the TAP Protocol / Ordinals.

DMT Receipts is a local stdio MCP server (prepare_memory, verify_inscription) and a browser demo. It turns a five-field dmt-memory/v1 JSON object into an inscription-ready payload. Permanence means those memory bytes are committed on Bitcoin L1 as Ordinals inscription content under TAP ("p":"tap"). Keep the memory and inscription id / txid in storage you control. After prepare_memory, status is prepared. A wallet or Ordinals tool inscribes the bytes and pays the Bitcoin fee.

Live site · Protocol recipe · Repo show-and-tell · Full specification · TAP specs

[MIT license] [Node.js 18+]

Maintainer: github.com/Colchora

Start here

The live site prepares and verifies a memory in the browser. Nothing is uploaded; receipts stay in localStorage until you export them. This package is the same protocol as a local MCP server. It is not published to the npm registry, so install it from a clone (below) or use the site.

What you wantWhere
Prepare a memory, no installLive app → Anchor
Verify an inscriptionLive app → Verify
Receipts saved in this browserLive app → Receipts
Prove the local toolsnpm ci then node examples/run-demo.mjs
Agent index (tools, run, demo)llms.txt in this repo
Canonical byte ruleslive llms.txt
Full protocolspec.md
Machine-readable manifestagent.json
MCP registry idio.github.Colchora/dmt-receipts (server.json, glama.json)

Optional honor-system funding is separate from inscription fees: Support and Buyback.

What a receipt does—and does not—establish

A receipt can establishA receipt cannot establish
These exact canonical bytes were inscribed as Ordinals content in a Bitcoin transaction (when inscription_id / content match).Who created or owns those bytes; authorship needs a separate signature scheme.
Local verify_inscription can recompute the digest and optionally fetch public inscription content for comparison.Truth, accuracy, originality, intent, or exclusive ownership of the memory.
TAP indexers / Ordinals explorers can show the inscription independently of this repo.A free hash-only calendar proof. Inscription fees are real Bitcoin fees.

This MCP server does not broadcast transactions or pay fees. Status after prepare_memory is prepared, not inscribed.

Show and tell

Node.js 18+. npm ci installs dependencies and builds dist/index.js. The server speaks MCP on stdin and stays open until a client connects.

sh
git clone https://github.com/Colchora/dmt-receipts.gitcd dmt-receiptsnpm cinode examples/run-demo.mjs

The script calls prepare_memory on examples/demo-memory.json, then verify_inscription with no inscription id. A passing run prints:

CheckValue
sha25676f3f9ff531cecbfe46e676e932f9b0d9d02b3d7c04e5a558924a8092cb0294b
byte_length170
statusprepared
matches_expected_sha256true
okfalse until the bytes are inscribed

ok stays false while the memory is only prepared. Inscription content that matches the canonical bytes is what makes a later verify succeed. The same numbers are in examples/expected-digest.json.

Cursor loads .cursor/mcp.json after the build. ${workspaceFolder} is the directory that contains that file:

json
{  "mcpServers": {    "dmt-receipts": {      "type": "stdio",      "command": "node",      "args": ["${workspaceFolder}/dist/index.js"]    }  }}

Claude Desktop and other clients use an absolute path to the built file:

json
{  "mcpServers": {    "dmt-receipts": {      "command": "node",      "args": ["/absolute/path/to/dmt-receipts/dist/index.js"]    }  }}

Call prepare_memory with the five fields in examples/demo-memory.json (agent_id, key, content, tags, created_at). Pass the returned memory and sha256 to verify_inscription with fetch_content: false and include_trac: false until you have an inscription_id.

Tools:

  • prepare_memory — canonicalize a memory, hash it, and return an Ordinals/TAP inscription recipe (content UTF-8 + optional dta pointer).
  • verify_inscription — recompute the digest; optionally fetch inscription content and compare; return explorer links.

Walkthrough: examples/README.md. Agent index: llms.txt. Protocol bytes: live llms.txt.

Prepare, inscribe, verify

  1. Call prepare_memory with agent_id, key, and content.
  2. Inscribe inscription_recipe.content_utf8 as Ordinals content (application/json or text/plain) with TAP Wallet or any Ordinals/TAP tool. Optional TAP dta (≤512 bytes) may carry sha256:<hex> on token-deploy flows.
  3. Store the memory with inscription_id / txid.
  4. Call verify_inscription with the memory and inscription_id.

The same prepare and verify steps work in the browser with no install: Anchor, then Verify.

Canonical memory format

Compact UTF-8 JSON, no trailing newline, keys sorted by Unicode code point, literal non-ASCII:

json
{"agent_id":"demo-agent","content":"Remember this exact state.","created_at":"2026-11-05T17:00:00Z","key":"notes/hello","tags":["demo"]}
FieldTypeNotes
agent_idstringStable identifier for the agent.
keystringMemory key, slug, or path.
contentstring, object, array, number, or booleanNested values must be JSON-compatible.
tagsarray of stringsUse [] when there are no tags.
created_atstringISO-8601 UTC ending in Z, whole-second precision.
(extensions)any JSON valueOptional. Extra fields are sorted with everything else and included in the hash. prepare_memory keeps additional tool arguments.

Protocol and privacy

Inscription content is public on Bitcoin. Do not inscribe secrets. This tool never uploads memory bytes to a backend of its own; if you fetch content during verify, you contact a public explorer.

License

MIT

Support & Tap buyback

Optional honor-system funding lives on the live site:

  • Support plans — Free prepare, Support, Tap buyback
  • Buyback hub — all contribution proceeds are directed here (USDC address + local payment-reference log)

Prepare/inscribe memory tooling stays free aside from Bitcoin network inscription fees paid to miners/inscribers. This repository does not process card payments.

來源:README.md,提交 371a1d5

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.1.0最新Nov 6, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分