As blockchain technology evolves, Non-Fungible Tokens (NFTs) have become pivotal in digital asset management, revolutionizing ownership and trading. Aptos introduces an innovative Digital Asset (DA) standard, enabling developers to easily create and manage unique on-chain assets. Through Collections and Tokens, developers can mint NFTs enriched with metadata (e.g., images, video links) to enhance user interactivity.
This guide explores Aptos DA standards, covering project initialization, smart contract development, deployment, and NFT operations. By the end, you’ll master NFT workflows on Aptos.
Aptos Digital Asset (DA) Standard
Aptos’ DA standard comprises:
- Collection – Groups NFTs under a unified name/description for organization.
- Token – Represents a unique asset (e.g., NFT) with a
urilinking to metadata.
Step-by-Step NFT Project Implementation
1. Project Initialization
aptos init --network testnet- Generates a new account funded with testnet OCTA.
2. Directory Structure
.
├── Move.toml
├── scripts
├── sources
│ └── nft.move
└── tests3. Code Implementation
Move.toml
[package]
name = "AptosNFTFactory"
version = "1.0.0"
[dependencies]
AptosFramework = { git = "https://github.com/aptos-labs/aptos-core.git", rev = "mainnet", subdir = "aptos-move/framework/aptos-framework" }
AptosTokenObjects = { git = "https://github.com/aptos-labs/aptos-core.git", rev = "mainnet", subdir = "aptos-move/framework/aptos-token-objects" }nft.move
module contract::nft {
use aptos_token_objects::{collection, token};
use std::string;
public entry fun create_collection(creator: &signer) {
collection::create_fixed_collection(
creator,
string::utf8(b"My Collection"),
1000, // Max supply
string::utf8(b"Qiao Collection"),
option::none(), // Royalty
string::utf8(b"https://example.com/image.png")
);
}
public entry fun mint_token(creator: &signer) {
token::create(
creator,
string::utf8(b"Qiao Collection"),
string::utf8(b"My NFT"),
string::utf8(b"QiaoToken"),
option::none(),
string::utf8(b"https://example.com/nft.png")
);
}
}4. Compile & Deploy
aptos move compile --named-addresses contract=default
aptos move publish --named-addresses contract=default- Verify deployment: Transaction Explorer
5. Interact with Contracts
Create Collection:
aptos move run --function-id default::nft::create_collectionMint Token:
aptos move run --function-id default::nft::mint_token
FAQs
Q1: How do I modify NFT metadata?
Use token::set_uri with a MutatorRef stored in the token’s resource.
Q2: Can collections be updated post-creation?
No, max_supply and name are immutable after creation.
Q3: How to burn an NFT?
Call the burn function with the token’s BurnRef.
Conclusion
This guide walked through Aptos NFT development—from setup to deployment. Aptos’ DA standard offers flexibility for scalable digital asset management.
👉 Advanced Aptos Development Resources