Agent skill

Zk Proof Verification

by Nethereum in Nethereum/Nethereum

Help users verify Groth16 zero-knowledge proofs from Circom/snarkjs circuits using Nethereum.ZkProofsVerifier (.NET).

MITAuto-check passedSecurity

Install Zk Proof Verification

skills CLI
$ npx skills add Nethereum/Nethereum --skill zk-proof-verification -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Nethereum/Nethereum zk-proof-verification --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/nethereum-skills/skills/zk-proof-verification .claude/skills/zk-proof-verification && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
zk-proof-verification
GitHub stars
2.3k
Token cost
~853 tokens
SKILL.md length
282 words
Files
1
Skills in repo
71
Repo updated
First seen
Licence
MIT

At a glance

Help users verify Groth16 zero-knowledge proofs from Circom/snarkjs circuits using Nethereum.ZkProofsVerifier (.NET).

  • The user mentions ZK proofs
  • SKILL.md covers When to Use This, Required Packages, Core Concept and One-Liner Verification…, plus 4 more sections
  • Calls dotnet
  • Zero-knowledge verification

What it does

Zk Proof Verification is an agent skill from Nethereum/Nethereum. Help users verify Groth16 zero-knowledge proofs from Circom/snarkjs circuits using Nethereum.ZkProofsVerifier (.NET). Use this skill whenever the user mentions ZK proofs, Groth16, snarkjs, Circom, zero-knowledge verification, BN128 pairing, proof.json, verificationkey.json, or public.json in a C/.NET context.

Its SKILL.md is about 850 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Security, covering Cryptography. It works with .NET and C#. The repository describes itself as: Ethereum .Net cross platform integration library. The licence is MIT.

When your agent uses it

  • The user mentions ZK proofs
  • Zero-knowledge verification
  • Verificationkey.json
  • Public.json in a C/.NET context

Example prompts

  • “/zk-proof-verification”

What it can do on your machine

Read from SKILL.md and the folder at commit 229f278. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.nethereum.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Zk Proof Verification loads about 853 tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 282 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~853

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Nethereum/Nethereum at commit 229f278, republished under its MIT licence (© Nethereum). 282 words, ~853 tokens.

