₿Built on TAP Protocol · Bitcoin L1

Your agent forgets. Bitcoin doesn’t.

Turn any agent memory into canonical JSON and inscribe it on Bitcoin with TAP / Ordinals. Permanent, verifiable, yours.

Free to prepare. Bitcoin inscription fees go to miners — never to us.

# memory.json — dmt-memory/v1, sorted keys, UTF-8
{"agent_id":"demo-agent",
 "content":"User prefers concise diffs.",
 "created_at":"2026-11-05T19:00:00Z",
 "key":"prefs/style",
 "tags":["preferences"]}

$ sha256 memory.json
✓ 3f9c…a41e  ready to inscribe (application/json)
Permanent memoryBitcoin L1
Canonical memorySorted-key JSON, SHA-256 fingerprint
Payload preparedOrdinals content + optional TAP dta
Inscribed with TAP WalletYou sign & pay real Bitcoin fees
Receipt savedInscription id / txid · verify anywhere
Works with Bitcoin TAP Wallet Ordinals MCP agents GitHub
L1Bitcoin base layer
1 JSONcanonical memory
SHA-256verify anywhere
$0to prepare
Why it matters

Context windows end. Servers shut down.

Memory that lives in one vendor’s database disappears with it. An inscription stays on Bitcoin.

Without DMT Receipts

  1. Your agent learns something important and writes it to a vector store.
  2. The provider migrates, the index is rebuilt, the key changes.
  3. Nobody can prove what the agent knew — or when.

With DMT Receipts

  1. The memory becomes canonical JSON and is inscribed via TAP / Ordinals.
  2. Any agent re-reads it from an inscription id. Same bytes, same hash.
  3. Still on Bitcoin L1. Anyone can verify it — no account needed.
What is DMT Receipts?

The permanent memory layer for AI agents.

Your agent writes a memory. DMT Receipts makes it canonical and ready to inscribe with TAP on Bitcoin. Anyone can verify it later — from the inscription alone.

Your agents
Claude Code / Codex
Cursor / Hermes
Any MCP agent
dmt-memory/v1TAP inscriptionOrdinals content on Bitcoin L1
Verify anywhere
Inscription id / txid
ordinals.com · mempool
SHA-256 match
How it works

See the whole flow

Anchor → pending → confirmed. One memory, from JSON to Bitcoin.

01

Write the memory

Agent id, key, content, tags, UTC time. Sorted-key dmt-memory/v1 JSON.

02

Prepare the payload

Exact bytes as Ordinals content, plus an optional TAP dta pointer.

03

Inscribe · pending

Connect TAP Wallet or any Ordinals / TAP inscriber. Pending until the tx confirms. Real fees apply.

04

Confirmed · verify

Save the inscription id / txid. Verify the content against explorers any time.

What you get

Permanence, without the noise.

Canonical by design

Sorted keys, UTF-8, no whitespace. Every agent gets the same bytes and the same hash.

TAP Wallet connect

Detects window.tapprotocol. Connect, prepare, inscribe. Never fakes success.

Verify from anywhere

Paste an inscription id or txid. We fetch the content and compare SHA-256.

MCP tools

prepare_memory and verify_inscription over stdio. Open source on GitHub.

Permanent on L1

The memory bytes are the inscription content — on Bitcoin, not a side database.

Support → Tap buyback

Optional, honor-system USDC. Every dollar of proceeds goes to Tap buyback.

Honesty card

What an inscription proves — and what it doesn’t.

Proves (once confirmed)

These exact memory bytes live in a Bitcoin Ordinals inscription, indexed under TAP on Bitcoin L1. Anyone can fetch the content and compare SHA-256.

Does not prove

Authorship, truth, ownership, originality, or any DMT / $NAT token rights — unless you separately sign and identify.

Not a free calendar stamp

Inscription fees are real Bitcoin fees. A prepared payload isn’t on-chain until your wallet or inscriber confirms a tx.

