Metadata & Metadata Pointer
Token-2022 metadata and metadata pointer extensions store name, symbol, and URI on the mint itself, or point to an external metadata account. They reduce dependence on Metaplex Token Metadata for simple fungible branding.
Search across all documentation pages
Token-2022 metadata and metadata pointer extensions store name, symbol, and URI on the mint itself, or point to an external metadata account. They reduce dependence on Metaplex Token Metadata for simple fungible branding.
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--decimals 6 \
--enable-metadata// Read parsed mint extensions from RPC jsonParsed where supported
const info = await rpc.getAccountInfo(mint, { encoding: "jsonParsed" }).send();When to reach for this:
MINT=$(spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--decimals 6 \
--enable-metadata | awk '/Creating token/{print $3}')
spl-token initialize-metadata "$MINT" "My Token" "MTK" "https://example.com/meta.json" \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
spl-token display "$MINT" --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEbimport { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const mint = address("MINT_PUBKEY");
const { value } = await rpc.getAccountInfo(mint, { encoding: "jsonParsed" }).send();
// Extension fields vary by RPC parser version - fall back to manual decode
console.log(value?.data);What this demonstrates:
| Approach | Account model | Best for |
|---|---|---|
| Token-2022 metadata | On mint | Fungible branding |
| Metaplex Token Metadata | Separate metadata PDA | NFTs, royalties, collections |
| Metaplex Core | Single Core asset account | Modern NFTs |
// Pair on-chain name/symbol with DAS getAsset for unified portfolio UI
// Cache URIs; validate HTTPS and content hash for security| Alternative | Use When | Don't Use When |
|---|---|---|
| Metaplex Token Metadata | NFTs with royalties/collections | Simple fungible only |
| Metaplex Core | New NFT projects | Fungible token |
| Off-chain registry only | Fast MVP | On-chain discoverability needed |
On-mint extension storing name, symbol, and URI for wallet display.
Extension storing pubkey of another account holding metadata bytes.
Depends on update authority in extension - check immutability at init.
Possible but Metaplex Core/Token Metadata remain dominant for NFT features.
Major DAS providers increasingly include extension metadata in getAsset.
Similar to Metaplex off-chain JSON - name, symbol, image fields common.
Mint authority or dedicated metadata authority per extension config.
Longer name/symbol/uri strings increase mint account size and rent.
Yes - extensions compose on same mint with size/CU planning.
Token-2022 metadata is simpler when you do not need NFT collection features.
Fetch URI JSON off-chain; cache and validate content.
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb for all Token-2022 instructions.
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