Download SKILL.mdSave it as .claude/skills/zk-proof-verification/SKILL.md (or your agent's skills folder).
name
zk-proof-verification
description
Help users verify Groth16 zero-knowledge proofs from Circom/snarkjs circuits using Nethereum.ZkProofsVerifier (.NET). Use this skill whenever the user mentions ZK proofs, Groth16, snarkjs, Circom, zero-knowledge verification, BN128 pairing, proof.json, verification_key.json, or public.json in a C#/.NET context.
user-invocable
true

ZK Proof Verification — Nethereum.ZkProofsVerifier

When to Use This

Use this skill when a user wants to:

  • Verify a Groth16 zero-knowledge proof in .NET
  • Consume snarkjs/Circom output (proof.json, verification_key.json, public.json)
  • Check if a ZK proof is valid before submitting a transaction
  • Cross-validate native .NET verification against a Solidity Groth16 verifier
  • Detect tampered proofs, inputs, or verification keys

Required Packages

bash
dotnet add package Nethereum.ZkProofsVerifier

Core Concept

Groth16 is the most widely used ZK proof system in Ethereum. Nethereum.ZkProofsVerifier verifies proofs natively in .NET by checking a BN128 elliptic curve pairing equation. It directly consumes the three JSON files that snarkjs produces after proving a Circom circuit.

The recommended entry point is CircomGroth16Adapter.Verify() — a single static method that parses all three JSON files and returns a result. This hides all cryptographic internals (curve points, field extensions, BouncyCastle types) behind a clean API.

csharp
using Nethereum.ZkProofsVerifier.Circom;

var proofJson = File.ReadAllText("proof.json");
var vkJson = File.ReadAllText("verification_key.json");
var publicJson = File.ReadAllText("public.json");

var result = CircomGroth16Adapter.Verify(proofJson, vkJson, publicJson);

if (result.IsValid)
    Console.WriteLine("Proof verified!");
else
    Console.WriteLine($"Failed: {result.Error}");

Tamper Detection

Verification rejects any modification to proof, inputs, or VK:

csharp
// Wrong public inputs — verification fails
var tamperedPublicJson = "[\"999\"]";
var result = CircomGroth16Adapter.Verify(proofJson, vkJson, tamperedPublicJson);
// result.IsValid == false

Error Messages

ErrorMeaning
"Proof is null"Null proof passed
"Verification key is null"Null VK passed
"Public inputs array is null"Null inputs passed
"Verification key IC array is empty"VK has no IC points
"Expected N public inputs but got M"IC length doesn't match inputs + 1
"Pairing check failed"Proof is invalid (tampered or wrong inputs)

Key Types

TypePurpose
CircomGroth16AdapterOne-liner verification from JSON strings
ZkVerificationResultResult with IsValid and Error properties

All parsing and cryptographic types (curve points, field extensions, verifier internals) are internal — consumers only interact with CircomGroth16Adapter and ZkVerificationResult.

Supported Formats

Only snarkjs JSON output is supported:

  • proof.json — G1/G2 curve points (pi_a, pi_b, pi_c)
  • verification_key.json — trusted setup output (vk_alpha_1, vk_beta_2, vk_gamma_2, vk_delta_2, IC)
  • public.json — decimal string array of public circuit inputs

For full documentation, see: https://docs.nethereum.com/docs/consensus-and-cryptography/guide-zk-proof-verification

© Nethereum, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/nethereum-skills/skills/zk-proof-verification of Nethereum/Nethereum.

Open the folder on GitHubat commit 229f278

Compare with similar skills

Zk Proof Verification next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Zk Proof Verification compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Zk Proof Verification this skillNethereum/Nethereum2.3k—~853Automated safety check: PassMIT
Migrate Dotnet9 To Dotnet10dotnet/skills5.6k2 repos~4.8kAutomated safety check: PassMIT
Nes Decompilejonathanpeppers/dotnes780—~1.6kAutomated safety check: PassMIT
Azure Security Keyvault Keys Dotnetmicrosoft/skills3.1k5 repos~3.1kAutomated safety check: PassMIT
Dotnet Inspect Decompilerrichlander/dotnet-inspect151—~2.4kAutomated safety check: PassNone
Dotnet Decompilerptn1411/skill220—~929Automated safety check: NotesNone

Similar skills

  • Official

    Migrate a .NET 9 project or solution to .NET 10 and resolve all breaking changes.

    5.6k GitHub starsUsed in 2 repos~4.8k tokens
    DevOps & CloudAuto-check passed
  • Nes Decompile

    jonathanpeppers/dotnes

    Decompile NES ROM files (.nes) into C projects that can be rebuilt with dotnes.

    780 GitHub stars~1.6k tokensUpdated 15 days ago
    SecurityAuto-check passed
  • Official

    Azure Key Vault Keys SDK for .NET. An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 5 repos~3.1k tokens
    SecurityAuto-check passed
  • Dotnet Inspect Decompiler

    richlander/dotnet-inspect

    Reconstruct a method or type as C and IL — decompiled source, annotated source with hidden facts, raw IL, fidelity levels, and IL-offset lookup.

    151 GitHub stars~2.4k tokensUpdated today
    SecurityAuto-check passed
  • Dotnet Decompiler

    ptn1411/skill

    Automated .NET/C decompilation and security analysis. An agent skill from ptn1411/skill.

    220 GitHub stars~929 tokensUpdated 17 days ago
    SecurityAuto-check: notes
  • Scaffolding

    dotnet/efcore

    Official

    Implementation details for EF Core scaffolding (reverse engineering).

    15k GitHub stars~321 tokensUpdated today
    DatabasesAuto-check passed

More from Nethereum/Nethereum

All 71 skills in this repo
  • Aa Batching Paymasters

    Nethereum/Nethereum

    Help users batch multiple calls into a single UserOperation and sponsor gas with paymasters using Nethereum Account Abstraction.

    2.3k GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Aa Bundler

    Nethereum/Nethereum

    Help users run an ERC-4337 bundler using Nethereum — set up in-process or standalone bundlers with mempool, validation, reputation, and JSON-RPC server.

    2.3k GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Abi Encoding

    Nethereum/Nethereum

    Encode and decode Ethereum ABI data with Nethereum. An agent skill from Nethereum/Nethereum.

    2.3k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Abi Retrieval

    Nethereum/Nethereum

    Fetch contract ABIs from Sourcify, Etherscan, and 4Byte Directory using the composite ABIInfoStorage pattern (.NET/C).

    2.3k GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Account Abstraction

    Nethereum/Nethereum

    Help users implement ERC-4337 Account Abstraction with Nethereum — send UserOperations, use smart accounts, route contract calls through a bundler, enable gasless transactions, or work with AA in…

    2.3k GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed
  • Address Utils

    Nethereum/Nethereum

    Validate and format Ethereum addresses with Nethereum. An agent skill from Nethereum/Nethereum.

    2.3k GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed

Works with

Categories

Questions about Zk Proof Verification

What does Zk Proof Verification do?

Help users verify Groth16 zero-knowledge proofs from Circom/snarkjs circuits using Nethereum.ZkProofsVerifier (.NET). Zk Proof Verification is an agent skill from Nethereum/Nethereum.NET).

