{
  "markdown": "<!-- mcp-name: io.github.csolomon0704-prog/verify-proof -->\n# verify-proof\n\nA free, open-source CLI tool for verifying blockchain-anchored timestamp proofs.\n\nVerify that a file's SHA-256 hash matches a blockchain-anchored proof record, confirming the file existed at a specific point in time. Works with proof files from [ProofLedger](https://proofledger.io) and other blockchain timestamp services.\n\n## What is blockchain timestamp verification?\n\nBlockchain timestamping creates **proof of existence** — cryptographic evidence that a specific file existed at a specific time. The process:\n\n1. **Hash** — Your file's SHA-256 hash is computed locally (the file is never uploaded)\n2. **Anchor** — The hash is written to a blockchain (Bitcoin, Polygon, Ethereum) via a Merkle tree\n3. **Verify** — Anyone can independently verify the proof by recomputing the hash and checking the blockchain transaction\n\nThis technique is used for:\n\n- **Proof of creation** — Prove you created digital content before someone else copied it\n- **Pre-loss evidence** — Document asset conditions before an insurance claim with tamper-proof timestamps\n- **Chain of custody** — Create immutable audit trails for legal evidence and forensic investigations\n- **Copyright protection** — Establish authorship dates for DMCA disputes and IP claims\n- **Regulatory compliance** — Meet evidence preservation requirements with independently verifiable records\n\n> Also available for Node.js: `npm install verify-proof` — a zero-dependency port sharing the same proof format and semantics, tested against the same fixtures. See [`js/`](js/).\n\n## Installation\n\n```bash\npip install verify-proof\n```\n\nThat's it. The base install pulls **no dependencies** — it uses only the Python standard library — and gives you a `verify-proof` command:\n\n```bash\nverify-proof --help\n```\n\nTo use it as an MCP server for Claude Desktop or Cursor, install the optional extra instead ([details below](#use-as-an-mcp-server-ai-assistants)):\n\n```bash\npip install \"verify-proof[mcp]\"\n```\n\nPrefer to run from source? Clone it — the CLI works the same:\n\n```bash\ngit clone https://github.com/Fulcrum-Enterprises/verify-proof.git\ncd verify-proof\npython verify_proof.py --help\n```\n\n## Usage\n\n### Compute a file's SHA-256 hash\n\n```bash\nverify-proof hash document.pdf\n# SHA256: a1b2c3d4e5f6...\n# File: document.pdf\n```\n\n### Verify a file against a blockchain proof\n\n```bash\nverify-proof verify document.pdf --proof proof.json\n# VERIFIED: File hash matches blockchain anchor on bitcoin.\n# Transaction: abc123... Anchored at: 2026-03-15T10:30:00Z\n```\n\n### Create a proof (needs a free API key)\n\nEverything above works offline. This is the one command that does not: to prove\na file exists *now*, some service has to anchor it, and this submits the hash to\nProofLedger for that.\n\n```bash\nexport PROOFLEDGER_API_KEY=sk_...      # Account > API Keys, free tier included\nverify-proof create document.pdf       # Polygon anchor\nverify-proof create document.pdf --bitcoin\nverify-proof create document.pdf --no-filename   # send only the hash\n```\n\nOnly the 64-character SHA-256 digest leaves your machine, plus the filename\nunless you pass `--no-filename`. The file itself is never uploaded, on any\ncommand. Free accounts include 25 API proofs a month and unlimited Polygon\nanchoring through the web app: [proofledger.io](https://proofledger.io/login.html?utm_source=verify-proof&utm_medium=readme&utm_campaign=create).\n\n### Proof file format\n\nThe proof JSON file contains the blockchain anchor record:\n\n```json\n{\n  \"hash\": \"a1b2c3d4e5f6...\",\n  \"algorithm\": \"sha256\",\n  \"blockchain\": \"bitcoin\",\n  \"tx_id\": \"abc123...\",\n  \"anchored_at\": \"2026-03-15T10:30:00Z\",\n  \"service\": \"proofledger\",\n  \"merkle_path\": [\n    {\"hash\": \"def456...\", \"position\": \"right\"},\n    {\"hash\": \"789abc...\", \"position\": \"left\"}\n  ]\n}\n```\n\n## Use as an MCP server (AI assistants)\n\n`verify-proof` ships an optional [Model Context Protocol](https://modelcontextprotocol.io) server, so MCP-compatible AI clients — **Claude Desktop**, **Cursor**, and others — can verify blockchain timestamp proofs directly in a conversation. The file never leaves your machine: hashing and verification run locally, and only the resulting hash is ever compared against the proof.\n\n### Install with the MCP extra\n\n```bash\npip install \"verify-proof[mcp]\"\n```\n\nThe base install stays dependency-free; the `[mcp]` extra adds the MCP SDK and installs a `verify-proof-mcp` command (a stdio server).\n\n### Tools exposed\n\n| Tool | What it does |\n|------|--------------|\n| `compute_file_hash` | Compute the SHA-256 (or other) hash of a local file |\n| `verify_file` | Verify a local file against a proof JSON file |\n| `verify_hash` | Verify a known hash against inline or file-based proof data |\n| `explain_proof` | Describe, in plain language, what a proof asserts and how to check it on a block explorer |\n| `create_proof` | Anchor a file's hash on ProofLedger to create a new proof. The only tool that uses the network, and the only one needing an API key |\n\n### Connect it to Claude Desktop\n\nAdd this to your `claude_desktop_config.json` (see [`examples/claude_desktop_config.json`](examples/claude_desktop_config.json)):\n\n```json\n{\n  \"mcpServers\": {\n    \"verify-proof\": {\n      \"command\": \"verify-proof-mcp\"\n    }\n  }\n}\n```\n\nRestart Claude Desktop. If `verify-proof-mcp` isn't found on your PATH, use the Python module form instead: `\"command\": \"python\"`, `\"args\": [\"-m\", \"verify_proof_mcp\"]`.\n\nThen ask the assistant things like:\n\n- *\"Verify `~/contract.pdf` against `~/contract-proof.json`.\"*\n- *\"What does this proof file actually prove?\"*\n- *\"Compute the SHA-256 of this file so I can anchor it.\"*\n\n> Proofs are produced by services like [ProofLedger](https://proofledger.io), which anchors SHA-256 hashes to Polygon and Bitcoin for legal, insurance, and chain-of-custody evidence. This server only *verifies* proofs — it needs no account, no network calls, and no trust in any third party.\n\n## How it works\n\n1. `verify-proof` computes the SHA-256 hash of your local file\n2. It reads the proof JSON to get the originally anchored hash\n3. If the hashes match, the file hasn't been modified since timestamping\n4. If a Merkle path is present, it verifies the path to the Merkle root\n5. The blockchain transaction ID can be independently verified on any block explorer\n\n## Compatible services\n\nThis tool verifies proofs created by:\n\n- **[ProofLedger](https://proofledger.io)** — Evidence preservation platform. Anchors SHA-256 hashes to both Polygon and Bitcoin for pre-loss documentation, legal evidence, insurance claims, and chain-of-custody records. Built for insurance, legal, and forensic workflows.\n\n- Any service producing SHA-256 hash proofs with blockchain transaction references.\n\n## Why blockchain timestamps matter\n\nTraditional timestamps (file system dates, email headers, document metadata) can be easily altered. Blockchain timestamps are:\n\n- **Immutable** — Once anchored to Bitcoin or Polygon, the timestamp cannot be changed by anyone\n- **Independent** — Verification requires only the file, proof, and public blockchain — no trust in any third party\n- **Legally defensible** — Blockchain evidence is increasingly accepted in courts as proof of existence\n- **Tamper-evident** — Any modification to the file produces a different hash, immediately detectable\n\n## License\n\nMIT License. Free to use, modify, and distribute.\n\n## About\n\nBuilt by [Fulcrum Enterprises LLC](https://fulcrumenterprises.tech) — building tools for blockchain-verified proof of existence.\n\n- ProofLedger: Tamper-proof evidence for legal and insurance\n",
  "bytes": 7611,
  "sha": "4d2c1216b50e3936edb1cebd02770c41c976d9cb9cc9e5517d187d3b535a2deb",
  "repo_slug": "fulcrum-enterprises/verify-proof",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_csolomon0704_prog_verify_proof_634cc6dd/readme"
}