Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

AVM Architecture

At a high level, the Algorand Virtual Machine (AVM) architecture is composed of four main components:

  1. 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.

  2. 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.

  3. The Ledger state, which offers global, runtime-accessible information recorded on the Ledger.

  4. 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.