Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add LuuOW/meridian-mcp --skill zero-knowledge-proofsgit clone --depth 1 https://github.com/LuuOW/meridian-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/luuow/meridian-mcp/zero-knowledge-proofs)<a href="https://agentmods.dev/skills/luuow/meridian-mcp/zero-knowledge-proofs"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/zero-knowledge-proofs/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/luuow/meridian-mcp/zero-knowledge-proofs"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/zero-knowledge-proofs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00070 | $0.02158 |
| Opus 5 | $0.00035 | $0.01079 |
| Sonnet 5 | $0.00014 | $0.00432 |
| Haiku 4.5 | $0.00007 | $0.00216 |
Grade A, and why
zero-knowledge-proofs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 188 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Zero-Knowledge Proofs
Deep authority on ZK proof system design and implementation: circuit authoring in Circom and Halo2, proof generation and on-chain verification, system tradeoffs (Groth16 vs PLONK vs STARKs), and ZK rollup architectures. Use this skill when building ZK circuits, integrating provers into applications, or reasoning about ZK-EVM equivalence levels.
Core Concepts
Proof System Tradeoffs
| System | Setup | Proof Size | Verify Time | Recursive | Quantum-safe |
|---|---|---|---|---|---|
| Groth16 | Trusted (per-circuit) | ~200 bytes | ~1ms (on-chain ~200k gas) | With difficulty | No |
| PLONK | Trusted (universal) | ~1-2 KB | ~2ms | Yes (via IVC) | No |
| STARKs | Transparent | ~50-200 KB | ~10ms | Yes | Yes |
| Halo2 | Transparent | ~1-5 KB | Fast | Yes (accumulation) | No |
Groth16 dominates when proof size and on-chain verification cost are paramount and the circuit is stable (Tornado Cash, Semaphore). PLONK/UltraPLONK is preferred for systems needing a single trusted setup across many circuits. STARKs are mandatory when quantum resistance is required or a trusted setup is politically impossible (Starknet).
Circom Circuit Authoring
Circom compiles to R1CS (Rank-1 Constraint System). Every computation must be expressed as quadratic constraints a * b = c.
pragma circom 2.1.6;
include "node_modules/circomlib/circuits/poseidon.circom";
include "node_modules/circomlib/circuits/comparators.circom";
// Prove knowledge of a preimage that hashes to a public commitment
// without revealing the preimage
template PrivateSetMembership(DEPTH) {
// Public inputs
signal input root;
signal input nullifierHash;
signal input recipient;
// Private inputs
signal input secret;
signal input nullifier;
signal input pathElements[DEPTH];
signal input pathIndices[DEPTH];
// Recompute the leaf commitment
component leafHasher = Poseidon(2);
leafHasher.inputs[0] <== nullifier;
leafHasher.inputs[1] <== secret;
// Nullifier hash to prevent double-spend
component nullifierHasher = Poseidon(1);
nullifierHasher.inputs[0] <== nullifier;
nullifierHasher.out === nullifierHash; // constrain public output
// Merkle path verification
component hashers[DEPTH];
signal levelHashes[DEPTH + 1];
levelHashes[0] <== leafHasher.out;
for (var i = 0; i < DEPTH; i++) {
hashers[i] = Poseidon(2);
// pathIndices[i] must be 0 or 1 — enforce binary
pathIndices[i] * (1 - pathIndices[i]) === 0;
// Left/right ordering determined by path index
hashers[i].inputs[0] <== (1 - pathIndices[i]) * levelHashes[i] + pathIndices[i] * pathElements[i];
hashers[i].inputs[1] <== pathIndices[i] * levelHashes[i] + (1 - pathIndices[i]) * pathElements[i];
levelHashes[i + 1] <== hashers[i].out;
}
root === levelHashes[DEPTH];
}
component main {public [root, nullifierHash, recipient]} = PrivateSetMembership(20);
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 188 lines · 70 tokens per session scan A 84657a1baf58
zero-knowledge-proofs is a skill published in the GitHub repository LuuOW/meridian-mcp (0 stars, last pushed yesterday), licensed MIT. It adds 70 tokens to every session and 2,158 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
zk-proofs
Zero-knowledge proofs and privacy patterns on Stellar. Covers Groth16 verification via BLS12-381 host functions (CAP-0059), Circom (on-chain verifiable today), Noir, and RISC Zero toolchains. Use when building privacy-preserving dApps, ZK verifier contracts, or wiring proving systems to Stellar.
starknet-js
Use when writing or debugging JavaScript/TypeScript that interacts with Starknet through the starknet.js SDK — building Call objects or calldata, encoding/decoding Cairo types (felt252, u256, structs, arrays, spans, ByteArray, Option/Result/custom enums), or working with contracts, accounts, providers, transactions…
jolt
Wrap a Rust function in a Jolt zero-knowledge proof.
smart-contract-reading-guide
How to read and understand smart contracts — navigating Etherscan, reading Solidity code, understanding ABIs, decoding transactions, and spotting common patterns. Use when helping users verify contracts, understand DeFi protocol mechanics, or decode on-chain activity.
lineth-quickstart
Operating manual for the Lineth Stack quickstart — the Docker-Compose dev/demo stack at docs/getting-started/lineth-stack in the lineth-monorepo that boots a local Linea/Lineth L2 with Sepolia or local L1 finality. Use whenever you are working inside the lineth-stack quickstart and need to boot or run the stack…
web3-glossary
Comprehensive Web3 and DeFi glossary — definitions for 150+ terms covering blockchain, DeFi, NFTs, DAOs, L2s, and crypto culture. Use when a user asks what a term means or needs jargon explained in plain language.