Skip to content

Commit

Permalink
first pass
Browse files Browse the repository at this point in the history
  • Loading branch information
critesjosh committed Oct 26, 2023
1 parent 4ffb096 commit 115c724
Showing 1 changed file with 101 additions and 1 deletion.
102 changes: 101 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,101 @@
# awesome-aztec
# Awesome Aztec

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

[![Awesome](https://awesome.re/badge-flat.svg)](https://awesome.re)
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/Aztec.svg?style=social&label=Follow%20%40Aztec)](https://twitter.com/aztecnetwork)

## Contents

- [Awesome Aztec](#awesome-aztec)
- [Contents](#contents)
- [Official Resources](#official-resources)
- [Learning](#learning)
- [Talks and workshops](#talks-and-workshops)
- [Blog Posts and Articles](#blog-posts-and-articles)
- [Tutorials](#tutorials)
- [Coding](#coding)
- [Dev Tools](#dev-tools)
- [Boilerplates](#boilerplates)
- [Libraries](#libraries)
- [Contract development](#contract-development)
- [Common Patterns](#common-patterns)
- [Reference](#reference)

## Official Resources

- [Website](https://aztec.network/)
- [Docs](https://docs.aztec.network/)
- [Forum](https://discourse.aztec.network/)
- [Github](https://github.com/AztecProtocol)
- [Awesome Noir](https://github.com/noir-lang/awesome-noir/tree/main#benchmarks)

## Learning

### Talks and workshops

- [Inside Aztec Labs Youtube playlist](https://www.youtube.com/playlist?list=PLabpoAlaCBY2-sW1C8UDo16SRaMNFrnt1) - Includes videos reviewing Private Transactions, the kernel circuit, Noir Contract Syntax, Cross chain communication and tree data structures.
- [Intro to Aztec.nr](https://www.youtube.com/watch?v=58YWjQe6Cqs&list=PLabpoAlaCBY0XuHR5q3jKqKGYWbP4fDeU) - Aztec.nr is the smart contract framework for Noir contract written on Aztec.
- [Privacy Preserving Smart Contract Architectures](https://www.youtube.com/watch?v=09nDPDN1ORA)
- We explore potential ways of enabling encrypted programmable blockchain networks, with strong privacy guarantees. We will analyze existing architectures and their trade-offs, as well new solutions that preserve traditional smart-contract semantics.
- Zac Williamson is Co-Founder and CEO of Aztec Protocol
- [Private-Public Composability](https://www.youtube.com/watch?v=7Oc0tjdbi70&t=17723s)
- [How to build a SNARK](https://www.youtube.com/watch?v=j6wlamEPKlE) - Zac Williamson

### Blog Posts and Articles

- [Aztec Sandbox: The Endgame for Smart Contract Privacy](https://aztec.network/blog/announcing-aztec-sandbox-the-endgame-for-smart-contract-privacy/)
- [Aztec’s Transaction Anatomy](https://aztec.network/blog/aztecs-transaction-anatomy/)
- [Privacy Abstraction with Aztec](https://aztec.network/blog/privacy-abstraction-with-aztec/)
- [Announcing Fernet: Aztec’s Decentralized Sequencer Selection Protocol](https://medium.com/aztec-protocol/announcing-fernet-aztecs-decentralized-sequencer-selection-protocol-dd06194d572f)

### Tutorials

- [Sandbox quickstart](https://docs.aztec.network/dev_docs/getting_started/quickstart)
- [Writing a Token Contract](https://docs.aztec.network/dev_docs/tutorials/writing_token_contract)
- [Writing a Token Bridge](https://docs.aztec.network/dev_docs/tutorials/token_portal/main)
- [Aztec Connect-style Uniswap](https://docs.aztec.network/dev_docs/tutorials/uniswap/main)

## Coding

### Dev Tools

- [Aztec version of the Noir programming language](https://docs.aztec.network/dev_docs/contracts/main) - for writing smart contracts on Aztec
- [Noir VS Code extension](https://marketplace.visualstudio.com/items?itemName=noir-lang.vscode-noir) - Syntax highlighting, snippets and more for Noir.
- [Aztec CLI](https://docs.aztec.network/dev_docs/cli/main)

### Boilerplates

- [Aztec Boxes](https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/boxes) - A collection of boilerplates for building with Aztec
- Getting started [doc](https://docs.aztec.network/dev_docs/getting_started/blank_box)
- [Vite Starter](https://github.com/puzzlehq/aztec-sandbox-vite-starter)

### Libraries

- [Aztec.nr docs](https://docs.aztec.network/dev_docs/contracts/main) and [source code](https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec-nr)
- Includes:
- `aztec` (core) - the core of the framework
- `easy-private-state` - for easily creating private state
- `safe-math` - for safe arithmetic
- `value-note` - for storing arbitrary values
- [Noir libraries](https://github.com/noir-lang/awesome-noir/blob/main/README.md#libraries) - Noir libraries can be used in Aztec contracts

### Contract development

- [Contract storage](https://docs.aztec.network/dev_docs/contracts/syntax/storage)
- [Functions](https://docs.aztec.network/dev_docs/contracts/syntax/functions)
- [Private / public context](https://docs.aztec.network/dev_docs/contracts/syntax/context)
- [Compiling contracts](https://docs.aztec.network/dev_docs/contracts/compiling)
- [Deploying contracts](https://docs.aztec.network/dev_docs/contracts/deploying)
- [Portal contracts](https://docs.aztec.network/dev_docs/contracts/portals/main) - portal contracts enable L1<>L2 communication

### Common Patterns

- [Authentication Witness](https://docs.aztec.network/dev_docs/contracts/resources/common_patterns/authwit) - authentication witnesses are like token approvals on Ethereum, but are much more flexible and powerful.
- [Calling public function from private functions](https://docs.aztec.network/dev_docs/contracts/syntax/functions#private---public) - private functions cannot directly manipulate public state, they can by staging a call to a public function that updates public state.
- You can also use this pattern to "pass" public inputs into private state by passing the input as an argument to a private function, staging a public function call that validates the input against the current public state.

## Reference

- [Private Execution Environment (PXE) API Reference](https://docs.aztec.network/apis/pxe/interfaces/PXE)
- [Current Limitations](https://docs.aztec.network/dev_docs/limitations/main)

0 comments on commit 115c724

Please sign in to comment.