It’s been a big year for Noir, the universal language for zero-knowledge.
We made things official with GitHub and became an official coding language, cozied up with Vitalik at the inaugural NoirCon0 in Thailand, and now we’re making zero-knowledge proofs more accessible and powerful for developers worldwide with the Noir 1.0 pre-release.
Noir is an open-source, proving-system-agnostic language designed specifically for zk applications, which marks a significant advancement in zk app development.
Noir has quickly emerged as a developer favorite in the zk space, boasting over 600 GitHub projects, 900 stars, and 2,000+ VS Code extension installations. Its growing popularity stems from an emphasis on developer experience, featuring an intuitive Rust-inspired syntax that makes zk programming more accessible than ever. Leading projects like zkEmail, zkPassport, zkLogin, and Aztec Network are already leveraging Noir's capabilities to create innovative zk applications.
Unlocking the Future of Zero-Knowledge
Noir was built with a clear vision: to be the most developer-friendly and versatile language for zero-knowledge applications. As a public good, it empowers developers to build on-chain and off-chain applications with confidence. Its proving system agnostic design means you have complete flexibility to use Noir with supported proving systems like Barretenberg, Halo2, Plonky2, or Groth16.
With privacy baked into Noir as a default, developers have full control over which aspects they want to expose with a simple pub keyword. No underlying knowledge of cryptography or complicated mathematics is required, and we’re starting to see more and more developers turn to Noir to build their privacy-focused applications such as AnonCast.
Language Features That Put Developers First
The 1.0 pre-release brings a comprehensive set of language features that make writing ZK circuits feel natural and intuitive:
Rich Type System
- Full support for primitive types (integers, booleans, strings)
- Complex data structures including arrays, tuples, vectors (including bounded vectors), and hashmaps
- Advanced features like Options and custom structs
- Generic type support for flexible, reusable code
Modern Development Experience
- Familiar control flow with if-else statements and for loops
- First-class support for comments and logging
- Variable mutability and shadowing
- Unconstrained functions for efficient computation
- Powerful metaprogramming capabilities
- Sophisticated visibility system for better code organization
- Support for recursive proofs and proof folding
Comprehensive Library
We’ve already seen many incredible libraries developed by the community, but Noir also ships with its extensive library that includes:
Cryptographic Primitives
- Multiple hash functions (SHA256, Blake2s, Blake3, Pedersen, Keccak256, Poseidon/Poseidon2, MiMC)
- Signature schemes (ECDSA, EdDSA, Schnorr, RSA, PLUME)
- AES128 encryption
- Advanced curve operations
Data Handling
- BigNum and BigCurve for arbitrary-precision arithmetic
- Base64 encoding/decoding
- JSON parsing capabilities
Professional-Grade Tooling
The feedback is in – developers love Noir!
We’ve been relentlessly focused on delivering a world-class developer experience with an emphasis on providing tooling to speed up and simplify the development process.
Development Environment
- Full Language Server Protocol support
- VS Code extension and Neovim plugin
- Integrated debugger
- Performance analysis with flamegraph support
Package Management
- Modern package management with Nargo
- Support for workspaces and dependencies
- Modular code organization
Cross-Platform Integration
- NoirJS for JavaScript/TypeScript integration
- Native bindings for Rust, Swift, and Kotlin/Java
- Mobile proving capabilities
Multiple Proving Backends
Noir supports integration with different proving systems to cater for varying development needs in e.g. proving times, memory footprint, proof sizes for different applications:
- UltraHonk and MegaHonk
- Groth16
- Marlin
- Plonky2/3
- Halo2
- Nova and HyperNova
What's Next
This pre-release marks the beginning of Noir's journey to 1.0 and we're committed to ensuring stability and security through comprehensive audits before the full release.
Noir is more than just a language—it's a community-driven effort to make zero-knowledge proofs accessible to every developer. We invite you to:
- Start learning Noir
- Join our Discord community
- Follow Noir on X
- Apply for a Noir Grant
The future of ZK development is here, and it speaks Noir.