Noir is an open-source domain-specific language designed for building privacy-preserving zero-knowledge programs. With a syntax inspired by Rust, Noir lets you write ZK circuits without needing to understand the underlying math or cryptography.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/noir-lang/noir/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Install Nargo and run your first zero-knowledge program in minutes
Installation
Install Nargo via noirup and set up your development environment
Language Guide
Learn Noir’s type system, functions, traits, generics, and more
Standard Library
Explore built-in cryptographic primitives, containers, and utilities
Nargo CLI
Reference for all Nargo commands: compile, execute, prove, test, and more
Concepts
Understand zero-knowledge proofs, ACIR, and how Noir fits the ZK landscape
What is Noir?
Noir programs describe computations with private and public inputs. You write a program that asserts certain relationships hold — for example, that you know a secret value satisfying a constraint — and Noir compiles it to a circuit representation. A proving backend then generates a cryptographic proof that can be verified by anyone without revealing your private inputs.x is private (known only to the prover) and y is public. The proof convinces a verifier that the prover knows an x different from y, without revealing x.
Why Noir?
Backend agnostic
Compiles to ACIR — a portable circuit format compatible with Barretenberg, Marlin, and other PLONK-based backends
Familiar syntax
Rust-inspired syntax with types, traits, generics, and modules — no cryptography expertise required
Full toolchain
Nargo provides project scaffolding, compilation, execution, testing, formatting, and debugging in one CLI
Recursive proofs
Verify proofs inside proofs — build scalable ZK systems with proof aggregation
Getting started
Generate a proof
Install Barretenberg and generate your first ZK proof.
Noir is in active development (currently v1.0.0-beta). It has not been audited and is not recommended for production use yet.