DEV Community

Cover image for Shielded timestamps for AI agents: proof of existence on BitcoinZ via MCP
ztext_zksnarks
ztext_zksnarks

Posted on Edited on Originally published at z-text.org

Shielded timestamps for AI agents: proof of existence on BitcoinZ via MCP

Public blockchain timestamps have a quiet problem: the fingerprint is public too. Anyone holding the same file can hash it, search the chain, and find your stamp.

So we built ZKStamp Proof-100: the SHA-256 fingerprint goes into the encrypted memo of a shielded (zk-SNARK) transaction on the BitcoinZ blockchain. The block dates it. Nobody can see what's inside until you reveal it, one proof at a time. And it speaks MCP, so an AI agent can stamp in one sentence.

Here's the 60-second demo, a real run from 27 October 2026:

How it works
You compute the SHA-256 fingerprint locally. The file never leaves your machine.
The server writes PROOF100 sha256: into the encrypted memo of a shielded transaction, sent to a brand-new address made for that one proof.
You get back the txid and that address's viewing key.
To reveal one proof, share its txid + viewing key. That reveals this proof and nothing else.
Anyone verifies it with ZCheck on their own BitcoinZ node. No need to trust the operator.
For AI agents (MCP)
https://proof.zketernity.app/mcp

Three tools:

Tool What it does
timestamp_fingerprint Timestamp a SHA-256 fingerprint. Returns txid + viewing key.
timestamp_text The server hashes a short text (not stored) and timestamps it.
check_balance Proofs left and your deposit address.

In Claude: add a custom connector with that URL and the header Authorization: Bearer YOUR_KEY. Then:

Use Proof-100 to timestamp this text: My secret invention idea: a lock that opens with a song.

There's also an llms.txt so agents can read what the service does.

REST API

Create an account (the key is shown once):

bash
curl -s -X POST https://proof.zketernity.app/v1/account

You get a key (starts with p100_) and a deposit_address. Send 500,000 BTCZ to it; after 2 confirmations, 100 proofs are credited automatically.

Make a proof:

bash
FP=$(sha256sum MyFile.pdf | cut -d' ' -f1)
curl -s -X POST https://proof.zketernity.app/v1/proof \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d "{\"fingerprint\": \"$FP\"}"

Returns txid, viewing_key and proofs_left. Takes about 10 to 60 seconds.

Verify with ZCheck
bash
python3 zcheck/ZCheck.py --txid --viewing-key --file MyFile.pdf

From the demo:

VALID: this exact fingerprint was written on the BitcoinZ blockchain
in block 1862988, on 27 October 2026, 09:33 UTC (11 confirmations).

Change one letter in the file:

NOT VALID: the proof exists (block 1862988, 27 October 2026, 09:33 UTC)
but holds a different fingerprint.

Under the hood, ZCheck imports the viewing key into your node (z_importviewingkey), reads the transaction with z_viewtransaction, and compares the memo with your file's hash.

Design choices
One address per proof. Revealing one proof never exposes your others.
No file storage, no fingerprint log. The server doesn't store which proof belongs to which account.
Pay in BTCZ only. No card, no email, no account name.
Honest limits
The server sees the fingerprint (and the text, for timestamp_text) when you submit it.
One operator, one server. If it's down, no new proofs. Existing proofs stay verifiable on any BitcoinZ node.
Block dates are approximate (think "that hour", not "that second").
BitcoinZ is a small chain with thin volume and concentrated mining. For high-stakes proofs, wait for many confirmations.
Quantum: the SHA-256 date should hold up well. The zk-SNARK privacy layer is not post-quantum; a future quantum computer could in theory read old memos (fingerprints, never files). Hence the slogan: Stamp it with Z. Before Q.
Blockchain timestamping isn't new: OriginStamp did it on Bitcoin back in 2015. What's different here is the shielding and the agent-first interface.
Code

Everything is MIT, server included: github.com/ZKStamp/Proof100

Questions, or no BTCZ yet? contact@z-text.com. Feedback and hard questions welcome in the comments.

Top comments (1)

Collapse
 
ztext_zksnarks profile image
ztext_zksnarks •

Code

Everything is MIT, server included: github.com/ZKStamp/Proof100

Questions, or no BTCZ yet? contact@z-text.com. Feedback and hard questions welcome in the comments.