Token Metadata
Metaplex Token Metadata is the legacy NFT standard: a mint account plus metadata PDA, master edition, and optional token record accounts. It still powers a large share of secondary market liquidity and older collections.
Search across all documentation pages
Metaplex Token Metadata is the legacy NFT standard: a mint account plus metadata PDA, master edition, and optional token record accounts. It still powers a large share of secondary market liquidity and older collections.
const TOKEN_METADATA_PROGRAM = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s";
// Metadata PDA: ["metadata", program_id, mint_id]# Prefer Metaplex Umi / Sugar tooling over manual CLI for new legacy-compatible mintsWhen to reach for this:
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import { mplTokenMetadata } from "@metaplex-foundation/mpl-token-metadata";
import { fetchMetadataFromSeeds } from "@metaplex-foundation/mpl-token-metadata";
import { publicKey } from "@metaplex-foundation/umi";
const umi = createUmi("https://api.mainnet-beta.solana.com").use(mplTokenMetadata());
const mint = publicKey("MINT_PUBKEY");
const metadata = await fetchMetadataFromSeeds(umi, { mint });
console.log(metadata.name, metadata.uri);
console.log("seller fee bps:", metadata.sellerFeeBasisPoints);// DAS read (preferred for wallets)
const asset = await dasRpc("getAsset", { id: mint.toString() });What this demonstrates:
sellerFeeBasisPoints stores royalty percentage (500 = 5%)metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1smax_supply for limited prints| Account | Purpose |
|---|---|
| Mint | SPL ownership token |
| Metadata PDA | JSON uri, creators, royalty bps |
| Master edition | Edition/scarcity rules |
| Token record | pNFT authorization state |
// Verify collection: setCollectionV1 + verifyCollectionV1 instructions
// Use @metaplex-foundation/mpl-token-metadata for all instruction builders| Alternative | Use When | Don't Use When |
|---|---|---|
| Metaplex Core | New collections | Must stay on Token Metadata |
| cNFT | Mass drops | Need full on-chain mint per item |
| DAS-only reads | Wallet display | Building mint instructions |
Not removed - but Metaplex recommends Core for new NFTs while Token Metadata remains supported.
Program-derived account storing NFT name, uri, creators, and collection fields.
Programmable NFTs with token record accounts gating transfers via rulesets.
sellerFeeBasisPoints on metadata - enforced by cooperating marketplaces.
Yes if update authority retained and not immutable.
Collection authority signs verify_collection instruction linking metadata to collection mint.
DAS preferred for wallets; GPA still used by indexers ingesting raw updates.
Master edition + print mint instructions for numbered prints.
Metaplex Sugar targets Token Metadata collection launches - check docs for Core alternatives.
Deserialize metadata account via mpl-token-metadata crate in Rust programs.
metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s.
Marketplace/listing requirements explicitly demanding Token Metadata layout.
Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, and LiteSVM 0.6.x.
Reviewed by Chris St. John·Last updated Jul 16, 2026