Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ references: ["noir-projects/noir-contracts/contracts/app/token_contract/src/main

Authentication witnesses (authwit) allow other contracts to execute actions on behalf of your account. This guide shows you how to implement and use authwits in your Aztec smart contracts.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

For a video walkthrough of the concepts and the implementation pattern, watch this explainer (find more on the [video lessons](../../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

## Prerequisites

- An Aztec contract project set up with `aztec-nr` dependency
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ description: Learn about Aztec's Authentication Witness scheme that enables secu

Authentication Witness is a scheme for authenticating actions on Aztec, allowing users to authorize third-parties (protocols or other users) to execute actions on their behalf.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

For a video walkthrough of how authwits work, including both the private and public flows, watch this explainer (find more on the [video lessons](../../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

## Summary

- **Authwits authorize specific actions**, not blanket allowances like ERC20 approvals
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ We say that a smart contract is called when one of its functions is invoked and

There are multiple types of calls, and some of the naming can make things **very** confusing. This page lists the different call types and execution modes, pointing out key differences between them.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

A key property of Aztec calls is that contracts can call each other privately, keeping even the call stack itself private. This two-minute explainer covers the idea before we get into the details (find more on the [video lessons](../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="idxRuGQnQKs" title="What is Private Composability? An Aztec Explainer" />

## Ethereum Call Types

Aztec's design is heavily influenced by Ethereum, and many APIs and concepts are similar. This section provides background on Ethereum call types for context. If you're already familiar with Ethereum, you can skip to [Aztec Call Types](#aztec-call-types).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@ description: Overview of Aztec, a privacy-first Layer 2 on Ethereum supporting s
---

import Image from "@theme/IdealImage";
import YouTubeEmbed from "@site/src/components/YouTubeEmbed";

This page outlines Aztec's fundamental technical concepts. It is recommended to read this before diving into building on Aztec.

## What is Aztec?

Aztec is a privacy-first Layer 2 on Ethereum. It supports smart contracts with both private & public state and private & public execution.

Prefer video? This explainer covers the core idea in under 90 seconds, and there are more [video lessons](../resources/video_lessons.mdx) available.

<YouTubeEmbed videoId="urcBvo2QJp0" title="What is Aztec: Explained in Under 90 Seconds" />

<Image img={require("@site/static/img/Aztec_overview.png")} />

## High level view
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ references: ["noir-projects/noir-contracts/contracts/account/ecdsa_k_account_con
---

import Image from '@theme/IdealImage';
import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

On this page you'll learn:

Expand All @@ -15,6 +16,10 @@ On this page you'll learn:
- The private and public kernel circuits and how they execute function calls
- The call stacks for private and public functions and how they determine a transaction's completion

For a two-minute visual overview of how a single transaction spans private and public execution, watch this explainer (find more on the [video lessons](../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="MayopgQ1FjI" title="One Transaction, Two Worlds: Private and Public State on Aztec" />

## Simple Example of the (Private) Transaction Lifecycle

The transaction lifecycle for an Aztec transaction is fundamentally different from the lifecycle of an Ethereum transaction.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Video lessons
description: "Learn Aztec through short video explainers covering what Aztec is, private and public state, private composability, and getting started."
tags: [videos, learning]
sidebar_position: 0
---

import YouTubeEmbed from "@site/src/components/YouTubeEmbed";

Prefer watching to reading? These short explainers, presented by Ciara Nightingale from the Aztec team, each cover a core Aztec concept in just a few minutes. Written pages that go deeper are linked below each video.

## What is Aztec?

Aztec is a privacy-first Layer 2 on Ethereum: a zero-knowledge rollup where smart contracts can have both public and private state, and private execution happens locally on your own device. This video explains the core idea in under 90 seconds.

<YouTubeEmbed videoId="urcBvo2QJp0" title="What is Aztec: Explained in Under 90 Seconds" />

Related reading: [Aztec overview](../../overview.md), [foundational topics](../foundational-topics/index.md)

## Private and public state in one transaction

A single Aztec transaction can span private and public execution. Using a private voting contract as the example, this video shows how private execution runs first on your device, producing a proof and side effects (nullifiers, note commitments, and enqueued public calls) that the sequencer then applies in public, keeping your vote private while the tally stays public.

<YouTubeEmbed videoId="MayopgQ1FjI" title="One Transaction, Two Worlds: Private and Public State on Aztec" />

Related reading: [transactions](../foundational-topics/transactions.md), [state management](../foundational-topics/state_management.md)

## What is private composability?

On Aztec, smart contracts can call each other privately. Because transactions execute and prove locally, not only the state but the call stack itself can stay private: nobody watching the chain learns which contract called which. This video explains how that lets you build on top of other apps permissionlessly, just like Ethereum, without leaking what you are doing.

<YouTubeEmbed videoId="idxRuGQnQKs" title="What is Private Composability? An Aztec Explainer" />

Related reading: [call types](../foundational-topics/call_types.md), [calling other contracts](../aztec-nr/framework-description/calling_contracts.md)

## How authorization works (authwits)

Authentication witnesses (authwits) are Aztec's generalized alternative to Ethereum's approve and transferFrom pattern: they authorize a specific action for a specific caller, work in both private and public execution, and prevent replay. This lesson walks through the message hash structure, the private and public flows, and the `#[authorize_once]` macro.

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

Related reading: [authentication witness concepts](../foundational-topics/advanced/authwit.md), [using authwits in aztec.nr](../aztec-nr/framework-description/authentication_witnesses.md)

## Get started in under 60 seconds

Ready to build? This video walks through installing the Aztec tooling, creating a new contract project, compiling it, and deploying it to a local network, all in under a minute.

<YouTubeEmbed videoId="_jgHNdNgFOg" title="Get Started on Aztec in Under 60 Seconds" />

Related reading: [getting started on a local network](../../getting_started_on_local_network.md)

## More videos

For a full-length course and more explainers, visit the [Aztec Network YouTube channel](https://www.youtube.com/@aztecnetwork).
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ What's included in the local network:

This guide will teach you how to install the Aztec local network, run it using the Aztec CLI, and interact with contracts using the wallet CLI. To jump right into the testnet instead, click the `Testnet` tab.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

To see the whole flow before you start, watch this one-minute walkthrough (find more on the [video lessons](./docs/resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="_jgHNdNgFOg" title="Get Started on Aztec in Under 60 Seconds" />

## Prerequisites

import { General, Fees } from '@site/src/components/Snippets/general_snippets';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ references: ["noir-projects/noir-contracts/contracts/app/token_contract/src/main

Authentication witnesses (authwit) allow other contracts to execute actions on behalf of your account. This guide shows you how to implement and use authwits in your Aztec smart contracts.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

For a video walkthrough of the concepts and the implementation pattern, watch this explainer (find more on the [video lessons](../../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

## Prerequisites

- An Aztec contract project set up with `aztec-nr` dependency
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ description: Learn about Aztec's Authentication Witness scheme that enables secu

Authentication Witness is a scheme for authenticating actions on Aztec, allowing users to authorize third-parties (protocols or other users) to execute actions on their behalf.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

For a video walkthrough of how authwits work, including both the private and public flows, watch this explainer (find more on the [video lessons](../../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

## Summary

- **Authwits authorize specific actions**, not blanket allowances like ERC20 approvals
Expand Down
6 changes: 6 additions & 0 deletions docs/docs-developers/docs/foundational-topics/call_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ We say that a smart contract is called when one of its functions is invoked and

There are multiple types of calls, and some of the naming can make things **very** confusing. This page lists the different call types and execution modes, pointing out key differences between them.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

A key property of Aztec calls is that contracts can call each other privately, keeping even the call stack itself private. This two-minute explainer covers the idea before we get into the details (find more on the [video lessons](../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="idxRuGQnQKs" title="What is Private Composability? An Aztec Explainer" />

## Ethereum Call Types

Aztec's design is heavily influenced by Ethereum, and many APIs and concepts are similar. This section provides background on Ethereum call types for context. If you're already familiar with Ethereum, you can skip to [Aztec Call Types](#aztec-call-types).
Expand Down
5 changes: 5 additions & 0 deletions docs/docs-developers/docs/foundational-topics/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@ description: Overview of Aztec, a privacy-first Layer 2 on Ethereum supporting s
---

import Image from "@theme/IdealImage";
import YouTubeEmbed from "@site/src/components/YouTubeEmbed";

This page outlines Aztec's fundamental technical concepts. It is recommended to read this before diving into building on Aztec.

## What is Aztec?

Aztec is a privacy-first Layer 2 on Ethereum. It supports smart contracts with both private & public state and private & public execution.

Prefer video? This explainer covers the core idea in under 90 seconds, and there are more [video lessons](../resources/video_lessons.mdx) available.

<YouTubeEmbed videoId="urcBvo2QJp0" title="What is Aztec: Explained in Under 90 Seconds" />

<Image img={require("@site/static/img/Aztec_overview.png")} />

## High level view
Expand Down
5 changes: 5 additions & 0 deletions docs/docs-developers/docs/foundational-topics/transactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ references: ["noir-projects/noir-contracts/contracts/account/ecdsa_k_account_con
---

import Image from '@theme/IdealImage';
import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

On this page you'll learn:

Expand All @@ -15,6 +16,10 @@ On this page you'll learn:
- The private and public kernel circuits and how they execute function calls
- The call stacks for private and public functions and how they determine a transaction's completion

For a two-minute visual overview of how a single transaction spans private and public execution, watch this explainer (find more on the [video lessons](../resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="MayopgQ1FjI" title="One Transaction, Two Worlds: Private and Public State on Aztec" />

## Simple Example of the (Private) Transaction Lifecycle

The transaction lifecycle for an Aztec transaction is fundamentally different from the lifecycle of an Ethereum transaction.
Expand Down
54 changes: 54 additions & 0 deletions docs/docs-developers/docs/resources/video_lessons.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Video lessons
description: "Learn Aztec through short video explainers covering what Aztec is, private and public state, private composability, and getting started."
tags: [videos, learning]
sidebar_position: 0
---

import YouTubeEmbed from "@site/src/components/YouTubeEmbed";

Prefer watching to reading? These short explainers, presented by Ciara Nightingale from the Aztec team, each cover a core Aztec concept in just a few minutes. Written pages that go deeper are linked below each video.

## What is Aztec?

Aztec is a privacy-first Layer 2 on Ethereum: a zero-knowledge rollup where smart contracts can have both public and private state, and private execution happens locally on your own device. This video explains the core idea in under 90 seconds.

<YouTubeEmbed videoId="urcBvo2QJp0" title="What is Aztec: Explained in Under 90 Seconds" />

Related reading: [Aztec overview](../../overview.md), [foundational topics](../foundational-topics/index.md)

## Private and public state in one transaction

A single Aztec transaction can span private and public execution. Using a private voting contract as the example, this video shows how private execution runs first on your device, producing a proof and side effects (nullifiers, note commitments, and enqueued public calls) that the sequencer then applies in public, keeping your vote private while the tally stays public.

<YouTubeEmbed videoId="MayopgQ1FjI" title="One Transaction, Two Worlds: Private and Public State on Aztec" />

Related reading: [transactions](../foundational-topics/transactions.md), [state management](../foundational-topics/state_management.md)

## What is private composability?

On Aztec, smart contracts can call each other privately. Because transactions execute and prove locally, not only the state but the call stack itself can stay private: nobody watching the chain learns which contract called which. This video explains how that lets you build on top of other apps permissionlessly, just like Ethereum, without leaking what you are doing.

<YouTubeEmbed videoId="idxRuGQnQKs" title="What is Private Composability? An Aztec Explainer" />

Related reading: [call types](../foundational-topics/call_types.md), [calling other contracts](../aztec-nr/framework-description/calling_contracts.md)

## How authorization works (authwits)

Authentication witnesses (authwits) are Aztec's generalized alternative to Ethereum's approve and transferFrom pattern: they authorize a specific action for a specific caller, work in both private and public execution, and prevent replay. This lesson walks through the message hash structure, the private and public flows, and the `#[authorize_once]` macro.

<YouTubeEmbed videoId="VRZVOCdjGZ4" title="How Authorization Works on Aztec" />

Related reading: [authentication witness concepts](../foundational-topics/advanced/authwit.md), [using authwits in aztec.nr](../aztec-nr/framework-description/authentication_witnesses.md)

## Get started in under 60 seconds

Ready to build? This video walks through installing the Aztec tooling, creating a new contract project, compiling it, and deploying it to a local network, all in under a minute.

<YouTubeEmbed videoId="_jgHNdNgFOg" title="Get Started on Aztec in Under 60 Seconds" />

Related reading: [getting started on a local network](../../getting_started_on_local_network.md)

## More videos

For a full-length course and more explainers, visit the [Aztec Network YouTube channel](https://www.youtube.com/@aztecnetwork).
6 changes: 6 additions & 0 deletions docs/docs-developers/getting_started_on_local_network.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ What's included in the local network:

This guide will teach you how to install the Aztec local network, run it using the Aztec CLI, and interact with contracts using the wallet CLI. To jump right into the testnet instead, click the `Testnet` tab.

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

To see the whole flow before you start, watch this one-minute walkthrough (find more on the [video lessons](./docs/resources/video_lessons.mdx) page):

<YouTubeEmbed videoId="_jgHNdNgFOg" title="Get Started on Aztec in Under 60 Seconds" />

## Prerequisites

import { General, Fees } from '@site/src/components/Snippets/general_snippets';
Expand Down
8 changes: 8 additions & 0 deletions docs/docs-participate/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ Welcome to the Participate section. Here you'll find educational content about h
Aztec is currently in its **Alpha** phase, a live mainnet where bugs, including critical ones, are expected. Before using the network, read the [Alpha Network](/participate/alpha) page to understand current limitations, security expectations, and what to expect from rollup upgrades.
:::

import YouTubeEmbed from '@site/src/components/YouTubeEmbed';

## What is Aztec?

This explainer covers what Aztec is in under 90 seconds (find more on the [video lessons](/developers/docs/resources/video_lessons) page):

<YouTubeEmbed videoId="urcBvo2QJp0" title="What is Aztec: Explained in Under 90 Seconds" />

## Basics of Aztec

New to Aztec? Start here to understand the fundamentals:
Expand Down
4 changes: 4 additions & 0 deletions docs/docs-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -445,3 +445,7 @@ Wonderland
indistinguishability
unlinkable
nightlies
Ciara
Nightingale
Mayopg
VRZVO
12 changes: 12 additions & 0 deletions docs/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,18 @@ privacy, check out the [foundational topics](/developers/docs/foundational-topic

<div className={styles.quickLinksGrid}>

<QuickLink
title="Video Lessons"
description="Prefer video? Learn Aztec through short explainers"
link="/developers/docs/resources/video_lessons"
icon={
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
<circle cx="12" cy="12" r="10" />
<polygon points="10 8 16 12 10 16 10 8" />
</svg>
}
/>

<QuickLink
title="Aztec Starter Repo"
description="Template project to kickstart development"
Expand Down
5 changes: 5 additions & 0 deletions docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,11 @@ const config = {
value: '<span class="dropdown-subtitle">Other Docs</span>',
className: "dropdown-subtitle",
},
{
to: "/developers/docs/resources/video_lessons",
label: "Video Lessons",
className: "no-external-icon",
},
{
to: "/developers/docs/resources/glossary",
label: "Glossary",
Expand Down
30 changes: 30 additions & 0 deletions docs/src/components/YouTubeEmbed/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import React from 'react';

interface YouTubeEmbedProps {
videoId: string;
title: string;
}

export default function YouTubeEmbed({ videoId, title }: YouTubeEmbedProps) {
return (
<div
style={{
position: 'relative',
paddingBottom: '56.25%',
height: 0,
overflow: 'hidden',
maxWidth: '100%',
marginBottom: '2rem',
}}
>
<iframe
style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }}
src={`https://www.youtube-nocookie.com/embed/${videoId}`}
title={title}
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
></iframe>
</div>
);
}
Loading