When should I use Zk Proof Verification?

Zk Proof Verification fits situations like: the user mentions ZK proofs; zero-knowledge verification; verificationkey.json; public.json in a C/.NET context.

How do I install Zk Proof Verification in Claude Code?

Run `npx skills add Nethereum/Nethereum --skill zk-proof-verification -a claude-code`. Or copy the skill folder (plugins/nethereum-skills/skills/zk-proof-verification in Nethereum/Nethereum) into .claude/skills/zk-proof-verification in your project. Claude Code loads it when a task matches its description.

How do I install Zk Proof Verification in Codex?

Run `npx skills add Nethereum/Nethereum --skill zk-proof-verification -a codex`. Or copy the skill folder (plugins/nethereum-skills/skills/zk-proof-verification in Nethereum/Nethereum) into .agents/skills/zk-proof-verification in your project. Codex loads it when a task matches its description.

Can I use Zk Proof Verification in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Nethereum/Nethereum --skill zk-proof-verification -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zk-proof-verification, .gemini/skills/zk-proof-verification, .github/skills/zk-proof-verification and .opencode/skills/zk-proof-verification in your project.

What does Zk Proof Verification need to run?

Going by SKILL.md and its folder, Zk Proof Verification needs the command-line tools its instructions call (dotnet).

Does Zk Proof Verification access the network?

SKILL.md names 1 domain. As links in the text: docs.nethereum.com. This is read from the text; nothing was executed.

Is Zk Proof Verification safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Zk Proof Verification use?

Zk Proof Verification is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Zk Proof Verification use?

About 853 tokens (SKILL.md is roughly 3.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Zk Proof Verification?

Skills that share tags, products or a category with Zk Proof Verification: Migrate Dotnet9 To Dotnet10 (dotnet/skills, 5.6k stars), Nes Decompile (jonathanpeppers/dotnes, 780 stars), Azure Security Keyvault Keys Dotnet (microsoft/skills, 3.1k stars) and Dotnet Inspect Decompiler (richlander/dotnet-inspect, 151 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Zk Proof Verification?

Nethereum (a GitHub organization) maintains it in Nethereum/Nethereum, which has 2,260 GitHub stars. The repository holds 71 skills in this directory. The repository was last updated on October 5, 2026.

Source: Nethereum/Nethereum on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.