Asset tokenization is the process of converting real-world assets (such as real estate, artwork, commodities, stocks, or other valuable assets) into digital tokens on a blockchain network. This involves transforming ownership or rights of an asset into digital tokens, which are then recorded and managed on the blockchain.
High-Level Overview
The core concept revolves around fractionalizing high-value assets into smaller, more affordable units that represent ownership or a share of the asset. This strategy:
- Democratizes Investment: Enables broader participation by allowing investors to buy fractions rather than entire assets.
- Reduces Risk: Lets investors mitigate risk through fractional ownership.
- Enhances Liquidity: Facilitates easier trading of asset shares.
This model shares similarities with the ERC1155 multi-token standard but includes additional functionalities tailored for the Sui blockchain.
Key Components
Asset Creation
Each asset is divided into a total supply, with fractions represented as:- Non-Fungible Tokens (NFTs): Unique tokens with distinct metadata.
- Fungible Tokens (FTs): Interchangeable tokens with identical properties.
NFT vs. FT Differences
- NFTs: Created with unique metadata; balance is fixed at 1.
- FTs: No unique metadata; balance can exceed 1, allowing merging/splitting.
- Burn Mechanism
Assets can be designed as burnable, reducing circulating supply while maintaining total supply.
Move Package for Asset Tokenization
The asset_tokenization package leverages Sui's Move language to implement tokenization logic. Key modules include:
tokenized_asset Module
Structures:
struct TokenizedAsset { id: UID, balance: Balance, metadata: VecMap, image_url: Option<String> }Functions:
mint: Creates tokens (NFT/FT based on input).split/join: Merges or divides FTs.burn: Removes tokens from circulation.
proxy and unlock Modules
- Facilitate secure transfers and enforce policies (e.g., royalties, commissions).
Deployment Workflow
Initialize Sui Client:
sui client initPublish Packages:
Deployasset_tokenizationand template packages:sui client publish --gas-budget 20000000- Configure Environment:
Update.envwith package IDs and network details.
WebAssembly (WASM) Integration
Enable dynamic editing of Move bytecode for web-based asset creation:
- Retrieve Bytecode:
Usexxdto extract module bytecode. - Edit Constants:
Modify fields likeTOTAL_SUPPLYorSYMBOLvia TypeScript. - Publish Changes:
Deploy updated modules to Sui.
TypeScript Interaction Examples
Mint Tokens:
const { keys, values } = getVecMapValues(); // NFT or FT config await mintTokens(keys, values);Lock in Kiosk:
npm run call lock- Trade Assets:
UsepurchaseItem.tsto buy/sell fractionalized tokens.
FAQs
What is asset tokenization?
Asset tokenization converts physical or digital assets into blockchain-based tokens, enabling fractional ownership and trading.
How do NFTs and FTs differ in tokenization?
NFTs represent unique asset fractions (e.g., a specific painting), while FTs represent interchangeable shares (e.g., ounces of gold).
Can tokenized assets be burned?
Yes, if the asset is configured as burnable, reducing circulating supply while preserving total supply.
👉 Explore Sui Blockchain for Tokenization
👉 Learn More About Move Language