Metadata e Metadata Pointer
Extensões metadata e metadata pointer do Token-2022 armazenam name, symbol e URI no próprio mint, ou apontam para uma conta de metadata externa. Reduzem dependência de Metaplex Token Metadata para branding fungível simples.
Receita
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();Quando usar isso:
- Tokens fungíveis com marca sem PDA de metadata separada
- Carteiras exibindo name/symbol diretamente da conta mint
- Apontar para JSON off-chain para ícone e descrição
- Lançamentos de token mais simples que pipeline Metaplex completo
Exemplo de Trabalho
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);O que isso demonstra:
- Metadata vive em dados TLV de extensão do mint
- URI tipicamente aponta para JSON off-chain (imagem, descrição)
- Extensão metadata pointer pode referenciar conta de metadata separada
Mergulho Profundo
Como Funciona
- Extensão token metadata embute name, symbol, uri na conta mint
- Extensão metadata pointer armazena pubkey do holder de metadata externo
- Update authority (se definida) pode mudar URI/name conforme regras da extensão
- DAS e explorers indexam cada vez mais extensões metadata Token-2022
Metadata vs Metaplex
| Abordagem | Modelo de conta | Melhor para |
|---|---|---|
| Metadata Token-2022 | No mint | Branding fungível |
| Metaplex Token Metadata | PDA metadata separada | NFTs, royalties, coleções |
| Metaplex Core | Conta Core asset única | NFTs modernos |
Notas de TypeScript
// Pair on-chain name/symbol with DAS getAsset for unified portfolio UI
// Cache URIs; validate HTTPS and content hash for securityArmadilhas
- Name/symbol imutáveis - alguns campos fixos no init. Correção: verifique flags de imutabilidade antes do lançamento.
- URIs HTTP de metadata - alteráveis off-chain. Correção: prefira Arweave/IPFS; fixe conteúdo.
- Carteira lê somente Metaplex - pode ignorar metadata Token-2022. Correção: teste carteiras alvo ou submeta token list.
- Expectativas NFT - extensão metadata sozinha não faz NFT. Correção: supply=1 + decimals=0 + padrão NFT se necessário.
- Strings URI oversized - aumenta rent da conta mint. Correção: URLs gateway curtas para armazenamento imutável.
Alternativas
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Metaplex Token Metadata | NFTs com royalties/coleções | Somente fungível simples |
| Metaplex Core | Projetos NFT novos | Token fungível |
| Registro somente off-chain | MVP rápido | Descoberta on-chain necessária |
FAQs
O que é metadata Token-2022?
Extensão on-mint armazenando name, symbol e URI para exibição em carteira.
O que é metadata pointer?
Extensão armazenando pubkey de outra conta com bytes de metadata.
Posso atualizar URI após lançamento?
Depende de update authority na extensão - verifique imutabilidade no init.
NFTs usam isso?
Possível mas Metaplex Core/Token Metadata permanecem dominantes para features NFT.
DAS indexa metadata Token-2022?
Provedores DAS principais incluem cada vez mais metadata de extensão em getAsset.
Schema JSON para URI?
Similar ao JSON off-chain Metaplex - campos name, symbol, image comuns.
Quem pode inicializar metadata?
Mint authority ou metadata authority dedicada conforme config da extensão.
Impacto no rent?
Strings name/symbol/uri mais longas aumentam tamanho da conta mint e rent.
Compatível com transfer fees?
Sim - extensões se compõem no mesmo mint com planejamento de tamanho/CU.
Ainda devo usar Metaplex para fungível?
Metadata Token-2022 é mais simples quando não precisa de features de coleção NFT.
Como explorers mostram ícone?
Busque JSON URI off-chain; cache e valide conteúdo.
ID de programa mainnet?
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb para todas as instruções Token-2022.
Relacionados
- Noções Básicas de Token-2022 - intro extensões
- Metadata e Armazenamento - JSON off-chain
- Token Metadata - metadata NFT legado
Versões da stack: Esta página foi escrita para 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 e LiteSVM 0.6.x.