IOTA Move Framework
The IOTA Move Framework is a comprehensive library of Move modules that provides the foundational building blocks for developing smart contracts on the IOTA blockchain. It includes essential functionality for asset management, object ownership, cryptography, and common data structures.What is Move?
Move is a safe and secure programming language designed for blockchain applications. It provides:- Resource safety: Assets are represented as resources that cannot be copied or implicitly discarded
- Type safety: Strong static typing prevents many common programming errors
- Formal verification: The language is designed to be formally verified for correctness
- Module system: Code is organized into reusable modules
Framework Architecture
The IOTA Move Framework is organized into several key areas:Core Object System
The object system provides the fundamental types and operations for working with on-chain assets:object- Object identifiers and UID managementtransfer- Ownership transfer operationstx_context- Transaction context and metadata
Asset Management
Modules for creating and managing fungible and non-fungible assets:coin- Fungible token implementationbalance- Low-level balance operationstoken- Advanced token functionalitykiosk- Decentralized trading platform
Data Structures
Common collection types built on IOTA’s object system:table- Key-value storagebag- Heterogeneous collectionsvec_map- Vector-based mapsvec_set- Vector-based setsdynamic_field- Dynamic object fields
System Functions
clock- Access to blockchain timeevent- Event emissionpackage- Package management and upgradesdisplay- Object display metadata
Key Concepts
Objects and UIDs
Every IOTA object must have a unique identifier (UID). Objects are structs with the key ability:
Ownership Models
IOTA supports multiple ownership models:- Owned objects: Owned by a specific address
- Shared objects: Can be accessed by anyone
- Immutable objects: Frozen and cannot be modified
Abilities
Move types can have abilities that determine what operations are allowed:copy- Can be copieddrop- Can be discardedstore- Can be stored inside other structskey- Can be used as a key for global storage
Getting Started
To use the IOTA Move Framework in your project:- Import modules in your Move.toml:
- Use framework modules in your code:
Framework Location
The framework source code is located at:Next Steps
- Explore the Standard Library overview
- Learn about core modules like Object and Transfer
- Study common design patterns used in Move development