A curated list of resources for programming with Noir.
- Ethproofs' Benchmarks - benchmarks of hashes and signature verifications in Noir with Barretenberg amongst other ZK stacks
- tsujp's Hash Benchmarks - benchmarks of Poseidon2, Keccak256 and SHA256 at various input sizes and iterations
- Payy (source code) - private stablecoin payments
- Zerosats (source code) - private Bitcoin payments
- anoncast (source code) - anonymous X and Farcaster posting
- Aztec (source code) - privacy-first blockchain supporting smart contracts in Noir
- Interfold (source code) - private shared state protocol
- Standard Library - standard library that ships with all Noir releases
- ZK Kit Noir - collection of algorithm and utility libraries from Privacy & Scaling Explorations
- nodash - utility library for various data types, inspired by Lodash
- BigNum - arithmetic computations of large unsigned integers of any length
- IEEE754 Floating-point - IEEE 754-compliant floating-point arithmetic library supporting single and double precision
- wad.nr Fixed-point - 18-decimal fixed-point arithmetics
- Noir Dates - A Noir library to parse and abstract away Dates
- Base64 - a library for base64 encoding
- JSON parser - JSON string parsing, adheres to IETF RFC 8259
- String Search - proof of substring existence within a larger string
- Sort - efficient sorting of fixed-sized arrays
- Sparse Array - efficient immutable and mutable sparse arrays
- BigCurve - operations over elliptic curves instantiated with an arbitrary prime field
- Keccak256 - Keccak256 hashes
- MiMC - MiMC hashes
- Poseidon - Poseidon and Poseidon2 hashes
- RIPEMD160 - RIPEMD160 hashes
- SHA256 - SHA256 hashes
- SHA512 - SHA512 and SHA384 hashes
- ECDH - simple implementation of ECDH on the Baby Jubjub curve
- EdDSA - EdDSA signature verification
- ECDSA - ECDSA (NIST and Brainpool curves) signature verification
- RSA - RSA signature verification
- Schnorr - Schnorr signature verification
- zkQES - PDF and XML document signature verification
- ZK-Kit: Merkle Trees - verification of (non-)membership proofs and add/update/delete leaves
- ECrecover - ECDSA signature verification and return of source Ethereum address
- EIP-712 - A Noir library for EIP-712 typed data hashing
- Ethereum MPT Proof - proving Ethereum Merkle Patricia Trie with recursive proof aggregations
- Ethereum Storage Proof - proving and verifying historical Ethereum / EVM accounts, storage, logs, receipts & transactions; forked from vlayer-monorepo, updated for compatibility with recent Noir releases, including modernizing outdated patterns
- Apertrue - proving authenticity of photos and videos through C2PA signatures from trusted devices
- Privacy Apps with Noir by ETHSKILLS
- Writing Idiomatic Noir by the Noir team
- ACIR Optimization Loop by the Noir team
- Noir Circuit Auditor by 0xVikasRushi
- ZKPassport - proving information in national passports
- ZKProofport - proving Coinbase attestations, Google Workspace and Microsoft 365 memberships
- ZK Email - proving email senders and/or contents
- NoirJS - compile and execute Noir programs in JavaScript / TypeScript
- Noir Codegen for TypeScript - generate TypeScript bindings for computing Noir program outputs in TS
- MoPro by PSE - prove and verify Noir programs on mobile (Android and iOS)
- Noir.rs by ZKPassport - prove and verify Noir programs with Rust
- Swoir by ZKPassport - prove and verify Noir programs with Swift on iOS and MacOS
- Noir Android by ZKPassport - prove and verify Noir programs with Kotlin on Android
- Noir Playground (source code) - in-browser development environment
- VS Code Extension (source code)
- Neovim Plugin
- Zed Plugin
- Emacs Tree-sitter Plugin (source code)
- tree_sitter_noir - tree-sitter grammar
- aztec-lint by Nethermind - static analyzer for Aztec.nr contracts, also works with vanilla Noir programs
- VS Code Debugger
- CodeTracer - time-travelling debugger with Noir support
- Noir + Barretenberg Profiler - flamegraph opcode, execution and proving costs
- noir-web – benchmark proving and verification of Noir programs on the browser
- Lampe by Reilabs - formal verification of Noir programs with Lean
- Merkle Tree Generator - generate Noir-library-friendly Pedersen based Merkle trees
- Poseidon2 in TypeScript - a Poseidon2 library in pure TypeScript with support for the implementation used by Noir (over BN254)
- coSNARKs - generate witness and prove Noir programs in a Multi-Party Computation network
- Kalypso - generate witness and prove Noir programs in Trusted Execution Environments
- Barretenberg (UltraHonk / MegaHonk) by Aztec Foundation
- Solidity verifier by Aztec Foundation
- Rust verifier by Nethermind and Stellar Development Foundation
- coSNARKs by Taceo Labs
- ProveKit (Spartan + WHIR) by World
- Sonobe (Nova, HyperNova) by 0xPARC and PSE
- Sunspot (Groth16) by Reilabs
Propose link additions by editing the README.md. We welcome and appreciate your contributions — thank you for helping improve this list!
