ZKStamp Proof-100

io.github.ZKStampPublished by GitHub account ZKStampv0.2.0Updated Oct 29, 2026

Shielded proof-of-existence timestamps on BitcoinZ (zk-SNARKs). Free trial: 3 proofs.

The publisher's own server: Proof Holdings

VerifiedStreamable HTTPWeb executableFinanceSecurity & Monitoring

Overview

AI-generated overview

Remote MCP server that writes SHA-256 fingerprints to the BitcoinZ blockchain as shielded, dated proof-of-existence timestamps.

What you can do
  • Timestamp a SHA-256 fingerprint of a file you hashed locally, returning a transaction ID and viewing key
  • Hash a short text on the server and timestamp the resulting fingerprint, without storing the text
  • Check how many proofs remain on the account and get the shielded and transparent BTCZ deposit addresses for buying more
When to use it
Useful when you need a dated, third-party-verifiable record that a file or text existed at a point in time, without publishing its contents. Suits agents or users who already hold BTCZ or want to try the free trial proofs.
Requirements
Remote streamable HTTP endpoint; no local install. Requires a Proof-100 account key (starts with p100_) sent as an Authorization bearer header. New accounts get 3 free proofs; more proofs cost 500,000 BTCZ per 100, paid in BTCZ to a deposit address. Verifying proofs later needs a synced BitcoinZ node, Python 3 and the ZCheck script.
Before you install
The account key is a secret sent in the Authorization header; it is shown once and must be saved. Buying proofs costs BTCZ and involves real cryptocurrency payments. The operator's server receives the fingerprint, and for text timestamping the text itself, though it says it does not log or store them. Each proof's viewing key must be kept, or the proof cannot be revealed. Shielded privacy relies on zk-SNARKs, which are not post-quantum, and BitcoinZ is a small chain with thin liquidity. A…

Installation

