Asset tokenization is revolutionizing how we perceive ownership of high-value physical and digital assets. By leveraging blockchain technology, asset tokenization enables the division of real-world assets—such as real estate, art, commodities, stocks, or collectibles—into smaller, tradable digital units. These units, represented as digital tokens on a blockchain, democratize access to investments that were previously out of reach for most individuals.
On the Sui blockchain, asset tokenization is made efficient, secure, and developer-friendly through Move-based smart contracts. This guide explores how developers can implement, customize, and deploy tokenized assets using Sui’s powerful infrastructure.
What Is Asset Tokenization?
At its core, asset tokenization converts ownership rights of a tangible or intangible asset into digital tokens recorded on a blockchain. Each token represents a fraction of the underlying asset, enabling divisible, transparent, and programmable ownership.
For example:
- A $2 million artwork can be split into 20,000 tokens worth $100 each.
- Real estate investors can buy shares in a commercial building without purchasing the entire property.
- Rare collectibles can be fractionalized among multiple collectors.
This model increases liquidity, reduces entry barriers, and enhances market efficiency.
👉 Discover how to tokenize your first digital asset today.
Core Concepts in Sui-Based Tokenization
Fractional Ownership via NFTs and FTs
Sui supports two primary token types for asset tokenization:
- Fungible Tokens (FTs): Interchangeable units like currency. Ideal for divisible assets where each unit holds equal value.
- Non-Fungible Tokens (NFTs): Unique tokens with distinct metadata. Suitable for one-of-a-kind items or customized fractions.
When minting a tokenized asset:
- If new metadata is added (e.g., "Piece 8/100", "Authenticity Certificate ID"), it becomes an NFT with a balance of 1.
- If no additional metadata is provided, it’s treated as an FT, allowing balances greater than one and supporting operations like splitting and joining.
This dual approach offers flexibility in modeling both homogeneous and differentiated ownership stakes.
Key Smart Contract Components
The implementation relies on several core structs defined in the asset_tokenization Move package:
AssetCap
Controls supply and burnability:
struct AssetCap {
id: UID,
supply: Supply,
total_supply: u64,
burnable: bool
}AssetMetadata
Stores immutable asset details (name, symbol, description, logo URL):
struct AssetMetadata has key, store {
id: UID,
name: String,
symbol: ascii::String,
description: String,
icon_url: Option<String>
}TokenizedAsset
Represents individual tokens:
struct TokenizedAsset has key, store {
id: UID,
balance: Balance,
metadata: VecMap<String, String>, // Determines NFT vs FT
image_url: Option<String>
}PlatformCap
Grants administrative privileges to the contract deployer.
These components work together to ensure secure creation, management, and transfer of tokenized assets.
Functional Capabilities
Minting New Assets
Using the new_asset() function, developers define:
- Total supply
- Symbol and name
- Description and icon
- Burnability flag
Once created, the mint() function issues new tokenized assets. Developers can dynamically assign metadata during minting to create unique NFTs or standard FTs.
Splitting and Joining FTs
Fungible tokens support dynamic quantity management:
split(): Divides an FT into two parts (e.g., split 100 tokens into 30 + 70).join(): Merges two FTs into one (e.g., combine 25 + 75 = 100).
These operations are essential for secondary trading, portfolio rebalancing, and user-driven liquidity.
Burning Tokens
If configured as burnable during creation, tokens can be permanently removed from circulation using the burn() function. This reduces the circulating supply while preserving the total supply limit—allowing potential re-minting later if needed.
This feature is useful for redemption mechanisms, buybacks, or consumption-based use cases.
Move Packages and Architecture
The asset_tokenization Package
Built using Sui’s Move language, this package provides foundational logic for tokenization. It follows patterns similar to ERC-1155 but is optimized for Sui’s object-centric model.
It integrates with the Kiosk standard to enforce transfer policies such as:
- Royalties
- Floor prices
- Locking mechanisms
⚠️ Note: If policy enforcement isn't required, the unlock module and related proxy methods can be omitted.
Key modules include:
tokenized_asset: Core logic for minting, splitting, joining, and burning.proxy: Facilitates interaction with Kiosk policies.unlock: Handles conditional unlocking of assets.
The template Package
Designed for ease of deployment, this package allows developers to:
- Customize asset parameters (name, supply, symbol) via web interfaces.
- Dynamically generate new asset types using WebAssembly (WASM).
By editing constants in the template module—such as TOTAL_SUPPLY, NAME, or BURNABLE—developers can publish new asset variants without rewriting core logic.
This approach mirrors a launchpad-style deployment system, ideal for platforms issuing multiple tokenized assets.
Deployment Workflow
Step 1: Initialize Sui Client
Before publishing:
sui clientFollow prompts to connect to the Sui network (default: testnet). Choose Ed25519 key scheme (option 0).
Step 2: Publish Packages
You can publish manually or use automation scripts.
Manual Publishing
Navigate to move/asset_tokenization and run:
sui client publish --gas-budget 20000000Store the generated Package ID and Registry ID in your .env file.
Update Move.toml by replacing 0x0 with the deployed package address.
Automated Publishing
Use the provided script:
npm run publish-asset-tokenizationAutomatically fills .env fields including:
SUI_NETWORKASSET_TOKENIZATION_PACKAGE_IDREGISTRY
WebAssembly (WASM) Integration
Sui enables bytecode manipulation via WASM to allow on-the-fly contract customization in browser environments.
Bytecode Manipulation Process
Compile the template module:
xxd -c 0 -p build/template/bytecode_modules/template.mv | head -n 1- Paste output into
getBytecode()inbytecode-template.ts. - Repeat for the
genesismodule and updategenesis_bytecode.ts.
Now you can modify constants programmatically:
.updateConstant(0, totalSupply, "100", "u64")
.updateConstant(1, symbol, "ART", "string")
.changeIdentifiers({ template: "FineArt", TEMPLATE: "FINEART" })Finally, serialize and deploy:
tx.publish({
modules: [[...templateBytes], [...genesisBytes]],
dependencies: ["0x1", "0x2", packageId]
});This technique enables no-code/low-code asset creation platforms.
Customization & Advanced Use Cases
Enhanced User Flexibility
While only admins typically control burning, you can extend permissions via burn tickets:
struct BurnTicket has key {
id: UID,
tokenized_asset_id: ID
}Admins issue these tickets, allowing users to burn specific tokens for use-case-driven purposes (e.g., redeeming collectibles for rewards).
Splitting AssetCap into Treasury (supply management) and AdminCap (policy control) enables fine-grained access design.
Single-Tx Purchase & Join Flow
Optimize user experience by combining actions:
public fun kiosk_join(
kiosk: &mut Kiosk,
kiosk_cap: &KioskOwnerCap,
protected_tp: &ProtectedTP<T>,
ta1_id: ID,
ta2_id: ID,
ctx: &mut TxContext
)This function performs:
- Listing
- Borrowing
- Purchase
- Joining
All in one transaction block—improving UX and reducing gas costs.
Frequently Asked Questions (FAQ)
Q: Can I tokenize real estate on Sui?
A: Yes. You can represent ownership shares of real estate as fungible tokens. Metadata can include property details, legal documentation hashes, and jurisdictional compliance info.
Q: Are tokenized assets interoperable across chains?
A: Currently within Sui’s ecosystem. Cross-chain bridges may enable future interoperability.
Q: How do royalties work for secondary sales?
A: Using the Kiosk standard, you can set royalty rules (e.g., 5%) enforced on every transfer via addRoyaltyRule().
Q: Can I update asset metadata after deployment?
A: No. Metadata is immutable once set. However, you can version assets or use off-chain pointers (e.g., IPFS URLs) for dynamic data.
Q: Is there a fee to mint tokens?
A: Yes. Gas fees apply based on computation and storage used during transaction execution.
👉 Start building your own tokenized asset platform now.
Conclusion
Asset tokenization on Sui unlocks new frontiers in digital ownership. With its high-performance architecture, developer-centric tools like Move and WASM integration, and robust policy enforcement via Kiosk, Sui provides everything needed to launch scalable, compliant tokenization projects.
Whether you're fractionalizing art, enabling community-owned ventures, or creating new financial instruments, Sui empowers innovation with security and efficiency at its core.
Ready to take the next step?
👉 Launch your first tokenized asset on a leading-edge blockchain platform.