Metaplex Token Metadata
Các tài khoản SPL Token mint lưu trữ các thông tin về số chữ số thập phân, tổng cung, quyền hạn. Chúng không lưu trữ tên, hình ảnh, mô tả. Mint của USDC là EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Ví của bạn hiển thị "USDC" với logo. Thông tin đó đến từ metadata.
Metaplex Token Metadata là tiêu chuẩn thêm thông tin có thể đọc được cho con người vào các token Solana. Một chương trình riêng tạo các tài khoản metadata liên kết với các tài khoản mint. Mọi NFT lớn trên Solana đã sử dụng tiêu chuẩn này trong nhiều năm.
Token Metadata hoạt động như thế nào
Token Metadata sử dụng hai tài khoản:
1. Tài khoản Mint (SPL Token):
Tài khoản SPL Token mint chuẩn. Đối với NFT: supply=1, decimals=0, mint authority=None.
2. Metadata PDA (chương trình Metaplex):
PDA được sở hữu bởi chương trình Metaplex Token Metadata. Lưu trữ tên, biểu tượng, URI, người tạo, tiền bản quyền, thông tin bộ sưu tập.
Được dẫn xuất ra một cách xác định từ địa chỉ mint:
const metadataPDA = PublicKey.findProgramAddressSync(
[
Buffer.from("metadata"),
METADATA_PROGRAM_ID.toBuffer(),
mintAddress.toBuffer(),
],
METADATA_PROGRAM_ID
)[0];Với bất kỳ địa chỉ mint nào, bất kỳ ai cũng có thể tính toán địa chỉ metadata PDA. Không cần lưu trữ hoặc truyền đạt nó riêng biệt. Ví và trình khám phá tự động dẫn xuất nó.
Cấu trúc tài khoản Metadata
Tài khoản metadata chứa dữ liệu có cấu trúc:
pub struct Metadata {
pub key: Key, // Account type discriminator
pub update_authority: Pubkey, // Who can update metadata
pub mint: Pubkey, // Associated token mint
pub data: Data, // Name, symbol, URI, creators, royalty
pub primary_sale_happened: bool,
pub is_mutable: bool, // Can metadata be changed?
pub edition_nonce: Option<u8>,
pub token_standard: Option<TokenStandard>,
pub collection: Option<Collection>,
pub uses: Option<Uses>,
pub collection_details: Option<CollectionDetails>,
pub programmable_config: Option<ProgrammableConfig>,
}update_authority - Ai có thể cập nhật metadata:
Thường là người tạo ban đầu
Có thể thay đổi hoặc thu hồi (đặt thành None để không thể thay đổi)
Độc lập với quyền hạn của mint
mint - Token mà metadata này mô tả:
Liên kết metadata với tài khoản mint cụ thể
Một tài khoản metadata cho mỗi mint
data - Metadata thực tế:
pub struct Data {
pub name: String, // "Okay Bear #1234"
pub symbol: String, // "OKAY"
pub uri: String, // Link to off-chain JSON
pub seller_fee_basis_points: u16, // Royalty %
pub creators: Option<Vec<Creator>>,
}primary_sale_happened - Theo dõi lần bán đầu tiên:
Ban đầu là False
Đặt thành True sau lần bán đầu tiên trên thị trường
Sử dụng cho logic tiền bản quyền (một số người tạo từ bỏ tiền bản quyền trên lần bán đầu tiên)
is_mutable - Metadata có thể thay đổi không?:
True: Update authority có thể sửa đổi metadata
False: Metadata bị đóng băng vĩnh viễn
Thường đặt false sau khi mint để đảm bảo tính bất biến
collection - Thành viên bộ sưu tập:
Tham chiếu đến NFT bộ sưu tập
Cờ xác minh (collection authority đã ký)
Cho phép lọc và xác minh bộ sưu tập
Off-Chain Metadata (JSON)
Trường uri trong metadata on-chain trỏ đến tệp JSON off-chain chứa thông tin chi tiết.
Cấu trúc JSON điển hình:
{
"name": "Okay Bear #1234",
"symbol": "OKAY",
"description": "Okay Bear is a collection of 10,000 bears.",
"image": "https://arweave.net/...",
"attributes": [
{ "trait_type": "Background", "value": "Blue" },
{ "trait_type": "Fur", "value": "Brown" },
{ "trait_type": "Eyes", "value": "Happy" },
{ "trait_type": "Clothing", "value": "T-Shirt" }
],
"properties": {
"files": [
{ "uri": "https://arweave.net/...", "type": "image/png" }
],
"category": "image"
}
}Tại sao tách on-chain/off-chain?
Lưu trữ on-chain rất tốn kém. Lưu một tệp JSON 2KB trên chuỗi tốn ~0.01 SOL mỗi NFT. Với 10,000 NFT: 100 SOL = $15,000+ tiền thuê.
Lưu trữ off-chain (IPFS, Arweave, centralized) rẻ hơn nhiều. URI trỏ đến JSON. Ví và trình duyệt tự động lấy và hiển thị.
Tùy chọn lưu trữ:
Arweave: Lưu trữ phi tập trung vĩnh viễn. Trả một lần, lưu trữ mãi mãi. Hầu hết các dự án NFT sử dụng dịch vụ này. Chi phí: ~$0.01 mỗi tệp.
IPFS: Phi tập trung nhưng không đảm bảo vĩnh viễn. Tệp có thể biến mất nếu không ai ghim chúng. Rẻ hơn nhưng ít đáng tin cậy hơn.
Centralized (AWS, Cloudflare): Rẻ nhất và nhanh nhất. Người tạo kiểm soát. Rủi ro: Người tạo có thể thay đổi hoặc xóa. Không thực sự phi tập trung.
On-chain (hiếm): Tối đa tính vĩnh viễn và phi tập trung. Rất tốn kém. Một số NFT giá trị cao làm điều này thông qua inscriptions.
Tác giả và tiền bản quyền
Metadata bao gồm danh sách tác giả và cấu hình tiền bản quyền:
pub struct Creator {
pub address: Pubkey,
pub verified: bool, // Creator signed approval
pub share: u8, // Percentage of royalties (0-100)
}Xác minh tác giả:
Bất kỳ ai cũng có thể mint một NFT và tuyên bố các tác giả tùy ý. Việc xác minh chứng minh rằng các tác giả đã phê duyệt điều này.
Chưa xác minh: NFT liệt kê tác giả, nhưng tác giả chưa ký. Có thể là giả mạo.
Đã xác minh: Tác giả đã ký giao dịch chứng minh họ đồng ý được liệt kê. Xác thực.
Các thị trường hiển thị trạng thái xác minh. Tác giả đã xác minh tăng tính hợp pháp.
Phân phối tiền bản quyền:
seller_fee_basis_points: 500 // 5% royalty
creators: [
{ address: Artist, verified: true, share: 70 }, // Artist gets 3.5%
{ address: Platform, verified: true, share: 30 }, // Platform gets 1.5%
]Thị trường thứ cấp chia sẻ: 95% cho người bán, 5% cho các tác giả (dựa trên tỷ lệ phần trăm chia sẻ).
Các thị trường tôn trọng tiền bản quyền một cách tự nguyện. Giao thức không thực thi. Hầu hết các thị trường lớn tôn trọng tiền bản quyền của tác giả theo mặc định, nhưng một số cung cấp giao dịch không có tiền bản quyền.
Bộ sưu tập và xác minh
Bộ sưu tập nhóm các NFT có mối liên quan với nhau. Okay Bears là một bộ sưu tập. Mad Lads là một bộ sưu tập.
Cấu trúc bộ sưu tập:
Bộ sưu tập tự nó là một NFT (supply=1).
Các NFT riêng lẻ tham chiếu đến bộ sưu tập:
pub struct Collection {
pub verified: bool, // Collection authority signed
pub key: Pubkey, // Collection NFT address
}Quy trình xác minh:
Đúc một NFT bộ sưu tập (supply=1)
Đúc các NFT riêng lẻ với trường collection trỏ đến NFT bộ sưu tập
Quyền cập nhật bộ sưu tập ký xác minh cho từng NFT
Cờ
verifiedđược đặt thành true
Các thành viên bộ sưu tập chưa được xác minh có nghĩa là NFT tự tuyên bố thuộc về nhưng bộ sưu tập chưa xác minh. Có khả năng là giả mạo. Các thị trường lọc các NFT chưa được xác minh hoặc hiển thị cảnh báo.
Tại sao việc xác minh quan trọng:
Bất kỳ ai cũng có thể tạo NFT tuyên bố "Okay Bear #10001." Nếu không có xác minh, các thị trường không thể phân biệt thật giả. Xác minh chứng minh rằng quyền lực bộ sưu tập đã phê duyệt NFT này.
NFT giả không thể được xác minh (chúng không có chữ ký quyền lực bộ sưu tập). NFT thật có cờ verified. Cách đơn giản để chống giả mạo.
Phiên bản chính và bản in
Metaplex hỗ trợ cơ chế phiên bản: một NFT chính, nhiều bản in.
Phiên bản chính:
NFT gốc được đánh dấu là phiên bản chính. Supply=1. Có PDA phiên bản chính theo dõi số lượng bản in tồn tại và số lượng tối đa cho phép.
Phiên bản in:
Bản in giới hạn hoặc không giới hạn của phiên bản chính. Mỗi bản in là một NFT riêng biệt (supply=1) nhưng được đánh dấu là phiên bản sao chép của phiên bản chính.
Bản in #1, Bản in #2, v.v. Được đánh số và có thể truy xuất đến phiên bản chính.
Trường hợp sử dụng:
Các phiên bản giới hạn của tác phẩm kỹ thuật số. Nghệ sĩ tạo phiên bản chính, đúc 100 bản in. Bản in #37 trong 100.
Ảnh sự kiện với bản gốc có chữ ký. Nhiếp ảnh gia giữ phiên bản chính, bán các bản in có đánh số.
Đánh đổi:
Thêm độ phức tạp. Mỗi bản in là một NFT riêng biệt với các tài khoản riêng. Chi phí cao hơn so với một NFT duy nhất.
Giá trị thị trường: Phiên bản chính thường có giá trị cao hơn bản in. Số lượng bản in ảnh hưởng đến giá trị (bản in sớm hơn có giá trị cao hơn).
Không được sử dụng rộng rãi so với NFT 1/1 duy nhất. Tăng độ phức tạp cho hầu hết các dự án NFT.
Các NFT lập trình được
Mới được thêm vào Token Metadata gần đây: Các NFT lập trình được (pNFTs).
Những gì chúng cho phép:
Thực thi tiền bản quyền ở cấp giao thức (các giao dịch chuyển nhượng yêu cầu thanh toán tiền bản quyền).
Quy tắc chuyển nhượng (hạn chế ai có thể chuyển, khi nào, dưới những điều kiện nào).
Quản lý ủy quyền (hệ thống quyền nâng cao).
Cách chúng hoạt động:
Đúc bao gồm cấu hình lập trình. Các giao dịch chuyển nhượng thực hiện thông qua xác thực quy tắc. Các chương trình có thể thực thi logic mà Ethereum ERC-721 không thể.
Đánh đổi:
Phức tạp hơn so với NFT tiêu chuẩn. Chi phí giao dịch cao hơn. Thêm các tài khoản bổ sung.
Lợi ích: Thực thi tiền bản quyền thực sự (không phụ thuộc vào thị trường). Kiểm soát chuyển nhượng cho trò chơi, tuân thủ, quyền sở hữu có điều kiện.
Áp dụng:
Đang phát triển nhưng vẫn là ít được sử dụng. Hầu hết NFT vẫn là Token Metadata tiêu chuẩn. Sử dụng pNFTs khi việc thực thi là quan trọng (tác phẩm nghệ thuật giá trị cao với tiền bản quyền, vật phẩm trò chơi với hạn chế giao dịch).
Tạo NFT Token Metadata
Các bước:
Tạo tài khoản mint (supply=1, decimals=0)
Đúc 1 token vào tài khoản token của chủ sở hữu
Đặt quyền mint thành None (ngăn chặn việc đúc thêm)
Tạo metadata PDA với tên, ký hiệu, URI, người tạo, tiền bản quyền
Nếu là một phần của bộ sưu tập: Đặt trường bộ sưu tập và xác minh
Công cụ:
Metaplex JS SDK cung cấp các hàm hỗ trợ:
const { nft } = await metaplex.nfts().create({
uri: "https://arweave.net/metadata.json",
name: "My NFT",
sellerFeeBasisPoints: 500,
creators: [
{
address: creator.publicKey,
share: 100,
}
],
});Xử lý tự động việc tạo mint, đúc token, và tạo metadata PDA.
Chi phí:
Tài khoản mint: 0.00144 SOL phí thuê.
Tài khoản Metadata: ~0.012-0.02 SOL (tùy thuộc vào kích thước dữ liệu).
Tổng cộng: ~0.015-0.025 SOL mỗi NFT ≈ $0.02-0.03.
Khi nào nên sử dụng Token Metadata
Sử dụng Token Metadata khi:
Cần sự tương thích tối đa. Mọi ví, thị trường, công cụ đều hỗ trợ nó.
Dự án của bạn cần tiêu chuẩn đã được kiểm chứng. Nhiều năm sử dụng trong thực tế.
Bộ sưu tập đã bắt đầu với Token Metadata. Việc di chuyển sẽ phức tạp.
Cần NFT lập trình được. pNFTs yêu cầu Token Metadata.
Xem xét các lựa chọn thay thế khi:
Chi phí thấp hơn quan trọng (Metaplex Core rẻ hơn).
Cấu trúc đơn giản hơn được ưu tiên (Core sử dụng một tài khoản).
Cần quy mô lớn (NFT nén rẻ hơn đáng kể).
Bắt đầu từ đầu (Core là tiêu chuẩn mới hơn, sạch hơn cho các dự án mới).
Token Metadata vẫn là tiêu chuẩn được hỗ trợ rộng rãi nhất. Nếu ưu tiên sự tương thích, hãy sử dụng nó. Nếu tối ưu hóa chi phí và bắt đầu từ đầu, hãy xem xét Core hoặc NFT nén.
Tiếp theo: Metaplex Core và NFT nén—các phương pháp mới hơn, hiệu quả hơn cho NFT trên Solana.