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: 1 day ago
JSON representation
-
Official Resources
-
Learning
-
Learning By Doing
-
Talks & Workshops
-
International Resources
-
Blog Posts & Articles
-
-
Get Coding
-
Dev Tools
- play.noir-lang.org - Client-side Noir Playground. [Source Code](https://github.com/signorecello/noir-playground)
- VS Code Extension - Syntax highlight, error highlight, codelens, etc. ([Source Code](https://github.com/noir-lang/vscode-noir))
- hardhat-noir - Hardhat plugin ([Source Code](https://github.com/spalladino/hardhat-noir))
- Neovim Plugin - Syntax highlight, error highlight, etc.
- Zed Plugin - Syntax highlight, LSP support
- Tree-sitter-noir - Tree-sitter grammar for Noir language
- Python2Noir - From Python to Noir language transpiler
- Noir Playground - The Noir Playground
- noir_rs - Rust-based zkSNARK Proving&Verifying tool for noir-lang
- noir_java - Java-based zkSNARK Proving&Verifying tool for noir-lang (Java & Android)
- noir_swift - Swift-based zkSNARK Proving&Verifying tool for noir-lang (macOS & IOS & watchOS)
- hunter - A tool for performing mutation-testing on Noir programs
- Emacs Tree-sitter Plugin - Syntax highlight ([Source Code](https://github.com/hhamud/noir-ts-mode))
- 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)
- hardhat-noir - Hardhat plugin ([Source Code](https://github.com/olehmisar/hardhat-noir))
-
Libraries
- Standard Library - the Noir Standard Library
- 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
- BigNum - a library for arithmetic computations of large unsigned integers of any length
- Fraction - a library for accessing fractional number data type in Noir, allowing results that aren't whole numbers
- ZKFloat - a floating point library for Noir
- 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
- Noir Dates - A Noir library to parse and abstract away Dates
- DateTimeNr - A Noir library to parse and abstract away DateTime objects
- Matrix Operations - a library for matrix operations provides functionality for performing various matrix operations
- Statistical Library - Noir Statistical Library is a comprehensive library for statistical computations in the Noir language
- 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
- 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
- String Utils - A wrapper for String in Noir that adds some useful methods for common string operations
- Griffin for BN254 - zk-friendly hash function
- Hash to curve - Noir lib for hashing to bigger curves
- Poseidon{2} - an improved implementation of Poseidon and its successor Poseidon2
- 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)
- ElGamal Encryption - Exponential ElGamal Encryption on the Baby Jubjub curve
- 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
- Merkle Root - a library for calculating Merkle root from given inputs. Using the Poseidon function for hashing
- Sparse Merkle Tree Implementation - a typescript library to generate optimized sparse merkle trees
- Sparse Merkle Tree Verifier - a library for verification of sparse Merkle trees
- Cryptographically Secure Pseudo-Random Number Generator
- ECrecover - a library to verify an ECDSA signature and return the source Ethereum address
- Ethereum Storage Proof Verification - a library that contains the primitives necessary for 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)
- Convolution - a library for Convolutional Neural Network (CNN) library in Noir, including Convolutional layers, Pooling layers, and Linear (fully connected) layers
- ML - a library for implementing neural networks in Noir
- SKProof - a Scikit-learn compatible Python library for generating ZK proofs of execution
- zkML-Noir - a library for Python ML model transcoding Noir, including various algorithms such as Decision tree, K-Means, XGBoost, FNN, CNN
- nodash - a generic utility library. "Lodash for Noir"
- ECDH - simple implementation of ECDH on the Baby Jubjub curve
- 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
- Base64 Lib - Extension of `noir_base64` with support for Vectors and Base64 URL encoding and decoding.
- Noir HMAC - HMAC implementation in Noir Language.
- Noir Directory - A directory of Noir libraries.
- WebAuthn/Passkeys - WebAuthn/Passkeys signature verification. Verifies signatures produced by `credentials.get`
- JWT - Noir library to verify JWT tokens and prove claims. Currently only supports RS256 with 2048 bit keys.
- Sparse Merkle Tree Verify/Add/Update/Delete - a Noir library to verify (non-)membership proofs and add/update/delete leafs
- Pairing over BLS12-381 - Implementation of pairing over BLS12-381 that uses the new Noir [BigNum](https://github.com/noir-lang/noir-bignum) library
- Noir JWT - Verify JWTs and attest claims in Noir Language
- Noir Social Verify - Wrapper around zkemailnr to verify social accounts and extract details like X username, and emails.
- Noir Directory - A directory of Noir libraries.
- ElGamal Encryption - Exponential ElGamal Encryption on the Baby Jubjub curve
- Cryptographically Secure Pseudo-Random Number Generator
-
Boilerplates
- noir-starter - Template repository containing example projects using Noir (Vite + Hardhat, Foundry, etc.)
- noir-react-native-starter - Template repository containing an example minimal project using React Native
- hardhat-noir-starter - Hardhat starter that seamlessly integrates with Noir.
- noir-library-starter - Template used by the noir-lang org when creating internally maintained libraries
-
Proving Backends
-
-
Projects
-
Authentication
- Sequi
- SafeRecover - Recovery of ownership of Gnosis Safe accounts
- ZCaptcha - A ZK version of Captcha
- ZKPic - generate zero knowledge proofs for image edits
- Safecat - a simple CLI tool to generate, sign, and verify digital signatures using EdDSA Baby Jubjub Elliptic Curve signatures and a Poseidon hash function
-
Gaming
- BattleZips - Noir)) - On-chain Battleship
- Dappicom - zk Nintendo Entertainment System (NES) emulation
- Sudoku, Wordle, and Trivia - Sudoku, Wordle, and Trivia games in Aleo and Noir
-
Governance
- MeloCafe - Anonymous on-chain voting
- Nouns Anonymous Voting - Anonymous voting research project for NounsDAO
-
Miscellaneous
- Past hackathon winners
- Graphite - Python tool for proving graph algorithms
- zkVRF - Provable random number generation service
-
Social
- FruityFriends - Various circuits (Proof of Intersection, Proof of Proximity, Proof of Proper Secret) to be used in social applications
- Rate Limiting Nullifiers - a zero-knowledge gadget that enables spam prevention in anonymous environments
-
KYC
- Educational zk-KYC app - NoirJS app to check age, country and recent salaries.
-
Programming Languages
Sub Categories
Keywords
noir
8
noir-lang
4
zero-knowledge
3
zksnarks
3
ethereum
2
rust
2
zk-snarks
2
solidity
2
signature
1
plume
1
hashing-library
1
field
1
curve
1
aztec
1
swift
1
java
1
android
1
programming-language
1
cryptography
1
compiler
1
zk
1
antispam
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
secp256k1
1
ecrecover
1
zkp
1