Protocol: docs.tap-protocol.com · Specs: Trac-Systems/tap-protocol-specs · Source: Colchora/dmt-receipts

For agents

One recipe. Any agent.

Canonicalize, inscribe the exact bytes as application/json, keep the inscription id. This static site stores nothing on a server.

# canonical dmt-memory/v1
{"agent_id":"my-agent","content":"User prefers concise answers.","created_at":"2026-11-05T19:00:00Z","key":"notes/example","tags":["preferences"]}

# optional TAP dta (≤512 bytes)
{"p":"tap","op":"token-deploy",…,"dta":"sha256:<hex>"}
Support

Free to use. Proceeds buy back Tap.

Prepare and verify cost nothing. Optional, honor-system contributions all go to Tap buyback.

Free prepare

$0

Canonical memory + inscription recipe, forever. Bitcoin fees paid to miners.

Support

Any amount

Honor-system contribution. 100% routes to the Tap buyback pool.

No card checkout. Send on-chain, record a reference — verified manually.

FAQ

Questions, answered

Why TAP / Ordinals instead of a hash calendar?

Agent memories need the data on Bitcoin L1, not only a digest. TAP is an Ordinals metaprotocol ("p":"tap") with DMT support and optional dta metadata.

What exactly do I inscribe?

The exact canonical dmt-memory/v1 JSON as inscription content (application/json or text/plain). For token-deploy flows you may also set dta (≤512 bytes) to a pointer like sha256:<hex>.

Does Connect TAP Wallet inscribe for me?

TAP Wallet exposes window.tapprotocol (requestAccounts, signing, inscribeTransfer for tokens). A generic “inscribe any JSON” method isn’t guaranteed. If it’s missing, we stop at a prepared payload with clear next steps — never a fake success.

What does it cost?

Prepare and verify are free. Inscribing costs real Bitcoin network fees, paid to miners / your inscriber. Support and Tap buyback are optional, and all proceeds go to the Buyback page.

How do I verify a memory?

Use dual-source Verify: fetch raw inscription bytes from ordinals.com (with a mempool.space fallback) and compare SHA-256, then query Trac Network for confirmed TAP/DMT index data. Explorer links remain available for manual checks. An inscription id is required for both lookups; a txid alone gives transaction links. First-timers can Load demo (public TAP nat dmt-deploy fixture). Null token fields are normal for pure content memories.

Where are my receipts stored?

In your browser (localStorage) until you export them. The inscriptions themselves stay on Bitcoin regardless.

Give your agent a memory that outlives the server.

Write it once. Inscribe it on Bitcoin. Verify it forever.

View on GitHub
Tools

Anchor

TAP Wallet: not detected
1

Canonical memory

—
Fingerprint (SHA-256): —
2

Prepare Tap / Ordinals inscription

Primary permanence path: inscribe the canonical memory bytes as Ordinals content. TAP ops use JSON with "p":"tap"; for pure agent memories, the content inscription is the permanence mechanism. Optional TAP dta (≤512 bytes) can carry a short digest pointer when using token-deploy flows.

Looking for window.tapprotocol…


    
3

Record on-chain receipt

After your wallet or Ordinals tool confirms the inscription, paste the ids here. This site does not fake an on-chain write.

Verify an inscription

Dual-source check: Local hash → Ordinals content → Trac index. A content SHA-256 match stands on its own; Trac soft-fails when unreachable.

First time here? Load the labeled public demo fixture — a real Bitcoin Ordinals inscription — so you can see a green content match without already owning one.

Fixture is the public TAP dmt-deploy for ticker nat. It is not a dmt-memory/v1 agent memory; it proves Ordinals content-hash fetch + match.

Paste canonical dmt-memory/v1 JSON, or the exact inscribed bytes (demo fixture). Prefer over an empty receipts list.

Paste JSON (or Load demo).

Full inscription id = 64-hex txid + i + index (usually i0). Example shape: ab12…cdefi0 — not a bare txid.

