Announcing the Aztec Sandbox: The Endgame for Smart Contract Privacy

The most ambitious software release in Aztec Labs’ history

Today we’re proud to announce the Aztec Sandbox, a local developer testnet for building end-to-end applications on Aztec.

Aztec is designed to be the endgame for blockchain privacy–the most complete solution for privacy-first blockchain applications ever attempted.

The Aztec Sandbox is the first milestone toward that endgame, allowing developers to write applications that leverage a full suite of privacy primitives:

  • Private smart contract composability (including public-private composability)
  • Private L1-L2 function calls
  • Private state management
  • Hidden function execution

All enabled by an intuitive software development environment that abstracts the complicated mechanisms necessary to protect user privacy.

⬇️ Download the Aztec Sandbox at sandbox.aztec.network.

Background

Aztec Labs has been laying the foundation for a privacy-preserving Ethereum L2 for years.

Yet building the Sandbox has taken just 5 months–a testament to the quality of our team and the ever-improving modularity of Aztec’s technology.

The Sandbox is the first major step on a development roadmap that includes a multi-phase testnet for Aztec’s execution environment, fee model, sequencers, and provers–all culminating in a privacy preserving zkRollup that is fully decentralized at mainnet launch.

What comes in the box?

The Aztec Sandbox is a comprehensive software release providing developers with a fast, lightweight local Aztec node, with features similar to Ethereum’s Ganache or Anvil local node packages.

Alongside Aztec’s local node testing environment, the Sandbox includes powerful tools and frameworks that allow developers to write and test smart contracts:

  • Aztec Node: build and publish rollup blocks with Aztec’s node software
  • Aztec RPC Server: decrypt and store client-side private state, execute private functions and submit transactions to the Aztec Node
  • Aztec.nr: write smart contracts using a comprehensive framework that extends Noir–an open-source zero knowledge programming language–with private smart contract functionality
  • Aztec.js: make RPC calls to an Aztec Node via Aztec’s Typescript wrapper
  • Aztec CLI: interact directly with an Aztec Node using Aztec’s command-line tool
  • Noir VS Code Extension: write Noir conveniently. Syntax highlighting, debugging and [other features] that make writing smart contracts in Noir utterly painless
  • Code examples: get inspired by Aztec Labs-written example private smart contracts and example wallet implementations

Developers should be aware that they are early adopters. You may encounter bugs or hiccups.

No fret.

For support related to the Aztec Sandbox, join our Discourse forum, where you can get hands-on support from Aztec Labs’ developer relation teams and build alongside the Aztec developer community.

🗣 Join the conversation on Aztec Labs’ Discourse

Get Started in Minutes

The Aztec Sandbox provides a local development system for building and testing Aztec smart contracts in a fast, safe, and free environment.

The process of downloading the Sandbox, installing client libraries, and using it to deploy and use a fully private token contract on a local Aztec node takes less than 10 minutes.

First, navigate to sandbox.aztec.network

Or curl the site:

/bin/bash -c "$(curl -fsSL 'https://sandbox.aztec.network')"

A package will then download and execute, spinning up two Docker containers:

  • Anvil
  • Aztec Sandbox

The Sandbox will create servers on localhost ports 8545 (Anvil) and 8080 (Sandbox); ensure those ports are free to prevent any conflicts.

Within a few seconds the Sandbox should be up and running!

What can you do with it

The Sandbox is the starting point for Aztec smart contract and application developers. The Sandbox helps future-looking developers get a head-start interacting with ZK-native blockchain environments.

And as pioneers in smart contract privacy, developers will need to add a few useful heuristics to their public-blockchain mental models. Some new concepts include:

  • Private state management
  • Account abstraction models
  • Understanding patterns to keep private information private
  • Transaction paths which span both private and public function execution
  • Organizing contracts into privately executable logic and publicly executable logic

For more about UTXO abstraction and how Aztec makes it convenient to manage manipulating private state, read our blog post here. For more information relating to privacy preservation best practices, see here. And for more about transaction architecture, see here.

Using Aztec.js, developers can build full-fledged applications that let users:

  • write, deploy and test private smart contracts
  • create accounts (choosing one of various account abstraction schemes!)
  • manage their wallets
  • send transactions to the network and track their progress
  • query current chain state such as chain ID, block number, etc.

Learn more about how to write an Aztec smart contract along with ready-made examples and walkthrough guides here.

Use-cases we’re excited to see

Aztec’s smart contract examples include a broad swath of use cases

  • Public and private token contracts
  • Private DeFi
  • Oracle price feeds
  • Air-drop contracts
  • Two-party private escrow
  • Account contracts that can privately validate account credentials

We’re excited to see other application primitives including private identity, fully on-chain private games, and decentralized finance protocols offering privacy by default.

We can’t wait to see the explosion of higher-order privacy mechanisms that will be created by remixing and composing these basic primitives into complex smart contracts and full-fledged privacy-first applications.

What you can’t do (yet)

The Aztec Sandbox is our minimum viable local developer testnet. While developers can begin writing smart contracts, there is no shared in-production network.

While account creation, wallet management, smart contract creation, and transaction execution are all live, fee estimation, transaction sequencing, proving, and advanced key and address functionality will be released in future iterations of the Sandbox.

🎻 For a full current list of limitations see here.

You can learn how to write and test Aztec smart contracts. You just can’t deploy production applications–yet.

What is Noir’s relationship to all this?

Aztec Labs first developed Noir as a standalone, open-source, universal language for zero-knowledge programming. Noir is designed to be compatible across proving systems while also being verifiable to any chain, not just Aztec.

​​It’s no surprise then, that we’ve chosen Noir as a basis for writing smart contracts on Aztec. Using Noir, we’ve written a collection of functions, types, methods, state variables, annotations, etc. which together provide a rich, syntactically pleasing framework, to aid developers in writing intuitive and legible private smart contracts.

Imaginatively, we called this framework Aztec.nr.

Aztec applications written with the Aztec.nr framework have the advantage of features and tools developers might expect to be packaged with any smart contract framework:

  • Contracts (including callable contract functions and inter-contract function calls)
  • Persistent state variables
  • Contract address semantics
  • Access to msg.sender and other call context information
  • Access to transaction context information
  • Access to historic blockchain data
  • Events (logs) (both encrypted and unencrypted)
  • Cryptographic primitives
  • Cross-chain (L1 -> L2 and L2 -> L1) message passing

Noir is an open-source language with universal applicability to zero knowledge use-cases. In fact, our hope is Noir’s extensibility allows it to be used even in non-blockchain / web2 applications!

But with Aztec.nr, Noir now fits hand-in-glove with Aztec. Noir developers now have access to the best privacy infrastructure for their applications.

Noir developers: it’s time to come home.

🏃 Get started now at sandbox.aztec.network.

Front-run the future

Joining now as a Sandbox developer represents a significant opportunity to gain early access and bend the blockchain universe toward more privacy, not less.

At Aztec Labs we’ve worked tirelessly to make zero knowledge cryptography accessible to non-cryptographers. The Aztec Sandbox now delivers that promise in a developer-friendly package.

We’re excited by the opportunity represented by this release to begin democratizing access to fully decentralized privacy-enabled applications.

We hope you are too.

Get started

The fastest way to get going with the Aztec Sandbox is our starter page at sandbox.aztec.network, which allows you to download the Sandbox, deploy an example private token contract, and do basic interactions with the contract to transfer tokens between private addresses via the Aztec CLI.

Additional resources: