# ZKStamp Proof-100

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

- name: io.github.ZKStamp/proof100
- version: 0.2.0
- connection class: R1 (autonomous)
- trust: 97/100
- quality: 68/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.ZKStamp%2Fproof100
- tools: https://api.protogrid.dev/v1/servers/io.github.ZKStamp%2Fproof100/tools

**An agent can connect on its own if it already holds `PROOF100_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "proof100": {
      "type": "http",
      "url": "https://proof.zketernity.app/mcp",
      "headers": {
        "Authorization": "Bearer ${PROOF100_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${PROOF100_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 99
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-98% +updated-11d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 68/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: timestamp_fingerprint (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); timestamp_text (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check_balance (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
- pass `tools.token_cost`: about 523 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 2 tool changes in 30 days
- fail `stability.rug_pull`: 2 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 523 tokens to load them all
- tool set hash: ba65efef2c8fc87b023acde0d17f2d12
- tools last changed: 2026-10-29T18:15:55.543Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.ZKStamp/proof100.svg)](https://protogrid.dev/servers/io.github.ZKStamp/proof100)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-29 `check_balance` changed (description) **meaning changed**
  - before: Show how many Proof-100 proofs are left and the BTCZ deposit address for buying more.
  - after: 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.
- 2026-10-27 `timestamp_fingerprint` changed (description, inputSchema) **meaning changed**
  - before: Write a SHA-256 fingerprint privately (shielded, zk-SNARKs) on the BitcoinZ blockchain. Returns the transaction ID and a viewing key for this one proof. Keep both: together they let anyone you choose verify this proof, and nothing else. Uses 1 Proof-100 proof.
  - after: 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.

Full history: https://api.protogrid.dev/v1/servers/io.github.ZKStamp%2Fproof100/changes

## Remotes

- https://proof.zketernity.app/mcp (streamable-http, auth api_key ${PROOF100_TOKEN}, reachable true, uptime30d 0.97727275)

## Packages

_none_

## Tools (3)

- `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.
- `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.
- `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.
