Back to Browse

Zkverify MCP Server

Developer ToolsUse Caution3.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Cryptographically verifiable blockchain data with Merkle proofs + ECDSA signing.

About

Cryptographically verifiable blockchain data with Merkle proofs + ECDSA signing.

Security Report

3.2
Use Caution3.2High Risk

zkVerify is a blockchain verification service with legitimate cryptographic functionality, but has several security and code quality concerns that warrant attention. The main issues are: (1) overly permissive fallback payment verification allowing unauthenticated access in dev mode, (2) private key storage concerns and credential exposure risks, (3) insufficient input validation on blockchain calls, and (4) error handling that may leak sensitive information. Permissions are appropriate for the stated purpose, but the implementation has gaps that could allow unauthorized access or data leakage. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue (1 critical, 0 high severity).

7 files analyzed · 17 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

Unverified package source

We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.

What You'll Need

Set these up before or after installing:

zkVerify service URL (optional, defaults to https://zkverify-production.up.railway.app)Optional

Environment variable: ZKVERIFY_URL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-zkarchitect-zkverify": {
      "env": {
        "ZKVERIFY_URL": "your-zkverify-url-here"
      },
      "args": [
        "-y",
        "zkverify"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

zkVerify

Trustless blockchain verification over x402 with Merkle proofs + ECDSA signing

Live on Railway License: MIT

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

EndpointPriceReturns
GET /verify/balance/:address?chain=base$0.02Account balance + Merkle proof + signature
GET /verify/contract/:address?chain=base$0.02Contract code hash + signature
GET /healthFreeService status + signer address
GET /.well-known/x402Freex402 discovery (Bazaar)

Supported Chains

  • Base (L2 — fallback to eth_getBalance)
  • Ethereum (L1 — full eth_getProof / EIP-1186)
  • Polygon

How It Works

  1. Agent sends GET /verify/balance/0xABC...?chain=ethereum
  2. zkVerify returns HTTP 402 Payment Required
  3. Agent pays $0.02 USDC on Base via x402
  4. zkVerify: a. Fetches eth_getProof from RPC b. Verifies Merkle Patricia Proof against stateRoot c. Signs the result with ECDSA d. Returns: { balance, blockNumber, stateRoot, merkleProof, signature }
  5. Agent verifies: a. Signature (recoverAddress) b. Merkle proof locally (optional) c. stateRoot against block header (optional)
  6. 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_getProof from 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.

See circuits/zkverify.circom

License

MIT — free to use, modify, and distribute. Attribution appreciated.

Links


Built with ZKForge — the first x402 service providing cryptographically verifiable blockchain data.

Reviews

No reviews yet

Be the first to review this server!