noir

Correct Noir toolchain, circuit, and EVM verifier integration mistakes.

1|Updated Apr 25, 2026
One-click install
npx skills add https://github.com/collat-labs/collat --skill noir-collat-labs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: noir
Source: https://github.com/collat-labs/collat/tree/main/.agents/skills/ethskills/noir
Command: npx skills add https://github.com/collat-labs/collat --skill noir-collat-labs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents common, costly mistakes when building ZK privacy applications on EVM with the Noir toolchain, verifiers, and NoirJS proof generation.

Core Features & Use Cases

  • Correct Noir + Barretenberg workflow: clarifies modern proving/verification commands and ensures EVM-compatible artifact generation.
  • Reliable circuit-to-contract integration: guarantees public input ordering, verifier ABI alignment, and verifier deployment hand-off.
  • Safe privacy architecture guidance: explains when commitment-nullifier patterns are necessary, how to avoid meaningless sender-linking, and how to bind proofs to actions.
  • End-to-end Merkle app wiring: covers offchain tree mirroring, onchain root acceptance policies, and nullifier replay protection for production deployments.

Quick Start

Use the Noir-based privacy app approach to compile your circuit, generate the verifier with the correct oracle hash, and wire NoirJS proof calldata into your deployed Solidity verifier and app contract for an EVM privacy workflow.

Frequently Asked Questions about noir

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a Solidity verifier for a Noir circuit?

Generating a Solidity verifier for a Noir circuit requires using the correct Barretenberg proving commands to produce EVM-compatible artifacts, ensuring strict public input ordering and verifier ABI alignment for contract integration.

What is the commitment-nullifier pattern in ZK privacy applications?

The commitment-nullifier pattern in ZK privacy applications prevents double-spending and replay attacks by binding proofs to specific actions, ensuring action-scoped unlinkability while managing offchain Merkle tree mirroring and onchain root acceptance.

How do I wire NoirJS proof generation into an EVM app?

Wiring NoirJS proof generation into an EVM app requires generating browser-based proofs with NoirJS and routing the resulting calldata into your deployed Solidity verifier and app contract to complete the onchain verification workflow.

Does Noir work with offchain Merkle tree mirroring for EVM privacy?

Noir supports offchain Merkle tree mirroring for EVM privacy by guiding end-to-end Merkle app wiring, which covers offchain tree state synchronization, onchain root acceptance policies, and nullifier replay protection for production deployments.

Why does my Noir Solidity verifier reject proof calldata?

A Noir Solidity verifier rejects proof calldata when there is mismatched public input ordering, incorrect oracle hashing, or verifier ABI misalignment. Ensuring strict compatibility across the circuit-to-contract integration resolves these deployment hand-off errors.