From hl-design-systems
Generate zero-knowledge proofs with snarkjs for zkVerify. Use when the user wants to create proofs, generate witness, or run the prover with their circuit inputs.
npx claudepluginhub horizenlabs/hl-claude-marketplace --plugin hl-design-systemsThis skill uses the workspace's default tool permissions.
Help the user generate zero-knowledge proofs using their compiled Circom circuit.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Performs token-optimized structural code search using tree-sitter AST parsing to discover symbols, outline files, and unfold code without reading full files.
Help the user generate zero-knowledge proofs using their compiled Circom circuit.
If invoked with an argument (e.g., /groth16-prove password_hash), use it as the circuit name.
If no argument provided, look for compiled circuits in build/ (files ending in .zkey) or ask the user which circuit to prove.
Before generating proofs, verify all prerequisites exist:
ls build/*.zkey build/*_js/*.wasm build/verification_key.json 2>/dev/null
ls inputs/*.json 2>/dev/null
| Check | If Missing |
|---|---|
build/<circuit>.zkey | Run /groth16-compile first |
build/<circuit>_js/<circuit>.wasm | Run /groth16-compile first |
build/verification_key.json | Run /groth16-compile first |
inputs/<input>.json | Create input file (see examples.md) |
If prerequisites are missing, stop and help user get them first.
This skill generates Groth16 proofs from compiled Circom circuits using snarkjs.
What this covers:
Prerequisites (from /groth16-compile):
.wasm file).zkey file)verification_key.json)node build/<circuit_name>_js/generate_witness.js \
build/<circuit_name>_js/<circuit_name>.wasm \
inputs/input.json \
build/witness.wtns
mkdir -p proofs
snarkjs groth16 prove \
build/<circuit_name>.zkey \
build/witness.wtns \
proofs/proof.json \
proofs/public.json
snarkjs groth16 verify \
build/verification_key.json \
proofs/public.json \
proofs/proof.json
Expected output: [INFO] snarkJS: OK!
proofs/
├── proof.json # The ZK proof (safe to share)
└── public.json # Public signals (revealed in verification)
/groth16-submit to submit proof to zkVerifyproofs/public.json - These values are revealed during verificationproof.json is safe to share - It doesn't reveal private inputsOK!)