noir

Guide Noir zero-knowledge app integration on EVM with verifier generation and hashing parity.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents common, costly integration mistakes when building Noir-based zero-knowledge privacy applications for the EVM, especially around proving, verifier generation, hashing choices, and cross-layer compatibility.

Core Features & Use Cases

  • Noir + Barretenberg toolchain guidance: installs nargo and bb in the right order and documents the correct proving/verifying commands using bb rather than removed nargo prove/verify.
  • Correct Solidity verifier generation: explains how to generate and deploy the standalone HonkVerifier.sol using bb write_solidity_verifier, including version/pragma and contract size considerations.
  • Commitment-nullifier privacy pattern wiring: helps you choose between simple private proofs vs commitment-nullifier flows, and stresses the critical need for unlinkability (fresh burner wallet/relayer) when msg.sender is public.
  • Hashing and input-order parity across layers: enforces consistency of Poseidon variants, public input ordering, oracle hash configuration (--oracle_hash keccak), and serialization so proofs verify on-chain.

Quick Start

Use the noir skill to set up a Noir circuit and generate a compatible Solidity verifier by running nargo compile and nargo execute, then using bb write_vk with --oracle_hash keccak and bb write_solidity_verifier, and finally wiring the deployed verifier address into your app contract.

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 Noir zero-knowledge proofs?

To generate a Solidity verifier for Noir proofs, you must use the Barretenberg `bb write_solidity_verifier` command rather than removed `nargo` commands, ensuring you also configure the correct pragma and contract size considerations for on-chain deployment.

Why are my Noir zero-knowledge proofs failing to verify on the EVM?

Noir proofs fail EVM verification when cross-layer ABI and input-order parity are broken. You must enforce consistent Poseidon variants, public input ordering, and oracle hash configuration using `--oracle_hash keccak` during proof generation.

How do I set up the Noir and Barretenberg toolchain for EVM privacy apps?

To set up the Noir and Barretenberg toolchain, install nargo and bb in the correct sequence, then use `nargo compile` and `nargo execute` followed by `bb write_vk` with `--oracle_hash keccak` to prepare for proof generation.

When do I need a commitment-nullifier flow for a Noir privacy architecture?

You need a commitment-nullifier flow for Noir privacy architecture when using Merkle trees and on-chain action execution, which critically requires unlinkability through fresh burner wallets or relayers when `msg.sender` is public.

Does Noir support simple private proofs without a full Merkle tree?

Noir supports simple private proofs without a full Merkle tree structure for EVM privacy apps, allowing developers to choose between basic private proofs and full commitment-nullifier flows depending on the required unlinkability constraints.

What are the limitations of using Noir for EVM zero-knowledge privacy apps?

Limitations of using Noir for EVM privacy apps include the critical need to manage unlinkability manually with fresh burner wallets or relayers, and the strict requirement to maintain hash and serialization consistency across EVM and circuit layers.