Learn MOVE with Real Code Examples
Updated Nov 25, 2025
Explain
Move enforces resource types - assets cannot be copied or lost unintentionally.
It has strong static typing and a formal verification model.
Designed to manage digital assets safely on blockchain networks.
Supports modules and scripts for reusable and composable logic.
Used by Diem, Aptos, Sui, and other blockchain ecosystems.
Core Features
Modules and scripts
Structs as first-class resources
Typed references and borrowing
Access control for resources
Compatibility with Move Virtual Machine (MVM)
Basic Concepts Overview
Resources - cannot be copied or discarded
Modules - reusable code units
Scripts - executable transactions
Structs with resource semantics
Functions with strict type safety
Project Structure
sources/ - Move modules
tests/ - unit and prover tests
scripts/ - transaction scripts
build/ - compiled bytecode
Move.toml - project config
Building Workflow
Write Move module (.move) file
Compile to bytecode
Test logic using Move Prover or testnet
Deploy module on chain
Interact via scripts or transactions
Difficulty Use Cases
Beginner: simple coin or token
Intermediate: multi-resource transactions
Advanced: NFT or DeFi module
Expert: formal verification proofs
Auditor: resource safety and module correctness
Comparisons
Move vs Solidity: Move is resource-safe; Solidity is feature-rich
Move vs Vyper: Move has ownership semantics; Vyper emphasizes simplicity
Move vs Rust: Move is resource-focused for blockchain; Rust is general-purpose
Move vs Cairo: Move targets asset-safe chains; Cairo targets STARK proofs
Move vs JavaScript: Move is strongly typed and blockchain-safe
Versioning Timeline
2019 β Move prototype (Libra)
2020 β Move language stabilization
2021 β Aptos adoption
2022 β Sui adoption
2023β2025 β Tooling and ecosystem expansion
Glossary
Move VM: Virtual machine executing Move bytecode
Resource: asset that cannot be copied or destroyed
Module: reusable code unit
Script: executable transaction
Prover: formal verification tool