Skip to main content
The Sui Framework provides core modules for building Move applications on Sui. These modules are published at address 0x2 and provide fundamental functionality.

Core Modules

object.move

Defines Sui’s object model and provides functions for object operations. Key Types:
  • UID - Unique identifier for objects
  • ID - Reference to an object’s UID
Key Functions:
Example:

coin.move

Defines the Coin type and provides functions for working with fungible tokens. Key Types:
  • Coin<T> - A coin of type T
  • TreasuryCap<T> - Capability to mint/burn coins
  • CoinMetadata<T> - Metadata for a coin type
Key Functions:
Example:

transfer.move

Provides functions for transferring objects between addresses. Key Functions:
Example:

tx_context.move

Provides transaction context information. Key Functions:

balance.move

Defines the Balance type for managing fungible token amounts. Key Types:
  • Balance<T> - A balance of type T (not an object)
Key Functions:

event.move

Provides functions for emitting on-chain events. Key Functions:
Example:

table.move

Provides a key-value store (dynamic fields that are objects). Key Types:
  • Table<K, V> - A table with key type K and value type V
Key Functions:
Example:

dynamic_field.move

Provides dynamic fields (fields added at runtime). Key Functions:

bag.move

Provides a heterogeneous collection (like Table but can store different value types). Key Types:
  • Bag - A heterogeneous map
Key Functions:

clock.move

Provides access to on-chain time. Key Functions:
Example:

package.move

Provides package publishing capabilities. Key Types:
  • Publisher - Capability proving package authorship
  • UpgradeCap - Capability to upgrade a package
Key Functions:

Common Patterns

Creating Custom Coins

Using Display

Full Module List

The Sui Framework at 0x2 includes:
  • object - Object model
  • coin - Fungible tokens
  • balance - Token balances
  • transfer - Object transfers
  • tx_context - Transaction context
  • event - Event emission
  • table - Key-value store
  • bag - Heterogeneous map
  • object_table - Table with object values
  • object_bag - Bag with object values
  • dynamic_field - Dynamic fields
  • dynamic_object_field - Dynamic object fields
  • vec_map - Vector-based map
  • vec_set - Vector-based set
  • linked_table - Linked list table
  • table_vec - Vector-like table
  • priority_queue - Priority queue
  • display - Object display metadata
  • package - Package publishing
  • clock - On-chain time
  • bcs - Binary serialization
  • address - Address utilities
  • hex - Hex encoding
  • math - Math utilities
  • sui - SUI coin module
  • token - Token standard (new)
  • random - Randomness API
  • crypto - Cryptographic primitives
  • authenticator_state - zkLogin state
  • deny_list - Address deny listing
  • kiosk - Kiosk trading protocol