Framework structure
The IOTA framework is organized into several packages:- iota-framework: Core modules for objects, transfers, and blockchain primitives
- iota-system: System-level functionality and governance
- move-stdlib: Standard Move library with common utilities
Core modules
Object module
Theiota::object module manages unique object identifiers:
Transfer module
Theiota::transfer module handles object ownership:
TxContext module
Theiota::tx_context module provides transaction context:
Collections
Table
Key-value store with dynamic fields:Bag
Heterogeneous collection storing different types:Dynamic fields
Attach additional data to objects dynamically:Token standards
Coin
Fungible token implementation:Balance
Low-level balance management:Events
Emit events for off-chain indexing:Display standard
Define how objects are displayed:Clock
Access blockchain time:URL
Store and manage URLs:Framework best practices
- Use appropriate transfer functions: Choose between
transfer,public_transfer,share_object, andfreeze_objectbased on your needs - Handle UID properly: Always delete UIDs when destroying objects
- Emit events for important actions: Help indexers track contract activity
- Use collections efficiently: Choose the right collection type (Table, Bag, Vector) for your use case
- Leverage dynamic fields: For flexible data structures
- Implement display standard: For user-friendly object representation
Updating framework packages
When developing against the framework:Next steps
Best practices
Learn Move development best practices
API reference
Explore the complete API documentation