ZkVerify
FreeNot checkedEnables AI agents to fetch and independently verify on-chain data such as account balances and contract code hashes using Merkle proofs and ECDSA signatures, wi
About
Enables AI agents to fetch and independently verify on-chain data such as account balances and contract code hashes using Merkle proofs and ECDSA signatures, with x402 payment integration.
README
Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing
Why?
When 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).
zkVerify solves this: every API response includes a Merkle proof + ECDSA signature. The agent can verify independently — zero trust required.
Endpoints
| Endpoint | Price | Returns |
|---|---|---|
GET /verify/balance/:address?chain=base |
$0.02 | Account balance + Merkle proof + signature |
GET /verify/contract/:address?chain=base |
$0.02 | Contract code hash + signature |
GET /health |
Free | Service status + signer address |
GET /.well-known/x402 |
Free | x402 discovery (Bazaar) |
Supported Chains
- Base (L2 — fallback to eth_getBalance)
- Ethereum (L1 — full eth_getProof / EIP-1186)
- Polygon
How It Works
- Agent sends
GET /verify/balance/0xABC...?chain=ethereum - zkVerify returns HTTP 402 Payment Required
- Agent pays $0.02 USDC on Base via x402
- zkVerify:
a. Fetches
eth_getProoffrom RPC b. Verifies Merkle Patricia Proof against stateRoot c. Signs the result with ECDSA d. Returns:{ balance, blockNumber, stateRoot, merkleProof, signature } - Agent verifies: a. Signature (recoverAddress) b. Merkle proof locally (optional) c. stateRoot against block header (optional)
- Agent now has 100% verified on-chain data — no trust needed
Quick Start
For AI Agents (via x402)
curl https://zkverify-production.up.railway.app/verify/balance/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?chain=ethereum
# Returns: balance, Merkle proof (9 nodes), ECDSA signature, verified: true
SDK (Client-side verification)
import { fullVerify } from "zkverify";
const result = await fetch("https://zkverify-production.up.railway.app/verify/balance/0xABC...?chain=ethereum").then(r => r.json());
console.log(result.fullyVerified); // true = verified 100%
MCP Server
zkVerify includes an MCP server with 3 tools for Claude/Cursor:
{
"mcpServers": {
"zkverify": {
"command": "npx",
"args": ["-y", "zkverify-mcp"],
"env": {
"ZKVERIFY_URL": "https://zkverify-production.up.railway.app"
}
}
}
}
Architecture
- Merkle Patricia Proof: EIP-1186
eth_getProoffrom Ethereum L1 - ECDSA Signing: Every response signed with secp256k1
- x402 Payment: $0.02 USDC on Base
- Zero Trust: Agent needs no trusted oracle — just math
Costs
- $0 startup cost
- Free RPC (PublicNode, Alchemy free tier)
- x402 facilitator: free for first 1,000 transactions/day
- Margin: 99% (after $0.001 facilitator fee)
Patent (Pending)
Title: "System and method for providing cryptographically verifiable API responses using Merkle proofs and ECDSA signatures over HTTP payment protocols"
See patent/USPTO_PROVISIONAL.md
ZK Circuit (Level 2)
A simplified circom circuit (~202 constraints) proves that verification was performed correctly without revealing proof data.
License
MIT — free to use, modify, and distribute. Attribution appreciated.
Links
- Live: https://zkverify-production.up.railway.app
- GitHub: https://github.com/zkarchitect/zkverify
- Health: https://zkverify-production.up.railway.app/health
- Discovery: https://zkverify-production.up.railway.app/.well-known/x402
Built with ZKForge — the first x402 service providing cryptographically verifiable blockchain data.
Installing ZkVerify
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/zkarchitect/zkverifyFAQ
Is ZkVerify MCP free?
Yes, ZkVerify MCP is free — one-click install via Unyly at no cost.
Does ZkVerify need an API key?
No, ZkVerify runs without API keys or environment variables.
Is ZkVerify hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install ZkVerify in Claude Desktop, Claude Code or Cursor?
Open ZkVerify on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare ZkVerify with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
