in-solana by Supanode

Metaplex Token Metadata — Program ID & Overview

metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s

The Metaplex Token Metadata program attaches metadata (name, symbol, URI, creators, royalties) to SPL tokens and NFTs on Solana. It is the standard for NFT metadata and is also used by fungible tokens to provide on-chain name and symbol information.

Program ID

metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s

Account structure

Each token can have the following metadata accounts:

AccountPDA seedsDescription
Metadata["metadata", program_id, mint]Name, symbol, URI, creators, royalties
Master Edition["metadata", program_id, mint, "edition"]Marks a mint as an NFT or Master Edition
Edition["metadata", program_id, mint, "edition"]Print (copy) of a Master Edition
Token Record["metadata", program_id, mint, "token_record", token]Per-token state for programmable NFTs

Metadata fields

FieldDescription
nameToken name (max 32 chars)
symbolToken symbol (max 10 chars)
uriURL to off-chain JSON metadata
sellerFeeBasisPointsRoyalty percentage in bps (500 = 5%)
creatorsArray of creator addresses with share percentages
collectionOptional collection NFT this token belongs to
usesOptional use/burn tracking
tokenStandardNonFungible, FungibleAsset, Fungible, ProgrammableNonFungible

Token standards

StandardDescription
NonFungibleStandard NFT (supply of 1, 0 decimals)
FungibleAssetSemi-fungible token with metadata
FungibleStandard fungible token with metadata
ProgrammableNonFungibleNFT with enforced royalties and transfer rules
NonFungibleEditionPrint of a Master Edition

Deriving the metadata PDA

import { PublicKey } from "@solana/web3.js";

const TOKEN_METADATA_PROGRAM = new PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");

const [metadataPDA] = PublicKey.findProgramAddressSync(
  [
    Buffer.from("metadata"),
    TOKEN_METADATA_PROGRAM.toBytes(),
    mintPublicKey.toBytes(),
  ],
  TOKEN_METADATA_PROGRAM,
);

Key instructions

InstructionDescription
CreateMetadataAccountV3Creates metadata for a mint
UpdateMetadataAccountV2Updates metadata fields
CreateMasterEditionV3Creates a Master Edition account
SetAndVerifyCollectionAssigns and verifies collection membership
VerifyCreatorVerifies a creator signed the metadata

FAQ

Do fungible tokens use Metaplex metadata? Yes. Most fungible tokens on Solana (including memecoins) use Metaplex metadata to store their name, symbol, and logo URI. Wallets and explorers read this metadata to display token information.

What is a Programmable NFT (pNFT)? Programmable NFTs enforce royalties at the protocol level. Transfers must go through the Token Metadata program, which checks and enforces creator-defined rules (royalty payments, transfer restrictions).

Where is the actual image/media stored? The uri field points to a JSON file (usually on Arweave, IPFS, or a CDN) that contains the image URL, attributes, and other off-chain metadata following the Metaplex JSON standard.

Updated: