Skip to content

Bytecode Reference

This section is a technical reference for the Move bytecode format — the binary representation that the Aptos Move VM verifies and executes. It is aimed at developers building tooling (disassemblers, debuggers, static analyzers) and anyone who wants to understand what happens between aptos move compile and on-chain execution.

┌──────────────┐ ┌──────────┐ ┌───────────────┐ ┌───────────┐
│ Move source │ ──▶ │ Compiler │ ──▶ │ Module binary │ ──▶ │ Aptos VM │
│ (.move) │ │ │ │ (bytecode blob)│ │ (execute) │
└──────────────┘ └──────────┘ └───────────────┘ └───────────┘
  1. The compiler translates Move source into a self-contained module binary.
  2. The binary is published on-chain via a publish transaction.
  3. At execution time the VM loads the binary, runs the bytecode verifier, and then interprets the instructions.
PageDescription
Module Binary FormatHeader layout, magic bytes, table directory, and every table type in the binary format. Start here if you are writing a parser.
Instruction Set ReferenceEvery opcode the VM can execute — operands, stack effects, and execution semantics.
Type SystemHow types are represented as signature tokens, how abilities work at the bytecode level, and the handle indirection model.
Version HistoryWhat changed in each bytecode format version from v5 through v10.

The canonical definitions live in the aptos-core repository: