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 分