fabianschu / awesome-noir

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Noir

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

Awesome Twitter

Contents


Official Resources

Learning

Learning By Doing

  • [Practice Exercises] NoirGuardians
    • 3 quests that use storytelling and lore to teach basic programming in Noir, along with some advanced features that Noir offers
    • Get a first introduction to the Noir language, and learn how to integrate Noir programs into Solidity contracts
  • [Educational Curriculum] ZKCamp's Open Source Noir course
    • 6 lectures to give participants the knowledge and skills necessary to build decentralized applications based on ZKPs using Noir
    • Lessons include ZKP Fundamentals; An Introduction to Aztec Ecosystem; Noir Basics; Building a Noir Application; and Advanced Noir
  • [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
  • [Educational Demo] scaffold-eth-2-noir
    • Small demo of a dApp with ZK-age restriction. UI, smart contracts and ZK-circuits.
    • Built with scaffold-eth.

Talks & Workshops

Blog Posts & Articles

Benchmarks

  • ZK-Bench - Compare Noir to other ZK frameworks (Risc Zero, Leo, Miden, etc)

Get Coding

Dev Tools

Boilerplates

  • nplate - Minimalist template
  • noir-hardhat-template - Hardhat template
  • noir-starter - Template repository containing example projects using Noir (Next.js + Hardhat, Foundry, etc.)
  • noir-starter-nuxt - Template repository containing example minimal project using Noir, Nuxt and Hardhat
  • noir-vite-starter - Template repository contiaining example minimal project using Noir and Vite

Libraries

  • Standard Library - the Noir Standard Library
  • Base64 - a library for base64 encoding
  • 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.
  • Statistical Library - Noir Statistical Library is a comprehensive library for statistical computations in the Noir language.

Types

  • BigInt - a library that provides a custom BigUint56 data type, allowing for computations on large unsigned integers
  • 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
  • U(int)2B(ytes) - a library for converting u8->u120s to [u8] array
  • ZKFloat - a floating point library for Noir

Cryptography

Ethereum

  • 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)
  • ECrecover - a library to verify an ECDSA signature and return the source Ethereum address

Machine Learning

  • SKProof - a Scikit-learn compatible Python library for generating ZK proofs of execution
  • ML - a library for implementing neural networks in Noir
  • zkML-Noir - a library for Python ML model transcoding Noir, including various algorithms such as Decision tree, K-Means, XGBoost, FNN, CNN
  • Matrix Operations - a library for matrix operations provides functionality for performing various matrix operations
  • Convolution - a library for Convolutional Neural Network (CNN) library in Noir, including Convolutional layers, Pooling layers, and Linear (fully connected) layers.

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
  • ZKMSocial - A new take on social media, using ZKML to ensure posts are honest and giving users more control over what they see

Miscellaneous

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

About

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

License:Creative Commons Zero v1.0 Universal