Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-noir
A curated list of awesome things related to learning and programming in Noir.
https://github.com/noir-lang/awesome-noir
Last synced: about 10 hours ago
JSON representation
-
Official Resources
-
Learning
-
Interactive Tutorials
-
Learning By Doing
- Practice Exercises
- Video Series - Noir))
- Educational Demo
- scaffold-eth
- Video Series - Noir))
-
Talks & Workshops
-
International Resources
-
Blog Posts & Articles
-
Educational Curriculums
-
Examples
- Noir Examples - reference examples of zero-knowledge applications in Noir
- Circuit Examples - demonstration implementation of dot products & Merkle proofs in Noir, Circom and RISC0
-
-
Get Coding
-
Dev Tools
- play.noir-lang.org - Client-side Noir Playground. [Source Code](https://github.com/signorecello/noir-playground)
- hardhat-noir - Hardhat plugin ([Source Code](https://github.com/spalladino/hardhat-noir))
- Kalypso - generate witness and prove Noir programs in Trusted Execution Environments
- Noir Playground - The Noir Playground
- noir_rs - Proving and verifying Noir programs in Rust
- noir_java - Proving and verifying Noir programs in Java (and by extension Android)
- noir_swift - Proving and verifying Noir programs in Swift (and by extension macOS, IOS and watchOS)
- merkle tree generator - A tool to help generate Noir-optimized merkle trees
- play.noir-lang.org - Client-side Noir Playground. [Source Code](https://github.com/signorecello/noir-playground)
-
Libraries
- U(int)2B(ytes) - a library for converting `u8`->`u120`s to `[u8]` array
- Sparse Merkle Tree Verifier - a library for verification of sparse Merkle trees
- Sparse Merkle Tree Verify/Add/Update/Delete - a Noir library to verify (non-)membership proofs and add/update/delete leafs with accompanying [JS implementation](https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/smt)
- ECrecover - a library to verify an ECDSA signature and return the source Ethereum address
- Complex Numbers - This library offers a comprehensive suite of operations for complex numbers
- Fixed Point Library - The FixedPoint library offers precise fixed-point arithmetic operations tailored for Noir
- DateTimeNr - A Noir library to parse and abstract away DateTime objects
- Statistical Library - Noir Statistical Library is a comprehensive library for statistical computations in the Noir language
- JSON parser - This library adheres to the revered [IETF RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) specifications, ensuring precise interpretation of JSON-friendly strings
- Poseidon{2} - an improved implementation of Poseidon and its successor Poseidon2
- ElGamal Encryption - Exponential ElGamal Encryption on the Baby Jubjub curve
- Cryptographically Secure Pseudo-Random Number Generator
- Noir Directory - A directory of Noir libraries.
-
Boilerplates
- noir-starter - Template repository containing example projects using Noir (Vite + Hardhat, Foundry, etc.)
-
Proving Backends
-
-
Dev Tools
-
IDE
- VS Code Extension - Syntax highlight, error highlight, codelens, etc. ([Source Code](https://github.com/noir-lang/vscode-noir))
- Neovim Plugin - Syntax highlight, error highlight, etc.
- Zed Plugin - Syntax highlight, LSP support
- Tree-sitter-noir - Tree-sitter grammar for Noir language
- Emacs Tree-sitter Plugin - Syntax highlight ([Source Code](https://github.com/hhamud/noir-ts-mode))
-
Library-related
- Safecat - generate Noir-library-friendly EdDSA Baby Jubjub Elliptic Curve signatures
- Poseidon2 in TypeScript - a Poseidon2 library in pure TypeScript with support for the implementation used by Noir (over BN254)
-
Private shared states
-
Proving Backends
-
Cross-language
- noir_js - compiling and executing Noir programs in JavaScript / TypeScript
- Python2Noir - Python to Noir transpiler
- Noir.rs - Proving and verifying Noir programs in Rust (compatible with mobile architectures such as iOS and Android)
- Swoir - Proving and verifying Noir programs in Swift on iOS and MacOS
- Noirandroid - Proving and verifying Noir programs in Kotlin on Android
-
Security
- hunter - mutation-testing of Noir programs
- coq-of-noir - formal verification of Noir programs with Coq
- lampe - formal verification of Noir programs with Lean
-
Package Management
-
EVM
- hardhat-noir - Hardhat plugin ([Source Code](https://github.com/olehmisar/hardhat-noir))
- foundry-noir-helper - helper library for working with Noir circuits within Foundry.
-
-
Libraries
-
General
- Standard Library - standard library that ships with all Noir releases
- ZK Kit Noir - collection of algorithm and utility libraries from Privacy & Scaling Explorations
-
Machine Learning
- Convolution - Convolutional Neural Network (CNN) library, including Convolutional layers, Pooling layers, and Linear (fully connected) layers
- ML - neural networks
- SKProof - Scikit-learn compatible Python library for generating ZK proofs of execution
- zkML-Noir - Python ML model Noir transcoding, including various algorithms such as Decision tree, K-Means, XGBoost, FNN, CNN
-
Data Type Manipulation
- String Search - proof of substring existence within a larger string
- zkRegEx - proof of Regular Expression (RegEx) verification
- Sort - efficient sorting of fixed-sized arrays
- Sparse Array - efficient immutable and mutable sparse arrays
- nodash - utility library for working with various data types, inspired by Lodash
- JSON parser - JSON string parsing, adheres to [IETF RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259)
- Matrix Operations - a library for matrix operations provides functionality for performing various matrix operations
- Quantized arithmetic - a library for quantized value operations of zero-point quantization
- U(int)2B(ytes) - a library for converting `u8`->`u120`s to `[u8]` array
- Base64 - a library for base64 encoding
- String Utils - wrapper for String in Noir adding methods for common string operations
- Noir Base64 Library - extension of `noir_base64` with support for Vectors and Base64 URL encoding and decoding
-
Cryptography
- JWT - Verification of JSON Web Tokens (JWTs) and prove claims
- Merkle Root - calculating Merkle root from given inputs of a Poseidon based Merkle tree
- Sparse Merkle Tree Implementation - TypesSript library to generate optimized sparse merkle trees
- Griffin for BN254 - zk-friendly hash function
- Hash to curve - Noir lib for hashing to bigger curves
- SHA-1 - a library for generating hashes using SHA-1 hashing function
- SHA-2 - a library for generating hashes using SHA-2 hashing function
- AES - a (naive) implementation of AES encryption and decryption
- ChaCha20 Implementation - a Noir implementation of ChaCha20 as defined by [RFC7539](https://www.rfc-editor.org/rfc/rfc7539)
- Hydra for BN254 - symmetric encryption and decryption
- ECIES - simple implementation of ECIES on the Baby Jubjub curve
- RSA - RSA signature verification
- BLS12_381 Elliptic Curve Pairing and Signature Verification Library
- PLUME - Noir implementation of the https://blog.aayushg.com/nullifier/ library for zk-signatures
- ECDH - simple implementation of ECDH on the Baby Jubjub curve
- BigCurve - operations over elliptic curves instantiated with an arbitrary prime field
- Pairing over BLS12-381 - Pairing over BLS12-381
- Sparse Merkle Tree Verifier - verification of sparse Merkle trees
- Sparse Merkle Tree Verify/Add/Update/Delete - verification of (non-)membership proofs and add/update/delete leaves
- Noir HMAC - hash-based message authentication code
- WebAuthn/Passkeys - Verification of WebAuthn/Passkeys signatures; verifies signatures produced by `credentials.get`
- Noir JWT - Verification of JSON Web Tokens (JWTs) and prove claims
- ElGamal Encryption - Exponential ElGamal Encryption on the Baby Jubjub curve
- Cryptographically Secure Pseudo-Random Number Generator - pseudo-random number generation
-
Ethereum
- ECrecover - ECDSA signature verification and return of source Ethereum address
- Ethereum Storage Proof Verification - RLP decoding (in the form of look-up table construction) and Ethereum state and storage proof verification (or verification of any trie proof involving 32-byte long keys)
- Ethereum Storage Proof - proving and verifying historical Ethereum / EVM accounts, storage, logs, receipts & transactions
-
Data Types
- BigNum - a library for arithmetic computations of large unsigned integers of any length
- ZKFloat - a floating point library for Noir
- Fraction - a library for accessing fractional number data type in Noir, allowing results that aren't whole numbers
- Noir Dates - A Noir library to parse and abstract away Dates
-
Social
- Noir Social Verify - zkEmail based proof of GitHub, Google, LinkedIn and X accounts and account details
-
-
Projects
-
Authentication
-
Gaming
- BattleZips - Noir)) - on-chain Battleship
- Dappicom - Nintendo Entertainment System (NES) emulator in Noir for proofs of gameplays / speedruns
- Dappicom - zk Nintendo Entertainment System (NES) emulation
- Sudoku, Wordle, and Trivia - Sudoku, Wordle, and Trivia games in Aleo and Noir
- Dappicom - zk Nintendo Entertainment System (NES) emulation
-
Governance
- MeloCafe - Anonymous on-chain voting
- Nouns Anonymous Voting - privacy-preserving voting research project for NounsDAO
-
Miscellaneous
- Winning projects from Aztec-sponsored hackathons
- Graphite - Python tool for proving graph algorithms
- zkVRF - Provable random number generation service
-
Social
- anoncast - anonymous Tweets and Casts
- Rate Limiting Nullifiers - spam regulation in anonymous environments
- FruityFriends - Various circuits (Proof of Intersection, Proof of Proximity, Proof of Proper Secret) to be used in social applications
- StealthNote - message board for people in an organization to anonymously broadcast messages
-
Identity
- Anon-Aadhaar - privacy-preserving verification of Aadhaar (Indian residence ID) through proofs revealing only selected identity information
- OpenPassport - identity wallet supporting privacy-preserving proofs of goverment-issued IDs
- zkPassport - privacy-preserving proofs of national passports
-
General
- ZKEmail - privacy-preserving proof of emails
-
Commercial
-
KYC
- Educational zk-KYC app - NoirJS app to check age, country and recent salaries.
-
-
Boilerplates
- noir-react-native-starter - mobile development template using React Native
- hardhat-noir-starter - project template with seamless Hardhat integration
- noir-library-starter - library template
Programming Languages
Categories
Sub Categories
Cryptography
24
Libraries
13
Data Type Manipulation
12
Talks & Workshops
10
Dev Tools
9
Proving Backends
9
Authentication
8
International Resources
5
Gaming
5
Learning By Doing
5
Social
5
IDE
5
Cross-language
5
Blog Posts & Articles
4
Data Types
4
Machine Learning
4
Package Management
3
Security
3
Identity
3
General
3
Ethereum
3
Miscellaneous
3
Interactive Tutorials
2
Commercial
2
Examples
2
Governance
2
Library-related
2
EVM
2
Private shared states
2
Educational Curriculums
1
KYC
1
Boilerplates
1
Keywords
noir
8
noir-lang
5
zero-knowledge
4
zksnarks
3
ethereum
2
solidity
2
zk-snarks
2
rust
2
hashing-library
1
field
1
curve
1
swift
1
java
1
android
1
programming-language
1
cryptography
1
compiler
1
secp256k1
1
ecrecover
1
zk
1
theorem-proving
1
program-extraction
1
lean4
1
aztec
1
wagmi
1
viem
1
typescript
1
tailwindcss
1
starter-kit
1
rainbowkit
1
nextjs
1
hardhat
1
ethersjs
1
dapp
1
daisyui
1
utility
1
library
1
zkp
1
signature
1
plume
1
antispam
1