
Zcash Mcp
io.github.Zk-nd3rPublished by GitHub account Zk-nd3rv0.2.2Updated Oct 24, 2026
Zcash shielded operations for AI agents. Memo decoding, attestation, proof verification.
Overview
ZAP1 attestation and proof-receipt layer for Zcash agent workflows: create attestation leaves, check anchors, verify Merkle proofs and decode memos.
- What you can do
- Create and inspect attestation receipts: build typed leaves, fetch proof bundles, compare claims, audit event logs
- Verify proofs: check Merkle inclusion, v2 receipt bundles, external receipts and EVM on-chain verification
- Query anchor and chain state: anchor history and status, protocol stats, recent events, agent status, block height, transaction lookup
- Set up integrations: capability manifest, receipt templates, wallet-action receipt requests, external-action attestation, receipt invoices
- Decode Zcash memo payloads locally (ZAP1 typed, ZIP 302, text, binary)
- When to use it
- Use it when an agent needs a verifiable receipt around a Zcash-related action, such as an agent action, payment or invoice proof, operator lifecycle event, policy attestation or cross-agent handoff, and a counterparty must verify it later without trusting the original agent. It complements, rather than replaces, a wallet.
- Requirements
- Runs locally over stdio via npx from the npm package. A running Zebra node for chain queries (ZEBRA_RPC_URL, default local endpoint) and the ZAP1 API (ZAP1_API_URL) for attestation, proof, anchor, event and receipt tools. Write operations need an API key in ZAP1_API_KEY; read-only tools work without one. Memo decoding works offline.
Installation
In SourceWeft
- Open Zcash Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
zcash-mcp
[npm] [MCP Registry] [downloads] [license]
ZAP1 receipts for Zcash agents: verify workflows without trusting the server.
ZAP1 is an attestation and proof rail for Zcash workflows. Frontier Compute maintains the reference ZAP1 implementation.
A wrapper makes you trust the server. ZAP1 makes the server unnecessary to trust.
Core rule: observe state, bound the claim, hash evidence, issue a receipt, verify later.
MCP is the standard way for AI agents to call external tools. zcash-mcp
exposes the ZAP1 attestation layer for agents that need verifiable receipts
around Zcash workflows: create ZAP1 attestation leaves, query anchor state,
and verify proof receipts.
This is not a full wallet MCP. Balance scanning, private key custody, seed handling, PCZT signing, shielded spend construction, and lightwalletd or Zaino wallet synchronization are complementary wallet-layer work, not this server's scope.
Why ZAP1
Wallet MCPs can move value. ZAP1 proves the workflow around the value, and the counterparty can verify the proof without trusting Frontier.
Tool servers expose what a backend says right now. ZAP1 produces a receipt that another party can verify later from the schema, proof material, and Zcash anchor.
ZAP1 is the proof rail for Zcash agent workflows:
attest: create a typed event leaf.anchor: commit leaves into a Merkle root anchored to Zcash.prove: return a receipt packet for a leaf.verify: let another party check the receipt without trusting the original agent.
Agent systems need more than a payment or a transaction lookup. They need a receipt that another agent, user, auditor, or service can verify later:
- what event was asserted
- which agent or workflow asserted it
- which ZAP1 leaf records it
- which Merkle root includes it
- which Zcash transaction anchored that root
- how to verify the proof without trusting the original agent
That is the lane for this server. It gives Zcash agents a receipt layer that can sit beside any wallet, signer, custody system, lightwalletd stack, Zaino stack, or application-specific payment flow.
See ZAP1 Proof Rail for the category boundary, receipt model, integration pattern, and red-team rejects. See ZAP1 Conformance for the receipt contract agents and integrations should satisfy. See Wallet Receipt Integration for the wallet-action handoff pattern. See External Rail Receipts for generic external-action receipt requests, and Receipt Disclosure Profiles for public, counterparty, auditor, grant, compliance, and internal packet shapes.
Capability Boundary
The zcash_capability_manifest tool gives agents a machine-readable scope map:
- covered here: ZAP1 receipts, lifecycle attestations, proof verification, anchor state, memo decoding, and public chain context
- excluded here: custody, seed handling, balance scanning, PCZT signing, shielded spend construction, and wallet-server synchronization
- composition rule: use this server before or after wallet-layer actions to create, query, and verify receipts
Good fits:
- agent action receipts
- payment and invoice proof packets
- wallet action receipts
- external action receipts
- operator lifecycle events
- grant proof packets
- compliance audit packets
- policy and reputation attestations
- public anchor verification for private workflows
- cross-agent handoffs where the receiver needs proof, not custody
Poor fits:
- holding keys
- scanning wallet balances
- signing PCZTs
- broadcasting shielded spends
- replacing a wallet SDK
Customer Flow
Use zcash_receipt_template first when you are wiring ZAP1 into a product. It
returns a customer-ready workflow for the receipt type you want:
agent_action: prove an agent performed a named action with specific input and output hashespayment_receipt: bind invoice or payment metadata to a ZAP1 leaf and later prove inclusion under an anchored rootoperator_lifecycle: record deployment, upgrade, incident, recovery, or policy state as a verifiable lifecycle eventpolicy_attestation: record an agent, service, or workflow policy decision as a verifiable event
Expected flow:
- Call
zcash_capability_manifestto confirm the attestation boundary. - Call
zcash_receipt_templatefor the use case. - For wallet actions, call
zap1_wallet_receipt_requestto convert the wallet result into hash-onlyattest_eventarguments. - Call
attest_eventto create the typed ZAP1 leaf. - Call
get_anchor_statusto check whether the leaf is anchored or waiting. - Call
verify_proofto verify tree inclusion. - Call
zap1_prove_receiptto fetch a handoff proof bundle.
Acceptance checks:
- the receipt has a leaf hash
- the leaf verifies under a returned Merkle root
- v2 receipts retain every sibling position and the committed
leaf_count - anchor finality comes from a separately verified root-opening artifact, not txid, height, or status metadata alone
- another verifier can repeat verification without trusting the original agent
- no private keys, seeds, PCZTs, or wallet scan state were sent to this server
Red-team rejects:
- treating a payment URI as proof of payment
- treating an unanchored leaf as final settlement evidence
- treating a quote, route, or intent hash as settlement evidence by itself
- asking this server to sign, scan balances, recover seeds, or hold keys
- mixing custody claims into ZAP1 receipt claims
- hiding the distinction between wallet action and receipt verification
ZAP1 verifies ZAP1 receipts. It does not audit or guarantee any external wallet, route, payment, bridge, exchange, or settlement system referenced by a receipt.
Tools
Install
Or install globally:
Quickstart
Add this to your MCP config:
Restart your client and ask for the current Zcash block height. Read-only tools do not need an API key.
Get a trial key for write operations:
Configuration
Environment variables:
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Any MCP Client
The server communicates over stdio using JSON-RPC. Point your MCP client at the
zcash-mcp binary.
Build From Source
Testing
Offline verification covers the built stdio server and a clean-room install from the packed npm tarball:
Live verification hits a real Zebra RPC and ZAP1 API:
test:live drives the MCP server over stdio and exercises the live tool surface,
not just the underlying HTTP endpoints. Set ZAP1_AGENT_ID if you want the
get_agent_status check to target a specific deployed agent.
GitHub Actions mirrors that split:
.github/workflows/offline-ci.ymlruns deterministic packaging and MCP handshake checks on every push and pull request..github/workflows/live-e2e.ymlruns secret-backed live checks onmain, on a schedule, and by manual dispatch.
Dependencies
- A running Zebra node for chain queries
- The ZAP1 API for attestation, proof, anchor, event, and receipt tools
- Memo decoding works locally with no external dependencies
Related Packages
Links
License
MIT
Source: README.md at commit 5e49844
Tools
0Version history
1- v0.2.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts