/awesome-noir

A curated list of awesome things related to learning and programming in Noir.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Noir

A curated list of resources for learning and programming in Noir.

Awesome Twitter Discord

Contents


Official Resources

Learning

Learning By Doing

  • [Practice Exercises] Noir-by-example
    • An introduction to Noir with a bunch of simple examples
    • Learn how to organize your Noir logic, write For Loops, and create complex package structures
  • [Video Series] BattleZips-Noir (Source Code)
    • Walkthrough of building an on-chain Battleships game using zero-knowledge
    • Follow along and build your own game using Noir
  • [Practice Exercises] Circuit Examples
    • Demonstration of dot products & Merkle proofs in Noir, in comparison to Circom and RISC0

Talks & Workshops

Blog Posts & Articles

Get Coding

Dev Tools

Boilerplates

Libraries

  • Standard Library - the Noir Standard Library
  • 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)
  • BigInt - a library that provides a custom BigUint56 data type, allowing for computations on large unsigned integers
  • ECrecover - a library to verify an ECDSA signature and return the source Ethereum address
  • U(int)2B(tyes) - a library for converting u8->u120s to [u8] array
  • Sparse Merkle Tree Verifier - a library for verification of sparse Merkle trees
  • Signed Int - a library for accessing a custom Signed Integer data type, allowing access to negative numbers on Noir
  • Fraction - a library for accessing fractional number data type in Noir, allowing results that aren't whole numbers
  • RSA - this repository contains an implementation of a RSA signature verify for the Noir language
  • Merkle Root - a library for calculating Merkle root from given inputs. Using the Poseidon function for hashing
  • SKProof - a Scikit-learn compatible Python library for generating ZK proofs of execution
  • ZKFloat - a floating point library for Noir
  • Rate Limiting Nullifiers - a zero-knowledge gadget that enables spam prevention in anonymous environments
  • Quantized arithmetic - a library for quantized value operations of zero-point quantization
  • ML - a library for implementing neural networks in Noir

Projects

A curated list of projects powered by Noir.

Authentication

  • Anonymous proof of token ownership on Aztec for token-gated access
  • SafeRecover - Recovery of ownership of Gnosis Safe accounts

Gaming

Governance

Social

  • FruityFriends - Various circuits (Proof of Intersection, Proof of Proximity, Proof of Proper Secret) to be used in social applications

Contribute

Propose link additions by visiting README.md and click the "pen" icon in the top right corner. Make changes to the file and follow the instructions to create a pull request.

License

CC0