Noir

The language behind the smart contracts.

Open source and stable at 1.0. Every private, unstoppable smart contract on Aztec is written in Noir, from the functions proving on your device to the circuits securing the network.

Prove something is true without revealing the value.

  1. One command installs Nargo, the Noir toolchain.

  2. A program is a function. Arguments are private unless marked pub.

  3. Run it against your inputs and check the constraints hold.

  4. Generate a proof anyone can verify. On Aztec, that proof is your transaction.

main.nrnoir
fn main(age: u8) -> pub bool {
    // Prove the user is an adult
    // without revealing their age.
    age >= 18
}
A private input, a public output, and one rule.
Your first projectshell
# Install Nargo, the Noir toolchain
curl -L https://raw.githubusercontent.com/noir-lang/noirup/refs/heads/main/install | bash
noirup

# Start a project and run it
nargo new hello_world
cd hello_world
nargo check
nargo execute
The quick start is in the Noir documentation

Already built on Noir.

Identity, email, payments, social. The same language and compiler behind Aztec.

AztecInfrastructure

The leading platform for unstoppable private apps on Ethereum. Every one of its smart contracts is written in Noir, through Aztec.nr.

ZKPassportIdentity

Verify nationality, age, or status from a passport without revealing the document.

ZK EmailSDK

Prove who sent an email, or what it said, without exposing the mailbox.

StealthNoteSocial

Post anonymously while proving you belong to the organisation.

TACEOResearch

Compute over data while protecting the identity behind it.

anoncastSocial

Anonymous posting, backed by a proof that you were allowed to post.

ZerosatsPayments

Private Bitcoin payments on the same proving toolchain.

Questions, answered.

What language are Aztec contracts written in?

Noir, an open-source language for zero-knowledge programs with Rust-like syntax, created by the Aztec team. Aztec contracts are written in Noir through the Aztec.nr framework, which adds storage, notes, nullifiers, and private and public functions. Noir also works with any proving backend and is used by projects outside Aztec.

Can Noir be used outside Aztec?

Yes. Noir is an open-source language for zero-knowledge programs, created by the Aztec team and used well beyond Aztec. It works with any proving backend and runs in a browser, on a server, on a phone, or on another chain. ZKPassport, ZK Email, Payy, and StealthNote are written in Noir without running on Aztec.

What changed in Noir 1.0?

Noir 1.0 is the first stable release. Syntax and semantics are stable across the 1.x series, the Nargo toolchain follows semantic versioning and can be pinned with noirup, the ACIR output is stable for proving backends, and the compiler has been through internal and external audits, fuzzing, and bytecode verification. For Aztec builders that means contracts keep compiling and the toolchain can be pinned; Aztec.nr targets Noir 1.0 from Aztec Tierra.

Write it in Noir. Ship it on Aztec.