Move - A Web3 Language and Runtime
The Aptos blockchain consists of validator nodes that run a consensus protocol. Consensus agrees on the order of transactions and on their output when executed on the Move Virtual Machine (MoveVM). Each validator feeds the current ledger state plus the block into the VM. The MoveVM produces a changeset (storage delta). Once consensus commits that output, it becomes public. This page covers core Move concepts and how they apply on Aptos.
What is Move?
Section titled “What is Move?”Move is a programming language for Web3 that emphasizes scarcity and access control. Assets are represented by or stored inside resources. Scarcity is the default: a struct cannot be copied or dropped unless the bytecode explicitly grants the copy or drop ability.
Access control comes from accounts and module visibility. A module is a library or program that can create, store, or transfer assets. Only public (and public(friend)) functions are callable from other modules. Unless a struct has a public constructor, only its defining module can create it. Fields are readable and writable only inside that module, or through public accessors. Structs with key can enter global storage only from the module that defines them. Structs with store can sit inside another store or key value, including outside the defining module.
The sender of a transaction is a signer, a verified owner of an account. The signer has the highest privilege in Move and is the only entity that can publish a resource into an account. Module authors can also require a signer to read or update assets under an account.
Comparison to other VMs
Section titled “Comparison to other VMs”| Aptos / Move | Solana / SeaLevel | EVM | Sui / Move | |
|---|---|---|---|---|
| Data storage | Stored at a global address or within the owner’s account | Stored in the owner’s account for a program | Stored in the contract account | Stored at a global address |
| Parallelization | Inferred at runtime with Block-STM | Requires specifying all data accessed | Typically serial | Requires specifying all data accessed |
| Transaction safety | Sequence number or orderless nonce | Transaction uniqueness | Nonces | Transaction uniqueness |
| Type safety | Module structs and generics | Program structs | Contract types | Module structs and generics |
| Function calling | Static dispatch, plus function values (Move 2.2) | Static dispatch | Dynamic dispatch | Static dispatch |
| Authenticated storage | Yes | No | Yes | No |
| Object global accessibility | Yes | Not applicable | Not applicable | No; objects can nest inside others |
Aptos Move features
Section titled “Aptos Move features”Each MoveVM deployment can extend core Move through an adapter. Aptos also ships a framework of modules, similar to an operating system sitting on a CPU.
The Aptos Move adapter includes:
- Move objects — an extensible model for a heterogeneous set of resources at one on-chain address (AIP-10).
- Cryptography primitives for scalable, privacy-preserving apps.
- Resource accounts — programmable accounts without an interactive private key, used for DAOs, shared accounts, and app-owned modules.
- Tables for large key-value collections under an account.
- Parallel execution via Block-STM without declared access lists.
- Multi-agent transactions, so one transaction can carry multiple distinct
signers. - Function values (Move 2.2) for first-class functions, with reentrancy rules you must follow.
- On-chain randomness for unbiasable random values in Move.
The Aptos framework includes:
- The Fungible Asset standard (AIP-21) — the current token model. Prefer it for new assets.
- The Coin standard — the earlier type-parameter token model. Treat it as legacy. APT is paired with a fungible-asset representation; new accounts typically hold APT in a primary fungible store rather than
CoinStore. - Aptos Digital Asset (token objects) as defined in AIP-11 and AIP-22.
- Staking and delegation.
type_ofto inspect a type’s address, module, and struct name at runtime.- A timestamp service that exposes a monotonically increasing Unix time.
More resources
Section titled “More resources”- Smart contracts overview — Move on Aptos, the compiler, and the framework
- Move Book — language reference
- Framework Book — generated docs for
0x1modules - Accounts and Resources — how Move state is stored