Inscription id required for Ordinals + Trac (or use Hash only).

Bare txid → explorer links only. It cannot select inscription content for a hash match.

Empty for first-timers — receipts appear after you Save on Anchor. Use Load demo instead.

  1. Local hashPendingWaiting
  2. OrdinalsPendingWaiting
  3. TracPendingWaiting

Trac Network (TAP index)

Confirmed index data only (not mempool). Pure content inscriptions often show null TAP token fields. Soft-fails when the public endpoint is down — content match is unchanged.

Self-hosted tap-reader origin (CORS on). Saved in this browser; also readable as localStorage.dmt_trac_rest.

Run Verify with an inscription id, or Retry after setting a REST base.

Public endpoint docs · public WS tap.trac.network

Receipts

Static site: receipts live in this browser (localStorage) until you Export JSON. Clearing site data erases them. On-chain inscriptions remain on Bitcoin regardless.

WhenKeySHA-256Inscription / txStatus

Support & plans

Memory prepare/verify stays free. Optional contributions are honor-system and all proceeds go to Tap buyback — recorded and explained on the Buyback tab. There is no card checkout on this static site.

Bitcoin inscription fees for permanence are paid to miners / your inscriber — separate from Support or Tap buyback contributions.

Tap buyback

Every Support contribution and every Tap buyback payment is meant to fund Tap token buyback. This tab is the single proceeds hub: addresses, instructions, and local honor-system references live here.

What buyback means here

Voluntary funding toward acquiring Tap (TAP Protocol token) from the market / designated pool. This static page does not execute swaps automatically.

Where proceeds go

Support plan → this Buyback tab. Tap buyback plan → this Buyback tab. No separate merchant sink: both paths fund buyback.

Honesty

No fake “Pay” button that pretends to charge a card. Send on-chain, then paste a tx reference. Operator verifies manually.

Fund buyback (USDC)

Preferred: USDC on Base (lowest fees). Same address also accepts USDC on Ethereum or Polygon — send on the network you intend to be checked on. Do not send other tokens to this address.

Selected plan: Tap buyback (default). Change plans on Support — you will return here to pay.

Honor-system reference


    
WhenPlanHandleAmountRef

Tap holdings (Trac)

Confirmed Tap ticker index data from Trac Network when reachable. Buybacks still settle as USDC Support until L1 Tap receive is configured. Public Trac may be down (soft-fail).

Open this tab to load Tap deployment / holders from Trac…

Docs

Verify uses dual-source Ordinals explorers plus an independent Trac TAP/DMT index lookup; Buyback can show Tap holders via Trac when the public or self-hosted index is available.

FAQ

  • Why TAP / Ordinals instead of a hash calendar? Agent memories need the data permanently on Bitcoin L1, not only a digest. TAP is an Ordinals metaprotocol ("p":"tap") with DMT support and optional dta metadata.
  • What do I inscribe? Prefer the exact canonical dmt-memory/v1 JSON as inscription content (application/json or text/plain). For token-deploy flows you may also set dta (≤512 bytes) to a short pointer such as sha256:<hex>.
  • Does Connect TAP Wallet inscribe for me? The wallet exposes window.tapprotocol (requestAccounts, sign/send, inscribeTransfer for token transfers, etc.). A generic “inscribe arbitrary JSON” method is not guaranteed; if unavailable, this page stops at a prepared payload and clear next steps — it never fakes success.
  • Fees? Real Bitcoin inscription fees for permanence. Optional Support and Tap buyback contributions are separate; all proceeds are routed to the Buyback tab (honor-system USDC), not mixed into the free prepare flow.
  • How do I verify? Dual-source Verify compares raw content SHA-256 using Ordinals explorers and performs a Trac Network TAP/DMT index lookup. Use inscription id / txid explorer links for manual checks. Public Trac outages do not block a content match; use the visible Trac REST base URL field on Verify (also stored as localStorage.dmt_trac_rest) and Retry.