explaingit

vbuterin/aztec_experiments

13NoirAudience · developerComplexity · 4/5Setup · hard

TLDR

Three working demo contracts for Aztec, a privacy-preserving blockchain platform: a private token, an oracle-triggered voting system, and an anonymous bulletin board, all written in Noir.

Mindmap

mindmap
  root((aztec_experiments))
    Demos
      Private token contract
      Oracle-triggered voting
      Anonymous bulletin board
    Key Concepts
      Privacy-preserving proofs
      Nullifiers for anonymity
      Circuit-constrained rules
    Tech Stack
      Noir language
      Aztec CLI
      Node.js
    Audience
      Blockchain developers
      Researchers
      Web3 builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study three working Aztec demos to learn how to write privacy-preserving smart contracts in Noir covering tokens, voting, and anonymous posting.

USE CASE 2

Build a private token contract that supports both private and public transfers while keeping balances consistent across both modes.

USE CASE 3

Implement an anonymous community board where users post without revealing identity and are cryptographically prevented from double-posting.

USE CASE 4

Run a local Aztec development environment with pre-funded test accounts to experiment with zero-knowledge contract patterns.

Tech stack

NoirAztecNode.js

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Node.js v24+ and Aztec CLI v4.3.0 exactly, port 8080 must be free or the local network must be reconfigured to 8081.

In plain English

This repository contains a small set of working demos for Aztec, a blockchain platform designed for privacy-preserving smart contracts. The contracts are written in Noir, a programming language built specifically for creating programs that can prove computations happened correctly without revealing the underlying data. There are three demo projects here. The first is a token contract that supports both private and public transfers while keeping balances consistent. The second is a voting system where a special oracle (a trusted data feed) can trigger proposal execution once a vote threshold is reached. The third is an anonymous bulletin board where users can post messages without revealing who they are, using a cryptographic technique called poseidon2 nullifiers to prevent the same person from posting twice without linking their posts. The anonymous bulletin board is the most technically intricate of the three. It uses circuit-constrained logic, meaning the rules preventing double-posting are enforced at the cryptographic proof level rather than by a central server, and it cross-checks token ownership across contracts to gate posting access. To run any of these demos locally you need Node.js version 24 or newer and the Aztec CLI at version 4.3.0. One setup note: if you have SearXNG (a self-hosted search engine) running, it occupies port 8080, so the Aztec local network needs to run on port 8081 instead. The local network starts with a single command and comes with three pre-funded test accounts ready to use. The README is brief and points mainly to the folder structure. Each folder corresponds to one of the three projects listed above, and all three are marked as working.

Copy-paste prompts

Prompt 1
Using the token demo in vbuterin/aztec_experiments as a reference, help me write a new Noir contract that lets users transfer tokens privately while maintaining a public total supply counter.
Prompt 2
Explain step by step how the anonymous bulletin board in aztec_experiments uses poseidon2 nullifiers to prevent double-posting without revealing who posted.
Prompt 3
Set up the Aztec local dev environment from aztec_experiments with Node.js 24 and Aztec CLI 4.3.0, deploy the voting demo, and show me how to trigger proposal execution via the oracle.
Open on GitHub → Explain another repo

← vbuterin on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.