Metaplex Core
Metaplex Core é o padrão moderno de NFT na Solana: cada asset vive em uma única conta Asset com plugins opcionais (royalties, atributos, vinculação a coleção). Menor contagem de contas significa menor rent e modelo mental mais simples que o Token Metadata legado.
Receita
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import { create } from "@metaplex-foundation/mpl-core";
const umi = createUmi("https://api.devnet.solana.com");
// create(umi, { asset, name, uri, ... }).sendAndConfirm(umi)// On-chain: valide o owner do asset Core via layout da conta mpl-core em programas customizados
pub const MPL_CORE: Pubkey = anchor_lang::solana_program::pubkey!("CoREENxT6tW1HoK8yfYWXSzaXUcGUimvH2vQJ55jEo");Quando usar:
- Novas coleções NFT em 2026
- Arte 1/1 e coleções generativas sem compressão em massa
- Plugins para royalties, atributos e regras permanentes de transferência
- Integrações com marketplaces que suportam Core
Exemplo prático
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import { mplCore } from "@metaplex-foundation/mpl-core";
import { generateSigner, keypairIdentity } from "@metaplex-foundation/umi";
import { create, fetchAsset } from "@metaplex-foundation/mpl-core";
const umi = createUmi("https://api.devnet.solana.com").use(mplCore());
const payer = generateSigner(umi);
umi.use(keypairIdentity(payer));
const asset = generateSigner(umi);
await create(umi, {
asset,
name: "Core Demo",
uri: "https://arweave.net/example-metadata.json",
}).sendAndConfirm(umi);
const fetched = await fetchAsset(umi, asset.publicKey);
console.log(fetched.name, fetched.uri);O que isso demonstra:
- O endereço do keypair do asset é o identificador NFT que os usuários veem
uriaponta para metadados JSON off-chain- O SDK Umi cuida da construção e assinatura de instruções
Mergulho profundo
Como funciona
- Program ID:
CoREENxT6tW1HoK8yfYWXSzaXUcGUimvH2vQJ55jEo - A conta Asset armazena nome, uri, update authority e owner
- Plugins estendem o comportamento:
Royalties,Attributes,PermanentFreeze, etc. - Transferências atualizam o campo
ownerna conta Asset (não conta de token SPL)
Core vs Token Metadata
| Aspecto | Core | Token Metadata |
|---|---|---|
| Contas por NFT | 1 (+ coleção) | 3+ |
| Programa | mpl-core | token-metadata |
| Escala em massa | Moderada | Moderada |
| Suporte legado em mercados | Em crescimento | Extenso |
Notas TypeScript
// Coleção: crie conta Collection, depois minte assets com plugin de coleção
// Sempre fixe metadados no Arweave/IPFS antes de definir uriErros comuns
- Tratar asset Core como mint SPL - caminho de transferência errado. Correção: use instruções de transferência mpl-core.
- URI mutável sem plano - sequestro de metadados se update authority comprometida. Correção: revogue update authority após reveal.
- Plugin de coleção ausente - assets não agrupados na DAS/marketplaces. Correção: anexe coleção verificada no mint.
- Assumir que todos os marketplaces listam Core - verifique os venues alvo antes do lançamento.
- Pular verificação DAS - parsers customizados atrasam o schema Core. Correção: teste
getAssetna DAS do provedor.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| Token Metadata | Requisito legado de marketplace | Stack greenfield pronta para Core |
| cNFT (Bubblegum) | Milhões de itens | Arte 1/1 on-chain completa |
| Mint estilo NFT com Token-2022 | Ferramentas mínimas | Recursos ricos de marketplace NFT |
FAQs
O que é Metaplex Core?
Padrão NFT de conta única com sistema de plugins substituindo Token Metadata legado para novos projetos.
Qual é o program ID?
CoREENxT6tW1HoK8yfYWXSzaXUcGUimvH2vQJ55jEo.
Como os usuários detêm NFTs Core?
O campo owner da conta Asset aponta para a pubkey da carteira - sem conta de token SPL separada.
O que são plugins?
Extensões opcionais no asset: royalties, atributos, freeze, associação a coleção, etc.
Como transferir?
Instrução transfer do mpl-core via Umi ou construção manual de instrução.
A DAS suporta Core?
Sim - getAsset retorna assets Core com campos no estilo interface: MplCoreAsset.
Update authority?
Pode alterar nome/uri enquanto retida - revogue para imutabilidade após reveal.
Royalties no Core?
Plugin Royalties define basis points; marketplaces aplicam conforme suas regras.
Teste na devnet?
Mesmo programa na devnet; financie o payer com SOL devnet antes de create.
Integração Anchor?
Programas customizados leem dados da conta Asset ou fazem CPI mpl-core para fluxos compostos.
Conta de coleção?
Conta Collection separada agrupa assets via plugin de coleção.
Migração do Token Metadata?
Novo mint no Core - sem upgrade automático; faça snapshot de holders e reemita se necessário.
Relacionados
- Noções básicas de NFT na Solana - visão geral dos padrões
- Coleções e verificação - agrupamento
- Lendo NFTs (DAS API) - buscar assets
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.