NUEVO: Helius adquiere Light Protocol
cómo acuñar un NFT de Solana
Blog/Desarrollo

Solana Dev 101 - Cómo acuñar un NFT en Solana

Ingeniero de experiencia para desarrolladoresOwen Venter en XOwen Venter en LinkedIn
4 min de lectura

¡GM! En este blog exploraremos el mundo de los tokens no fungibles (NFT) en Solana.

Al terminar esta publicación, comprenderás claramente el proceso y podrás crear tus propios NFT en Solana con JavaScript.

Si tienes alguna pregunta, no dudes en unirte al Discord de Helius o etiquetar a Helius en Twitter para obtener ayuda.

Instala los requisitos previos:

Antes de comenzar, asegúrate de tener Node.js y npm instalados en tu equipo. Puedes descargarlos aquí.

Paso 1: Instala las dependencias

Primero, debemos instalar las dependencias necesarias.

Ejecuta los siguientes comandos en tu terminal para instalar la API de JavaScript de Solana y la biblioteca de JavaScript de Metaplex:

Código
npm install @solana/web3.js @metaplex-foundation/js

Paso 2: Importa las dependencias

A continuación, podemos crear un archivo llamado mintNFTs.js y comenzar importando las dependencias necesarias:

Código
const { Keypair, Connection } = require('@solana/web3.js');
const { Metaplex,keypairIdentity, bundlrStorage,toMetaplexFile } = require('@metaplex-foundation/js');
const {fs} = require('fs');

Paso 3: Crea una billetera, inicializa una conexión y crea una instancia de Metaplex

Debemos crear una billetera de Solana que se usará para acuñar y almacenar el NFT. Para hacerlo, utilizaremos las herramientas CLI de Solana. Puedes ejecutar el siguiente comando en la terminal para obtener una billetera nueva. Esta billetera se guardará como un archivo JSON que contiene la frase semilla.‍

Código
solana-keygen new

‍Puedes importarla en una extensión de billetera para el navegador, como Phantom o Backpack.

Ahora inicializamos una conexión con el clúster de Solana. Usaremos Helius para conectarnos a un clúster de mainnet, ya que será más rápido que el RPC público, que tiene límites de solicitudes muy estrictos y no ofrece funciones de archivo. ( https://api.mainnet-beta.solana.com ). Si también quieres usar un servicio RPC más rápido y avanzado en lugar del RPC estándar, puedes crear una cuenta gratuita de Helius aquí.

Después, crearemos un par de claves para la billetera a partir de la frase semilla de la billetera que acabamos de crear.

Código
async function createMetadata(imageName) {

  // Create an image buffer
  const metadataURI = await metaplex.nfts().uploadMetadata({
    name: "Helius NFT",
    description: "Helius NFT created in the SolanaDev 101 course",

    // Image: await uploadIMG(imageName),
    image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),
    attributes: [
      { trait_type: "Test", value: "Yes" },
      { trait_type: "Logo", value: "Helius" },
    ],
  });
  return metadataURI;
}

En el código anterior, creamos una instancia del SDK de Metaplex, un conjunto de herramientas para interactuar con el protocolo Metaplex. Luego configuramos la instancia con una conexión a un clúster de Solana, la billetera del usuario y un proveedor de almacenamiento. .use(bundlrStorage()) configura la instancia para usar Bundlr como proveedor de almacenamiento, donde se almacenarán los metadatos y activos de los NFT.

Paso 4: Crea y carga los metadatos del NFT

En este paso, veremos cómo crear y cargar los metadatos y la imagen del NFT mediante la función createMetadata().

Una de las partes principales de un NFT es la imagen. En este ejemplo, usaremos esta imagen del logotipo de Helius. Asegúrate de agregar la imagen que quieras usar al directorio donde creaste el archivo mintNFT.js.

Esta función comienza leyendo el archivo de imagen especificado por imageName mediante fs y luego lo convierte a un formato compatible con Metaplex mediante toMetaplexFile().  Después, cargamos los metadatos con la función metaplex.nfts().uploadMetadata().

Los metadatos contienen información importante sobre nuestro NFT, como su nombre, una descripción, la imagen que preparamos y un conjunto de atributos que proporcionan detalles adicionales sobre el NFT. Puedes incluir muchos más datos en tu NFT. Consulta más información sobre el estándar de NFT de Metaplex aquí.

Cuando los metadatos se hayan cargado correctamente, la función devolverá su URI, que apunta a la ubicación en línea de los datos.

Código
async function createMetadata(imageName) {

  // Create an image buffer
  const metadataURI = await metaplex.nfts().uploadMetadata({
    name: "Helius NFT",
    description: "Helius NFT created in the SolanaDev 101 course",

    // Image: await uploadIMG(imageName),
    image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),
    attributes: [
      { trait_type: "Test", value: "Yes" },
      { trait_type: "Logo", value: "Helius" },
    ],
  });
  return metadataURI;
}

Paso 5: Acuña el NFT

Ahora acuñaremos el NFT mediante una función llamada createNFT(). Primero, invocamos la función createMetadata() con "./heliusLogo.png" como argumento (la ruta al archivo de imagen).

A continuación, acuñamos el NFT llamando a metaplex.nfts().create(). Esta función recibe un objeto con varias propiedades, como el URI de los metadatos, el nombre del NFT, una comisión para el vendedor (establecida aquí en un 5 %) y un arreglo de creadores. Cada objeto de creador incluye la dirección y el porcentaje de regalías que debe recibir esa billetera.

Después de crear correctamente el NFT, la función registrará la dirección de acuñación del NFT. Esta dirección es un identificador único del NFT en la blockchain. Puedes copiarla y buscar el NFT en un explorador de bloques como Orb.

Código
async function createNFT() {
  // Create and upload the metadata
  const metadata = await createMetadata("./heliusLogo.png");
  // Create the NFT
  const nft = await metaplex.nfts().create({
    uri: metadata.uri,
    name: "Helius NFT",
    seller_fee_basis_points: 500, // 5%
    creators: [{ address: wallet.publicKey, verified: true, share: 100 }],
  });

  // Log the NFT mint address
  console.log("NFT:", nft.mintAddress.toBase58());
}
createNFT();

Al ejecutar este código con node mintNFT.js, se creó el NFT que puedes ver aquí.

Conclusión

¡Felicidades! Acabas de crear un NFT. Espero que este tutorial te haya ayudado a comenzar a trabajar con NFT en Solana. Los NFT son un aspecto fundamental del ecosistema de Solana, así que comprender su estructura y cómo crearlos es una habilidad muy valiosa.

Puedes encontrar el código completo aquí. ¡Feliz programación!

Referencias:

‍

Suscríbete a Helius

Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos

Imagen ampliada