Conceptos básicos de NFT en Solana
9 ejemplos para empezar con NFT en Solana - 7 básicos y 2 intermedios.
Prerrequisitos
npm install @solana/kit@7.0.0 @metaplex-foundation/mpl-core @metaplex-foundation/umicargo add anchor-lang@0.32.1Programa Metaplex Core: CoREENxT6tW1HoK8yfYWXSzaXUcGUimvH2vQJ55jEo.
Ejemplos básicos
1. NFT en la capa de token
Los NFT clásicos son mints SPL con supply=1, decimals=0.
spl-token create-token --decimals 0
spl-token mint <MINT> 1
spl-token supply <MINT>- Una unidad cruda en una cuenta de token representa la propiedad
- La capa de metadatos (Metaplex) añade nombre, imagen, colección
- La quema/cierre de cuentas sigue las reglas SPL
Relacionado: Conceptos básicos de token SPL
2. Leer NFT a través de la API DAS
Las carteras obtienen metadatos enriquecidos a través de DAS, no solo GPA crudo.
const res = await fetch(DAS_RPC, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "getAsset",
params: { id: "ASSET_ID" },
}),
});
const { result } = await res.json();
console.log(result?.content?.metadata?.name);- DAS unifica Metaplex Core, Token Metadata y NFT comprimidos
- Requiere un proveedor RPC habilitado para DAS
- El formato
iddel activo varía según el estándar; usa el id de la consulta anterior
Relacionado: Lectura de NFTs (API DAS)
3. Modelo de cuenta única de Metaplex Core
Core almacena los datos del activo en una única cuenta de Activo.
import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
import { publicKey } from "@metaplex-foundation/umi";
import { fetchAsset } from "@metaplex-foundation/mpl-core";
const umi = createUmi("https://api.devnet.solana.com");
const asset = await fetchAsset(umi, publicKey("ASSET_PUBKEY"));
console.log(asset.name, asset.uri);- Menor número de cuentas en comparación con el metadato de token heredado
- Estándar preferido para nuevos proyectos de NFT en 2026
- ID del programa:
CoREENxT6tW1HoK8yfYWXSzaXUcGUimvH2vQJ55jEo
Relacionado: Metaplex Core
4. Diseño del metadato de token heredado
Los NFT más antiguos usan mint + metadatos PDA + master edition.
// Semillas del PDA de metadatos: ["metadata", token_metadata_program, mint]
const TOKEN_METADATA_PROGRAM = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s";- Todavía común en mercados secundarios y colecciones antiguas
- Más cuentas = mayor coste de alquiler (rent)
- Muchas herramientas leen a través de DAS sin cálculos manuales de PDA
Relacionado: Metadatos de token
5. Metadatos JSON fuera de la cadena
La URI en la cadena apunta a un JSON con la imagen y los atributos.
{
"name": "Ejemplo NFT",
"symbol": "EX",
"description": "Activo de demostración",
"image": "https://arweave.net/...",
"attributes": [{ "trait_type": "Color", "value": "Azul" }]
}- La imagen suele estar en Arweave o IPFS
- El hash del JSON debe coincidir con las expectativas de integridad en la cadena
- La URI mutable permite actualizar los metadatos si se conserva la autoridad
Relacionado: Metadatos y almacenamiento
6. Agrupación de colecciones
Las colecciones vinculan muchos activos bajo una única identidad de colección.
// Core: plugin de colección en el activo + cuenta de colección
// Token Metadata: campo de colección verificado en la cuenta de metadatos- Las colecciones verificadas muestran una marca de verificación en los mercados
- El campo de colección no verificado se puede falsificar; la verificación es importante
- Los campos
groupingde DAS exponen la membresía de la colección
Relacionado: Colecciones y verificación
7. Visión general de NFT comprimidos (cNFT)
Los cNFT almacenan los datos del activo en un árbol de Merkle; el coste en la cadena por mint es mínimo.
// Mint a través del programa Bubblegum en un árbol de Merkle concurrente
// Leer a través de DAS getAsset con campos de prueba de compresión- Escala a millones de mints (ítems de juego, POAP)
- Las transferencias requieren pruebas de Merkle
- Programa Bubblegum:
BGUMAp9Gq7iN3nEkgqX1FbwwdBonfLCEEgxoj36SYPk
Relacionado: NFT comprimidos (Bubblegum)
Ejemplos intermedios
8. Elegir el estándar para un nuevo proyecto
| Estándar | Cuentas | Ideal para |
|---|---|---|
| Metaplex Core | 1 activo | Nuevos 1/1 y colecciones |
| Metadatos de token | 3+ | Compatibilidad heredada |
| cNFT | Hoja de árbol | Mints masivos |
- Por defecto, usa Core para nuevos NFT en la cadena, a menos que se requiera la escala de cNFT
- Token Metadata solo al integrarse con requisitos de mercados heredados
Relacionado: Mejores prácticas de NFT
9. Regalías a alto nivel
Los creadores establecen los puntos base de las regalías en los metadatos o en los plugins de Core.
// Las regalías son aplicadas por los mercados + programas opcionales de aplicación en la cadena
// No es automático en transferencias SPL simples- La observancia de las ventas secundarias depende de la aplicación del mercado
- Los hooks de transferencia de Token-2022 y los plugins de Core añaden opciones de aplicación más sólidas
- Documenta la política de regalías en los metadatos de la colección
Relacionado: Regalías y aplicación
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.