GithubHelp home page GithubHelp logo

shuklaayush / awesome-noir Goto Github PK

View Code? Open in Web Editor NEW

This project forked from noir-lang/awesome-noir

0.0 0.0 0.0 232 KB

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

License: Creative Commons Zero v1.0 Universal

awesome-noir's Introduction

Awesome Noir

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

โš ๏ธ This repository or the contained links are not endorsed as safe and secure by Aztec Labs or the Noir team. Users are advised to exercise caution before utilizing any content or code provided herein.

Awesome Twitter

Contents


Official Resources

Get Coding

Dev Tools

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

Libraries

Data Types

Numerics
  • BigInt - a library that provides a custom BigUint56 data type, allowing for computations on large unsigned integers
  • 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
Dates & Times
  • Noir Dates - A Noir library to parse and abstract away Dates
  • DateTimeNr - A Noir library to parse and abstract away DateTime objects

Data Type Manipulation

Numerics
  • 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
Bytes
Text
  • Base64 - a library for base64 encoding
  • JSON parser - This library adheres to the revered IETF RFC 8259 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

Cryptography

Hashes
  • 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
Encryption
Signatures
Merkle Trees
Randomness

Ethereum

  • 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)

Machine Learning

  • 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

Miscellaneous

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)

Projects

A curated list of projects powered by Noir.

Authentication

  • 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

Governance

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

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

awesome-noir's People

Contributors

savio-sou avatar critesjosh avatar brunny-eth avatar signorecello avatar hhamud avatar cc-a23187 avatar crisgarner avatar akonior avatar okm165 avatar baz-lightyear avatar calummoore avatar colinnielsen avatar erayack avatar ebuchman avatar fabianschu avatar filipharald avatar marekkirejczyk avatar michaelelliot avatar nfurfaro avatar dajuguan avatar ruizehung avatar resurgencelabs avatar 0xrishabh avatar thabokani avatar 0xthemis avatar metavind avatar iam-robi avatar tomoima525 avatar xiaolou86 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.