Coleções e verificação
Coleções agrupam NFTs sob uma identidade compartilhada. Verificação prova que um asset realmente pertence àquela coleção - crítico porque campos de coleção não verificados podem ser falsificados por qualquer pessoa.
Receita
// Core: criar Collection, mintar Asset com plugin de coleção, verificar
import { createCollection, create, addPlugin } from "@metaplex-foundation/mpl-core";
// Token Metadata: definir coleção nos metadados + verifyCollectionV1Quando usar:
- Lançar coleções generativas ou de foto de perfil com vários itens
- Mostrar selo verificado em UIs de carteira e marketplace
- Token-gate por associação à coleção via DAS
getAssetsByGroup - Impedir rótulos falsos de coleção em mints não relacionados
Exemplo prático
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import { mplCore } from "@metaplex-foundation/mpl-core";
import {
createCollection,
create,
fetchCollection,
ruleSetNone,
} from "@metaplex-foundation/mpl-core";
import { generateSigner } from "@metaplex-foundation/umi";
const umi = createUmi("https://api.devnet.solana.com").use(mplCore());
const collection = generateSigner(umi);
await createCollection(umi, {
collection,
name: "Demo Collection",
uri: "https://arweave.net/collection.json",
}).sendAndConfirm(umi);
const asset = generateSigner(umi);
await create(umi, {
asset,
name: "Item #1",
uri: "https://arweave.net/1.json",
collection: collection.publicKey,
}).sendAndConfirm(umi);
const col = await fetchCollection(umi, collection.publicKey);
console.log(col.name, col.numMinted);// DAS: consulta por coleção
await dasRpc("getAssetsByGroup", {
groupKey: "collection",
groupValue: collection.publicKey.toString(),
page: 1,
limit: 100,
});O que isso demonstra:
- A conta de coleção é o identificador canônico do grupo para Core
- Assets referenciam a coleção no momento do mint
- DAS agrupa assets para consultas de galeria e gating
Mergulho profundo
Como funciona
- Core: conta Collection + plugin vinculando cada Asset
- Token Metadata: campo
collectionnos metadados +verified: boolapós autoridade assinar verify - Metadados de coleção não verificados são apenas cosméticos - marketplaces ignoram
- Indexadores e DAS expõem
grouping/collectionpara conjuntos verificados
Estados de verificação
| Estado | Confiança do marketplace |
|---|---|
| Não verificado | Baixa - qualquer um pode definir o campo |
| Verificado | Alta - collection authority assinou |
| Sem coleção | 1/1 independente |
Notas TypeScript
// Após mint, execute instrução verify se não for auto-verificado no fluxo do SDK
// Token-gate: getAssetsByOwner + filtrar grouping.key === "collection"Erros comuns
- Pular etapa de verify - nome da coleção aparece mas não é confiável. Correção: collection authority assina instrução verify.
- Pubkey de coleção errada na UI - bypass de gating. Correção: compare com endereço oficial da coleção na documentação do projeto.
- Misturar modelos de coleção Core e Token Metadata - layouts de conta incompatíveis. Correção: um padrão por coleção.
- Lacunas de paginação DAS durante mint - galeria incompleta. Correção: paginação por cursor + retry após fim do mint.
- Collection authority revogada - não é possível verificar itens futuros. Correção: proteja authority em multisig antes do lançamento.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| ID de coleção off-chain | Apenas MVP | Verificação on-chain exigida |
| Allowlist merkle | Apenas gate de mint | Exibição de proveniência pós-mint |
| Trait compartilhado único no JSON | Hack de analytics | Gating crítico de segurança |
FAQs
Por que verificar coleções?
Sem verificação, atacantes definem o campo de coleção com nomes de coleções famosas em NFTs não relacionados.
Coleções Core vs Token Metadata?
Tipos de conta diferentes - escolha um padrão por projeto.
Quem pode verificar?
Update authority da coleção / collection authority conforme regras do programa.
A DAS mostra verificação?
Sim - metadados de grouping incluem flag verified quando aplicável.
Asset pode mudar de coleção?
Geralmente exige operações de autoridade - não é edição casual de metadados.
Token-gate por coleção?
getAssetsByGroup ou filtrar assets do owner por grouping de coleção.
Limites de tamanho de coleção?
Sem limite rígido on-chain - limites operacionais de rent e desempenho do indexador.
Sub-coleções?
Padrão de produto - frequentemente contas de coleção separadas ou convenções de traits.
Verificar após mint?
Sim - instruções de verify em lote são comuns em fluxos de reveal.
APIs de marketplace?
Muitas leem DAS - garanta que sua coleção verifique on-chain para exibir selo.
Verificação quebrada?
Reexecute verify com autoridade correta se mint teve sucesso mas tx de verify falhou.
Coleções cNFT?
Bubblegum suporta metadados de coleção em mint comprimido - veja seção cNFT.
Relacionados
- Metaplex Core - contas de coleção
- Token Metadata - fluxo verify legado
- Lendo NFTs (DAS API) - consultas por grupo
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.