Colecciones y Verificación
Las Colecciones agrupan NFTs bajo una identidad compartida. La Verificación demuestra que un activo realmente pertenece a esa colección, lo cual es crítico porque los campos de colección no verificados pueden ser falsificados por cualquiera.
Receta
// Core: crear Colección, mintear Activo con el plugin de colección, verificar
import { createCollection, create, addPlugin } from "@metaplex-foundation/mpl-core";
// Metadatos del Token: establecer la colección en los metadatos + verifyCollectionV1Cuándo usar esto:
- Al lanzar colecciones generativas de múltiples elementos o de imágenes de perfil.
- Para mostrar una insignia de verificado en las interfaces de billetera y mercado.
- Para restringir el acceso por membresía de colección a través de
getAssetsByGroupde DAS. - Para prevenir etiquetas de colección falsas en mints no relacionados.
Ejemplo de Trabajo
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: consultar por colección
await dasRpc("getAssetsByGroup", {
groupKey: "collection",
groupValue: collection.publicKey.toString(),
page: 1,
limit: 100,
});Lo que esto demuestra:
- La cuenta de colección es el identificador canónico de grupo para Core.
- Los activos hacen referencia a la colección en el momento del mint.
- DAS agrupa los activos para consultas de galerías y de acceso.
Análisis Profundo
Cómo Funciona
- Core: Cuenta de Colección + plugin que vincula cada Activo.
- Metadatos del Token: Campo
collectionen los metadatos +verified: booldespués de que la autoridad firma la verificación. - Los metadatos de colección No Verificados son solo cosméticos; los mercados los ignoran.
- Los indexadores y DAS exponen
grouping/collectionpara conjuntos verificados.
Estados de Verificación
| Estado | Confianza del Mercado |
|---|---|
| No Verificado | Baja - cualquiera puede establecer el campo |
| Verificado | Alta - la autoridad de la colección ha firmado |
| Sin colección | Obra única independiente (1/1) |
Notas de TypeScript
// Después del mint, ejecuta la instrucción de verificación si no se verificó automáticamente en tu flujo SDK.
// Token-gate: getAssetsByOwner + filtra grouping.key === "collection"Errores Comunes
- Omitir el paso de verificación: el nombre de la colección se muestra pero no es confiable. Solución: la autoridad de la colección firma la instrucción de verificación.
- Pubkey de colección incorrecta en la UI: omisión del control de acceso. Solución: compara con la dirección oficial de la colección de la documentación del proyecto.
- Mezclar modelos de colección Core y Metadatos del Token: diseños de cuenta incompatibles. Solución: un estándar por colección.
- Saltos de paginación de DAS durante el mint: galería incompleta. Solución: paginación por cursor + reintento después de que finalice el mint.
- Autoridad de colección revocada: no se pueden verificar elementos futuros. Solución: asegurar la autoridad en una multisig antes del lanzamiento.
Alternativas
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| ID de colección fuera de cadena | Solo MVP | Se requiere verificación en cadena |
| Lista de permitidos de Merkle | Solo para el control de acceso al mint | Visualización de procedencia post-mint |
| Rasgo compartido único en JSON | Hack de análisis | Gating crítico para la seguridad |
Preguntas Frecuentes
¿Por qué verificar colecciones?
Sin verificación, los atacantes establecen el campo de colección con nombres de colecciones famosas en NFTs no relacionados.
¿Colecciones Core vs. Metadatos del Token?
Tipos de cuenta diferentes: elige un estándar por proyecto.
¿Quién puede verificar?
Autoridad de actualización de colección / autoridad de colección según las reglas del programa.
¿DAS muestra la verificación?
Sí: los metadatos de agrupación incluyen la bandera de verificado cuando es aplicable.
¿Puede un activo cambiar de colección?
Generalmente requiere operaciones de autoridad, no una edición casual de metadatos.
¿Restringir acceso por colección?
getAssetsByGroup o filtrar activos del propietario por agrupación de colección.
¿Límites de tamaño de colección?
Sin límite máximo fijo en cadena: límites operativos por alquiler y rendimiento del indexador.
¿Sub-colecciones?
Patrón de producto: a menudo cuentas de colección separadas o convenciones de rasgos.
¿Verificar después del mint?
Sí: las instrucciones de verificación por lotes son comunes en los flujos de revelación.
¿APIs de mercados?
Muchos leen DAS: asegúrate de que tu colección se verifique en cadena para mostrar la insignia.
¿Verificación rota?
Vuelve a ejecutar la verificación con la autoridad correcta si el mint tuvo éxito pero la transacción de verificación falló.
¿Colecciones de cNFT?
Bubblegum admite metadatos de colección en mint comprimido: consulta la sección de cNFT.
Relacionado
- Metaplex Core - cuentas de colección
- Token Metadata - flujo de verificación heredado
- Lectura de NFTs (API DAS) - consultas de grupo
Versiones de la Pila: Esta página se escribió 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, y LiteSVM 0.6.x.