In SourceWeft

  1. Open ZKStamp Proof-100 in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ZKStamp%2Fproof100/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "zkstamp-proof-100": {
      "type": "http",
      "url": "https://proof.zketernity.app/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

ZKStamp · Proof-100

Stamp it with Z. Before Q.

🎬 Watch the 60-second demo: an AI agent stamps an idea, then ZCheck says VALID, and NOT VALID with one letter changed

Proof-100 writes the SHA-256 fingerprint of any file to the BitcoinZ blockchain in a shielded (zk-SNARK) transaction. You get a dated proof that the file existed, and nobody on the blockchain can see the fingerprint or who made it.

  • ZKStamp is the brand.
  • Proof-100 is what you buy: a pack of 100 proofs.
  • ZCheck is how you check: a small script that verifies a proof on your own BitcoinZ node.

Service: https://proof.zketernity.app · For AI agents: /llms.txt


How it works

  1. You send a fingerprint (SHA-256, 64 hex characters). Your file never leaves your machine.
  2. The server writes PROOF100 sha256:<fingerprint> into the encrypted memo of a shielded BitcoinZ transaction, sent to a brand-new address made for this one proof.
  3. You get back the transaction ID and that address's viewing key.
  4. The block's timestamp dates your proof.
  5. To prove it later, give someone the transaction ID + viewing key. With ZCheck, they read the fingerprint straight from the blockchain and compare it with your file. They see this one proof and nothing else.

Keep your viewing key. Without it, that proof cannot be revealed.


Quick start (API)

Base URL: https://proof.zketernity.app

1. Create an account (your key is shown once, so save it):

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

Returns key (starts with p100_), deposit_address (shielded, zs) and t_deposit_address (transparent, t).

Free trial: new accounts get 3 free proofs, no payment needed (limited to 13 new trial accounts per day, until 27 November 2026). The response shows free_proofs.

2. Buy proofs: send 500,000 BTCZ to either address, or split it across both. After 2 confirmations, 100 proofs are credited automatically.

  • deposit_address (zs): fully private payment. Paying to the zs address? Use Z-TEXT or a full-node wallet. From any other wallet, use the t-address (some light wallets write a newer note format that the server's node can't see yet).
  • t_deposit_address (t): for exchanges and t-only wallets like Coinomi. Your payment is visible on the blockchain, but your proofs stay fully shielded. The server moves these coins to the shielded side by itself (the operator pays that 0.0001 BTCZ fee).

3. Check your balance:

bash
curl -s https://proof.zketernity.app/v1/balance -H "Authorization: Bearer YOUR_KEY"

4. 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. A proof takes about 10 to 60 seconds.

The key is accepted as Authorization: Bearer <key> (with or without the space) or as X-API-Key: <key>.


For AI agents (MCP)

Proof-100 speaks MCP at:

https://proof.zketernity.app/mcp

Tools:

ToolWhat it does
timestamp_fingerprintTimestamp a SHA-256 fingerprint. Returns txid + viewing key.
timestamp_textThe server hashes a short text (the text is not stored) and timestamps the fingerprint.
check_balanceProofs left and your deposit address.

In Claude: add a custom connector with that URL, choose no sign-in, and add the request header Authorization = Bearer YOUR_KEY.


Verify a proof with ZCheck

You need a synced BitcoinZ node, Python 3, the original file, the txid and the viewing key.

bash
python3 zcheck/ZCheck.py --txid <txid> --viewing-key <zxviews...> --file MyFile.pdf

Answers:

  • VALID: this exact fingerprint was written on the BitcoinZ blockchain in block N, on <date> UTC
  • NOT VALID: ... holds a different fingerprint (the file was changed)

The first run scans the chain from block 1,862,000 for that viewing key, which can take a few minutes. Options: --cli (path to bitcoinz-cli), --datadir, --start-height, or --fingerprint instead of --file.


Price

500,000 BTCZ for 100 proofs, paid in BTCZ only. No card, no email, no account name. One proof costs 5,000 BTCZ: a fraction of the price of a €2 coffee. ☕

Coming from an exchange, or from a wallet that only sends to t-addresses (like Coinomi)? Pay your t_deposit_address directly. For a fully private payment, send your BTCZ to the free Z-TEXT wallet first: it shields them automatically. Then pay from Z-TEXT to your zs deposit address.

Questions, or no BTCZ yet? Write to [email protected]. We'll help you find where to get BTCZ.


Trust model and honest limits

  • What the blockchain hides: the fingerprint, the addresses and the amounts are inside a shielded transaction. Block explorers show only that a transaction exists.
  • What the server sees: the operator's server receives your fingerprint (and, for timestamp_text, your text) when you submit it. It does not log fingerprints or texts, and it does not store which proof belongs to which account. You can read the code in this repository.
  • One operator, one server: if the server is down, no new proofs can be made. Existing proofs stay on the blockchain and remain verifiable with ZCheck on any BitcoinZ node.
  • Quantum: the SHA-256 fingerprint and its date are expected to hold up well against quantum computers. The privacy of shielded transactions relies on today's zk-SNARK cryptography, which is not post-quantum. A future quantum computer could, in theory, read old memos, which would reveal fingerprints (never files).
  • BitcoinZ is a small chain with thin trading volume. Factor that in for high-stakes uses.

Self-hosting

  • server/: the code that runs the service (Python 3, Flask).
    • Proof100Core.py: accounts, payment watch, making proofs
    • Proof100Api.py: REST API and MCP endpoint (listens on 127.0.0.1:5100)
    • CheckPayments.py, CreateAccount.py, HealthCheck.py
    • GrantProofs.py: operator tool, creates an account with free proofs (for testers)
  • deploy/: example systemd units, nginx site and config templates.
  • zcheck/ZCheck.py: the verifier.

Requirements: a synced BitcoinZ node (2.3.1 or later) with a funded shielded address, Python 3 with flask and requests, and nginx with a TLS certificate. Never commit Proof100Config.json, the database, or any key.


Related

I Am Wallet: shielded BitcoinZ wallets for AI agents, same operator. Agents pay and send private messages to each other, by themselves (llms.txt).


Contact

[email protected] (Z-TEXT LLC)


License

MIT. See LICENSE.

Source: README.md at commit f200939

Tools

3

timestamp_fingerprint

Create a private, dated proof that a file or data existed, without sending the data. Use this when you already have the SHA-256 fingerprint (hash) of a file; for a short text, use timestamp_text instead. Compute the hash locally over the exact bytes (for example: sha256sum MyFile.pdf) and pass the 64-character hex string. The fingerprint is written into the encrypted memo of a shielded (zk-SNARK) BitcoinZ transaction, sent to a new address made for this proof only; the block timestamp dates it. Takes about 10 to 60 seconds and uses 1 proof from the account (requires the account key in the Authorization header). Returns ok, txid, viewing_key, explorer link and proofs_left. Tell the user to keep the txid and viewing_key: together they let anyone verify this one proof with ZCheck, and reveal nothing else. On error (invalid fingerprint, invalid key, no proofs left, send failed) no proof is used.

Parametersfingerprintrequired

timestamp_text

Compute the SHA-256 fingerprint of a short text on the Proof-100 server (the text is not stored), then write that fingerprint privately on the BitcoinZ blockchain. Returns the fingerprint, the transaction ID and a viewing key for this one proof. Keep the viewing key: with the txid it reveals this proof only. Uses 1 proof.

Parameterstextrequired

check_balance

Show how many Proof-100 proofs are left and the two BTCZ deposit addresses for buying more: deposit_address (shielded zs, fully private) and t_deposit_address (transparent, for exchanges and t-only wallets like Coinomi; the payment is visible on the blockchain, the proofs stay shielded). 500,000 BTCZ to either (or both together) = 100 proofs after 2 confirmations.

Takes no parameters.

Version history

1
  1. v0.2.0LatestOct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Proof integrations