Introduction to Move
A Gentle Introduction to Move Language
💡 Key Terms Preview
- Move: An asset-centric smart contract language for blockchains
- Resource: A value that cannot be copied or deleted, only moved
- Module: The basic unit of Move code (contains functions and types)
1. What is Move?
Move is a programming language designed to safely manage blockchain assets. It originated in Facebook’s Libra project (2018) and is now used in Sui and Aptos, among other modern blockchains. The name comes from the action of “moving values instead of copying them”, representing the core of Move’s asset model.
2. Core Values of Move
Core Value | Description |
---|---|
🧩 Security | Ensures assets cannot be copied or deleted at the language level |
⚙️ Expressiveness | Defines and manages asset logic clearly within the language structure |
🚀 Intuitiveness | Applicable not only to smart contracts but also to general applications |
3. Key Features of Move
Feature | Description |
---|---|
Resource Types | Digital assets cannot be copied or deleted and must be moved explicitly |
Ability System | Strictly controls how values are created, stored, and transferred |
Module System | Supports code reuse and encapsulation for modular development |
PTB (Programmable Transaction Block) | Groups multiple operations into a single transaction for execution |
4. Move in Sui
Sui extends Move with an object-centric model, enabling asset-level transactions and efficient resource management.
Concept | Description |
---|---|
Object-Centric Model | Every asset is represented and managed as an object |
Unique Object ID | Each object has a globally unique identifier |
Parallel Execution | Transactions without conflicts can be executed simultaneously |
Entry Function | A public function that serves as a callable entry point |
5. Relationship Between Move and PTB
PTBs (Programmable Transaction Blocks) link multiple Move module functions into a single executable transaction, enabling visual and modular transaction design. On Sui, this allows developers to handle multiple Move calls efficiently and create complex workflows with ease.
💡 In the next chapter, you’ll learn how to set up your development environment and run Move using both the CLI and VS Code Extension.