Glossary
Aztec
The CLI tool (with an extensive set of parameters) that enables users to perform a wide range of tasks. It can: run a node, run a sandbox, execute tests, generate contract interfaces for javascript...
Full reference here.
Aztec Wallet
The Aztec Wallet is a CLI wallet, aztec-wallet
, that allows a user to manage accounts and interact with an Aztec network. It includes a PXE.
Full reference here.
aztec-nargo
The command line tool used to compile Aztec contracts. It is a specific version of nargo
, with additional transpiler for turning a contract's public function code from Noir brillig bytecode into Aztec Virtual Machine (AVM) bytecode.
You can read more about nargo
here.
aztec-up
This tool updates the local aztec executables to the latest version (default behaviour) or to a specified version.
Aztec.js
A Node package to help make Aztec dApps.
Read more and review the source code here.
Aztec.nr
A Noir framework for writing smart contracts on Aztec.
Read more and review the source code here.
Barretenberg
Aztec's cryptography back-end. Refer to the graphic at the top of this page to see how it fits in the Aztec architecture.
Barretenberg's source code can be found here.
bb / bb.js
bb
(CLI) and its corresponding bb.js
(node module) are tools that prove and verify circuits. It also has helpful functions such as: writing solidity verifier contracts, checking a witness, and viewing a circuit's gate count.
nargo
With nargo
, you can start new projects, compile, execute, and test your Noir programs.
You can find more information in the nargo installation docs here and the nargo command reference here.
Noir
Noir is a Domain Specific Language for SNARK proving systems. It is used for writing smart contracts in Aztec because private functions on Aztec are implemented as SNARKs to support privacy-preserving operations.
Noir Language Server
The Noir Language Server can be used in vscode to facilitate writing programs in Noir by providing syntax highlighting, circuit introspection and an execution interface. The Noir LSP addon allows the dev to choose their tool, nargo or aztec-nargo, when writing a pure Noir program or an Aztec smart contract.
You can find more info about the LSP in the Noir docs.
Node
A prover/sequencer that is part of a decentralised Aztec network. The Aztec testnet rolls up to Ethereum Sepolia.
To run your own node see here.
Note
In Aztec, a Note is encrypted information stored by nodes in the network. Data in a note (once decrypted) may represent some variable's state at a point in time.
Provers
Aztec will be launched with a fully permissionless proving network that anyone can participate in.
How this works will be discussed via a future RFP process on Discourse, similarly to the Sequencer RFP.
Private Execution Environment (PXE)
A client-side key manager, private contract storage, and Private eXecution Environment for private transactions. A PXE is a core part of an Aztec wallet and Sandbox, but can be decoupled and run independently.
Read more here.
Sandbox
The Aztec Sandbox runs a set of Aztec tools for convenient local development, it includes: an Ethereum node, an Aztec node, and PXE.
Sequencer
Aztec will be launched with a fully permissionless sequencer network that anyone can participate in.
How this works is being discussed actively in the Discourse forum. Once this discussion process is completed, we will update the glossary and documentation with specifications and instructions for how to run.
Sequencers are generally responsible for:
- Selecting pending transactions from the mempool
- Ordering transactions into a block
- Verifying all private transaction proofs and execute all public transactions to check their validity
- Computing the ROLLUP_BLOCK_REQUEST_DATA
- Computing state updates for messages between L2 & L1
- Broadcasting the ROLLUP_BLOCK_REQUEST_DATA to the prover network via the proof pool for parallelizable computation.
- Building a rollup proof from completed proofs in the proof pool
- Tagging the pending block with an upgrade signal to facilitate forks
- Publishing completed block with proofs to Ethereum as an ETH transaction
Previously in Aztec Connect there was a single sequencer, and you can find the Typescript reference implementation called Falafel here.
Smart Contracts
Programs that run on the Aztec network are called smart contracts, similar to programs that run on Ethereum.
However, these will be written in the Noir programming language, and may optionally include private state and private functions.
Testing eXecution Environment (TXE)
TXE stands for Test eXecution Environment. It enables rapid Aztec contract development by using "cheatcodes" in the Aztec Sandbox that manipulate state. For convenience, similar "cheatcodes" to manipulate Anvil's EVM state are wrapped.
Proving Key
A key that is used to generate a proof. In the case of Aztec, these are compiled from Noir smart contracts.
Verification Key
A key that is used to verify the validity of a proof generated from a proving key from the same smart contract.