Noir
Circuit DSL (backend-agnostic)
Noir: Circuit DSL (backend-agnostic). Kind: Circuit DSL. Arithmetisation / backend: ACIR → Barretenberg (UltraHonk). Setup: Yes (universal). Maintained by: Aztec. Licence: Apache-2.0 / MIT. Status: Late beta, pre-1.0 (1.0.0-beta series through 2026). Choose it when: New application circuits where developer velocity and client-side proving matter, and teams uncomfortable with manual constraint discipline.
What it is
A Rust-like DSL that compiles to ACIR, an intermediate representation intended to be consumed by several proving backends. The compiler emits constraints for you, removing the manual assign-versus-constrain bug class. Browser and WASM proving are first-class targets.
Strengths and tradeoffs
- Substantially better ergonomics than lower-level DSLs, and the compiler emits constraints rather than the developer
- Backend-agnostic by design, keeping a future migration architecturally open
- Client-side and browser proving are supported paths, not afterthoughts
- Still formally pre-1.0 after several years of beta, with routine breaking changes between betas — a real cost for long-lived audited code
- In practice one backend — Barretenberg — is the maintained one, so diligence it as carefully as the language itself; treat backend-agnosticism as architectural rather than operational unless you validate an alternative yourself
- Smaller auditor pool and thinner static-analysis tooling than Circom
Choose it whenNew application circuits where developer velocity and client-side proving matter, and teams uncomfortable with manual constraint discipline.
Related pages
Sources cited on this page · 2
All 45 sources for §02 are listed on the section page →
Cite this page
MarketComp (2026). Noir. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/frameworks/noir/
@misc{zkfieldmanual-noir,
title = {Noir — The ZK Field Manual},
author = {MarketComp},
year = {2026},
version = {1.3},
howpublished = {\url{https://zkpick.com/frameworks/noir/}},
note = {Accessed: YYYY-MM-DD}
}