Algorand Virtual Machine Overview
The following section offers a non-normative overview of the Algorand Virtual Machine (AVM). It is meant to complement the AVM normative specification, helping readers and implementers develop a complete, high-level, holistic understanding of how the AVM works.
Architecture Diagram
The following diagram provides an overview of the full AVM architecture.
At a high level, the Algorand Virtual Machine (AVM) architecture is composed of four main components:
-
Transactions, which act as inputs to AVM programs. These include various fields and optional arguments. For Logic Signatures, arguments can be provided as byte arrays. This forms the stateless execution environment.
-
The Application Call Context, which supplies references from the Ledger to any data that must be prefetched (such as Boxes, ASAs, foreign Apps, and Accounts). This defines the stateful execution environment.
-
The Ledger state, which offers global, runtime-accessible information recorded on the Ledger.
-
A processing component, responsible for executing the programs and approving or rejecting their effects on the Ledger.
Together, these components define the Evaluation Context, encapsulating everything needed to evaluate a program.
Outside this architecture diagram, an Assembler component compiles programs into executable AVM bytecode.