ZKStamp Proof-100
Server Details
Shielded proof-of-existence timestamps on BitcoinZ (zk-SNARKs). Free trial: 3 proofs.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ZKStamp/Proof100
- GitHub Stars
- 0
- Server Listing
- Proof-100 MCP Server
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: balance check, fingerprint-based timestamping, and text-based timestamping. The descriptions explicitly clarify when to use timestamp_fingerprint versus timestamp_text, eliminating likely confusion.
All tools use consistent snake_case with a verb_noun pattern: check_balance, timestamp_fingerprint, timestamp_text. The shared timestamp_ prefix is meaningful and predictable.
Three tools are well-scoped for a focused proof-stamping service: check balance and create proofs for two input types. Each tool earns its place without unnecessary surface area.
The surface covers the core lifecycle: checking proof balance and creating timestamped proofs from either a fingerprint or short text. Verification is handled externally via txid plus viewing key, but a native verify tool could make the workflow more self-contained.
Available Tools
3 toolscheck_balanceAInspect
Show how many Proof-100 proofs are left and the BTCZ deposit address for buying more.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the return content (remaining proof count plus a deposit address), which is valuable since there is no output schema, but it says nothing about whether the call is read-only, whether it requires auth, or how the address behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the primary output (remaining count) and adds the secondary one (deposit address) without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, naming both returned values covers most of what an agent needs. The only gap is unstated auth/environment prerequisites, which is minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; nothing about parameter semantics needs explaining.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Show") and the exact two quantities returned: the remaining Proof-100 count and the BTCZ deposit address. The sibling tools (timestamp_fingerprint, timestamp_text) are unrelated, so no disambiguation is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when an agent should call this versus other tools, nor any prerequisites (authentication, wallet setup, or network). Usage must be inferred from the phrase "proofs are left."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timestamp_fingerprintAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fingerprint | Yes | SHA-256 hash of the file, as 64 hexadecimal characters (case-insensitive), e.g. 968c796b7f8c9259ee92d7168d882df2f347d9711a51da90182c98d69139cdb7 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so thoroughly. It discloses the privacy model (encrypted memo in a shielded zk-SNARK transaction), estimated duration of 10 to 60 seconds, consumption of one proof from the account, authentication requirements (account key in Authorization header), the return fields, the need to tell the user to keep txid and viewing_key, and error behavior (no proof is used on failure).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and the sibling distinction, then moves through prerequisites, mechanics, duration, cost, returns, and error handling. It is dense and mostly earns its space, though it is longer than strictly necessary and could consolidate some details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is complete enough for an agent to call the tool correctly: it covers the input format and how to obtain it, authentication, cost, timing, return values, and error behavior. Nothing material appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the fingerprint parameter with a pattern and example. The description still adds meaningful semantic guidance beyond the schema by telling the agent to compute the hash locally over the exact bytes and giving an example command, which helps prevent calls with hashes computed over the wrong data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: it creates a private, dated proof that a file or data existed without sending the data. It also explicitly distinguishes itself from the sibling tool timestamp_text by naming it and describing the condition that selects it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use this when you already have the SHA-256 fingerprint, and use timestamp_text for short text. It also tells the agent how to obtain the hash locally, which is exactly the prerequisite an agent needs before calling the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timestamp_textAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The exact text to timestamp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the text is not stored, the write is private, a viewing key is returned, the key plus txid reveals only this proof, and the operation consumes 1 proof. It could be stronger on irreversibility or failure/insufficient-balance behavior, but the key privacy and cost traits are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly front-loaded: it first states the computation and blockchain write, then the return values, then the key-handling instruction, then the cost. Every sentence adds useful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately explains the return values: fingerprint, transaction ID, and viewing key. It also covers privacy, key usage, and proof cost; only authentication/setup or failure conditions are left unstated, which is a minor gap for this one-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and the schema description coverage is 100%, so the schema already documents 'text' as the exact text to timestamp. The description adds only the qualifier 'short', which is minor context but not a meaningful expansion beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it computes a SHA-256 fingerprint of short text and writes it on the BitcoinZ blockchain. It implicitly distinguishes itself from timestamp_fingerprint by handling raw text rather than an existing fingerprint, but it does not explicitly name or contrast with the sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'short text' and the Proof-100/blockchain workflow, but there is no explicit guidance on when to choose this over timestamp_fingerprint or check_balance. It also does not mention prerequisites such as having a proof available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
timestamp_fingerprint2 fields changed- changed
Input schema / properties / fingerprint / descriptionPrevious value: -"64-character SHA-256 hex string"New value: +"SHA-256 hash of the file, as 64 hexadecimal characters (case-insensitive), e.g. 968c796b7f8c9259ee92d7168d882df2f347d9711a51da90182c98d69139cdb7" - added
Input schema / properties / fingerprint / patternAdded value: +"^[0-9a-fA-F]{64}$"
3 tool updates
- First observed
check_balance - First observed
timestamp_fingerprint - First observed
timestamp_text
Related MCP Connectors
Prove a web page or document existed on a date: public SHA-256 registry anchored in Bitcoin. Free.
Timestamp & verify evidence on-chain, free. Proofpack: a portable BEEF+BUMP proof bundle per txid.
Timestamp files in Bitcoin (OpenTimestamps): send a hash, pay per hash with x402, get a proof.
Stamp or notarize data into a public witnessed transparency log. Proves timing, not truth.
Related MCP Servers
AlicenseAqualityAmaintenanceZero-auth cryptographic notarization and PoE (Proof-of-Existence) layer on the TON Blockchain for AI outputs, smart contract audits, and agreements.41MIT- AlicenseNot gradedqualityAmaintenanceOTrust issues cryptographic PDRs (Provenance Data Records) — proving a digital artifact existed at a specific time. $0.01 per proof. Blockchain-anchored. Publicly verifiable.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to timestamp files in Bitcoin by submitting only their SHA-256 hashes, paying per hash in USDC via x402, and retrieving or verifying OpenTimestamps .ots proofs without an account or API key.MIT
- AlicenseAqualityAmaintenanceStamp, upgrade, and verify Bitcoin timestamps via AI agents using the OpenTimestamps protocol. No API keys required.9114 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.