{"_id":"zkverify-mcp","_rev":"2-93e6a3d80507f3193811061e7895b821","name":"zkverify-mcp","dist-tags":{"latest":"0.3.2"},"versions":{"0.3.1":{"name":"zkverify-mcp","version":"0.3.1","keywords":["x402","zk","merkle","proof","verify","base","ethereum","mcp","ai-agent"],"author":{"name":"zkVerify"},"license":"MIT","_id":"zkverify-mcp@0.3.1","maintainers":[{"name":"dockfixlab","email":"vipabdellahi@gmail.com"}],"bin":{"zkverify-mcp":"mcp-server.cjs"},"dist":{"shasum":"f0be1cbc95790e157413eb4f402cc408a0195ae2","tarball":"https://registry.npmjs.org/zkverify-mcp/-/zkverify-mcp-0.3.1.tgz","fileCount":27,"integrity":"sha512-2ORQ2FkbUWz3dI6j77yD6ZDMLCHCrNGhrzZ3aPcw7hjKCX8ZEXqfzrfTPMyrKIGfhmXQDx5ie4qzssHgft7PPw==","signatures":[{"sig":"MEQCIGwY4ZQaTwqWUFNOf/44i2TL4v5M7Fstt/G9V2dF7xaCAiBfMhF7k/FhVAU3ncAfzJifiYtsIv4FbOCKW8lNXm+qlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77860},"main":"mcp-server.cjs","type":"module","gitHead":"6434ebb6e282b09c3f04a0371d811df23bf3997a","mcpName":"io.github.dockfixlab/zkverify","scripts":{"dev":"tsx src/index.ts","mcp":"node mcp-server.cjs","test":"echo \"Tests: see ACHIEVEMENT.md\" && exit 0","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"dockfixlab","email":"vipabdellahi@gmail.com"},"_npmVersion":"10.9.4","description":"zkVerify — Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing","directories":{},"_nodeVersion":"22.22.0","dependencies":{"tsx":"^4.19.0","cors":"^2.8.5","dotenv":"^16.4.0","ethers":"^6.13.0","express":"^4.21.0","@x402/evm":"^2.21.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","@x402/fetch":"^2.21.0","@x402/express":"^2.21.0","@types/express":"^5.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zkverify-mcp_0.3.1_1786055438320_0.707663935756147","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"zkverify-mcp","version":"0.3.2","description":"zkVerify — Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing","type":"module","main":"mcp-server.cjs","bin":{"zkverify-mcp":"mcp-server.cjs"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsx src/index.ts","mcp":"node mcp-server.cjs","test":"echo \"Tests: see ACHIEVEMENT.md\" && exit 0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","@types/cors":"^2.8.17","@types/express":"^5.0.0","@types/node":"^22.0.0","@x402/evm":"^2.21.0","@x402/express":"^2.21.0","@x402/fetch":"^2.21.0","cors":"^2.8.5","dotenv":"^16.4.0","ethers":"^6.13.0","express":"^4.21.0","tsx":"^4.19.0","typescript":"^5.7.0"},"mcpName":"io.github.zkarchitect/zkverify","keywords":["x402","zk","merkle","proof","verify","base","ethereum","mcp","ai-agent"],"author":{"name":"zkVerify"},"license":"MIT","_id":"zkverify-mcp@0.3.2","gitHead":"6434ebb6e282b09c3f04a0371d811df23bf3997a","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-nW3TB6cKhjvp/bjFdnWc1pRbwwCmBm37zLXemiLfxeb2/PnrfK7BuuoIPBiczmkL/7rYm+l8l7Q/OnRdg6r/Jg==","shasum":"116e66c89f0c1221fcb0584ab452063f04a18245","tarball":"https://registry.npmjs.org/zkverify-mcp/-/zkverify-mcp-0.3.2.tgz","fileCount":28,"unpackedSize":78701,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHdx/qpWgJKN7YaU3xMnzwkt6tvFDEaeVgXKFMhkDQPYAiBHVLSaSRlCQm0tmEsFEV8t+o74J9H0sCcphGGJvMCGbA=="}]},"_npmUser":{"name":"dockfixlab","email":"vipabdellahi@gmail.com"},"directories":{},"maintainers":[{"name":"dockfixlab","email":"vipabdellahi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zkverify-mcp_0.3.2_1786055773374_0.28336413130867033"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T22:30:38.149Z","modified":"2026-08-06T22:36:13.669Z","0.3.1":"2026-08-06T22:30:38.496Z","0.3.2":"2026-08-06T22:36:13.516Z"},"author":{"name":"zkVerify"},"license":"MIT","keywords":["x402","zk","merkle","proof","verify","base","ethereum","mcp","ai-agent"],"description":"zkVerify — Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing","maintainers":[{"name":"dockfixlab","email":"vipabdellahi@gmail.com"}],"readme":"# zkVerify\n\n**Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing**\n\n[![Live on Railway](https://img.shields.io/badge/Live-Railway-green)](https://zkverify-production.up.railway.app)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)\n\n## Why?\n\nWhen an AI agent pays for blockchain data via x402, how does it know the data is authentic? **It doesn't.** 99% of x402 transactions are at risk (arXiv, July 2026 — 31 vulnerabilities found).\n\nzkVerify solves this: every API response includes a **Merkle proof + ECDSA signature**. The agent can verify independently — zero trust required.\n\n## Endpoints\n\n| Endpoint | Price | Returns |\n|----------|-------|---------|\n| `GET /verify/balance/:address?chain=base` | $0.02 | Account balance + Merkle proof + signature |\n| `GET /verify/contract/:address?chain=base` | $0.02 | Contract code hash + signature |\n| `GET /health` | Free | Service status + signer address |\n| `GET /.well-known/x402` | Free | x402 discovery (Bazaar) |\n\n## Supported Chains\n\n- **Base** (L2 — fallback to eth_getBalance)\n- **Ethereum** (L1 — full eth_getProof / EIP-1186)\n- **Polygon**\n\n## How It Works\n\n1. Agent sends `GET /verify/balance/0xABC...?chain=ethereum`\n2. zkVerify returns HTTP 402 Payment Required\n3. Agent pays $0.02 USDC on Base via x402\n4. zkVerify:\n   a. Fetches `eth_getProof` from RPC\n   b. Verifies Merkle Patricia Proof against stateRoot\n   c. Signs the result with ECDSA\n   d. Returns: `{ balance, blockNumber, stateRoot, merkleProof, signature }`\n5. Agent verifies:\n   a. Signature (recoverAddress)\n   b. Merkle proof locally (optional)\n   c. stateRoot against block header (optional)\n6. Agent now has **100% verified** on-chain data — no trust needed\n\n## Quick Start\n\n### For AI Agents (via x402)\n\n```bash\ncurl https://zkverify-production.up.railway.app/verify/balance/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?chain=ethereum\n# Returns: balance, Merkle proof (9 nodes), ECDSA signature, verified: true\n```\n\n### SDK (Client-side verification)\n\n```typescript\nimport { fullVerify } from \"zkverify\";\n\nconst result = await fetch(\"https://zkverify-production.up.railway.app/verify/balance/0xABC...?chain=ethereum\").then(r => r.json());\nconsole.log(result.fullyVerified); // true = verified 100%\n```\n\n## MCP Server\n\nzkVerify includes an MCP server with 3 tools for Claude/Cursor:\n\n```json\n{\n  \"mcpServers\": {\n    \"zkverify\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"zkverify-mcp\"],\n      \"env\": {\n        \"ZKVERIFY_URL\": \"https://zkverify-production.up.railway.app\"\n      }\n    }\n  }\n}\n```\n\n## Architecture\n\n- **Merkle Patricia Proof**: EIP-1186 `eth_getProof` from Ethereum L1\n- **ECDSA Signing**: Every response signed with secp256k1\n- **x402 Payment**: $0.02 USDC on Base\n- **Zero Trust**: Agent needs no trusted oracle — just math\n\n## Costs\n\n- $0 startup cost\n- Free RPC (PublicNode, Alchemy free tier)\n- x402 facilitator: free for first 1,000 transactions/day\n- Margin: 99% (after $0.001 facilitator fee)\n\n## Patent (Pending)\n\n**Title**: \"System and method for providing cryptographically verifiable API responses using Merkle proofs and ECDSA signatures over HTTP payment protocols\"\n\nSee [`patent/USPTO_PROVISIONAL.md`](patent/USPTO_PROVISIONAL.md)\n\n## ZK Circuit (Level 2)\n\nA simplified circom circuit (~202 constraints) proves that verification was performed correctly without revealing proof data.\n\nSee [`circuits/zkverify.circom`](circuits/zkverify.circom)\n\n## License\n\nMIT — free to use, modify, and distribute. Attribution appreciated.\n\n## Links\n\n- **Live**: https://zkverify-production.up.railway.app\n- **GitHub**: https://github.com/zkarchitect/zkverify\n- **Health**: https://zkverify-production.up.railway.app/health\n- **Discovery**: https://zkverify-production.up.railway.app/.well-known/x402\n\n---\n\nBuilt with ZKForge — the first x402 service providing cryptographically verifiable blockchain data.\n","readmeFilename":"readme.md"}