DEV Community

Robert
Robert

Posted on

¿Cómo mintear NFTs en Solana?

En el siguiente post explicaré paso a paso a como "mintear" un NFT en Solana.

Para seguir este post no es necesario utilizar el CLI de Metaplex, en caso de contar con una alternativa, te agradeceria mucho que me la comentaras

Prerrequisitos

El equipo de Metaplex ha dejado de actualizar el CLI, pero sigue funcionando y no tendrás ningún problema para seguir este post. Planeo incluir otra opción si puedo encontrarla más adelante

Metaplex CLI

Para instalar Metaplex CLI debemos hacer lo siguiente:

  1. Dirigirnos al siguiente link
  2. Clonar el proyecto con $ git clone https://github.com/metaplex-foundation/deprecated-clis.git
  3. Ubicarnos en la carpeta del proyecto e instalar las dependencias

Tabla de Contenido

  1. Creación de cartera local
  2. Agregar saldo a nuestra cartera
  3. Subir la imagen que usaremos como NFT
  4. Crear y Subir la metadata de nuestro NFT
  5. Mintear el Token
  6. Agregar nuestra cartera local a Phantom
  7. Quemar NFTs en Phantom
  8. Conclusion

1. Creación de cartera local

Asumiendo que ya instalaste Solana CLI, lo primero que debemos hacer es apuntar a la mainnet con el siguiente comando:

$ solana config set --url https://api.mainnet-beta.solana.com

Obtendremos un mensaje similar al siguiente:

Config File: C:\Users\Rob\.config\solana\cli\config.yml
RPC URL: https://api.mainnet-beta.solana.com
WebSocket URL: wss://api.mainnet-beta.solana.com/ (computed)
Enter fullscreen mode Exit fullscreen mode

Una vez hecho esto procederemos a crear la cartera local con el siguiente comando:

$ solana-keygen new --outfile ~/.solana/tu-cartera.json

A continuación nos pedirá que ingresemos una frase de acceso (passphrase) que usaremos para recuperar la cartera.

For added security, enter a BIP39 passphrase

NOTE! This passphrase improves security of the recovery seed phrase NOT the
keypair file itself, which is stored as insecure plain text

BIP39 Passphrase (empty for none):
Enter fullscreen mode Exit fullscreen mode

Una vez ingresada obtendremos el siguiente mensaje:

Wrote new keypair to /Users/Rob/.config/solana/[wallet_name].json ==================================================================== pubkey: [wallet_pub_key] ==================================================================== Save this seed phrase and your BIP39 passphrase to recover your new keypair:
[REDACTED] ====================================================================
Enter fullscreen mode Exit fullscreen mode

La pubkey sera nuestra wallet address

Ahora procederemos a asignarla como nuestra cartera predeterminada con el siguiente comando:

$ solana config set --keypair ~/.solana/tu-cartera.json

2. Agregar saldo a nuestra cartera

Para poder realizar todo el proceso necesitaremos menos de 2 USD en SOL

En caso de tener una cartera con SOL en Phantom podemos simplemente enviar SOL a la nueva cartera.

Caso contrario podemos adquirir SOL usando FTX siguiendo los siguientes pasos:

1. Crear una cuenta

2. Dirigirnos a la página de wallet

3. Depositar USD o EUR

En la página de Wallet nos ubicamos en la moneda (USD o EUR) que deseemos depositar y haremos click en DEPOSIT

Alt text

Seguido de esto Seleccionaremos tarjeta de débito, seguiremos los pasos y confirmaremos el depósito

Alt text

4. Convertir a SOL

Una vez realizado el paso anterior y que ya tengamos disponible el saldo en USD o EUR, podemos convertirlo a SOL haciendo click en CONVERT

Alt text

Seguido de esto seleccionaremos la moneda a la que deseemos convertir, en este caso SOL

Alt text

Alt text

5. Pasaremos la cantidad que convertimos a SOL a nuestra cartera local

Ahora nos ubicamos en el icono de búsqueda y buscaremos SOL, y procederemos a hacer clic en retirar WITHDRAW, colocaremos el monto que deseemos retirar y la pubkey que es nuestra wallet address

Alt text

Alt text


Una vez hayamos pasado fondos a nuestra cartera local podemos chequearlos haciendo uso del siguiente comando:

$ solana balance pubkey

3. Subir la imagen que usaremos como NFT

Para este ejemplo usaremos el Logo de Code&Jobs, siéntete libre de usar o crear la imagen que desees

codenjobs-logo

Subiremos la imagen haciendo uso de arloader CLI, pero en caso de que desees hacerlo manualmente puedes seguir las instrucciones en el siguiente post

Con el siguiente comando especificaremos la ruta de la imagen que vamos a subir, y que realizaremos el pago con nuestra cartera de Solana:

$ arloader upload <logo-de-codenjobs.png> --with-sol --sol-keypair-path ~/.config/solana/tu-cartera.json --ar-default-keypair --no-bundle

Vamos a obtener el siguiente mensaje por consola:

id:             [tx_id]
status:         Submitted
file_path:      [ruta/de/la/imagen.png]
created_at:     2022-08-21 15:43:13
last_modified:  2022-08-21 15:43:13
Uploaded 1 files. Run `arloader update-status  --file-paths ` to confirm transaction(s).
Enter fullscreen mode Exit fullscreen mode

Asegurate de guardar el tx_id

Una vez hecho esto tendremos que esperar un poco para que el archivo esté disponible, podemos revisar el estado con el siguiente comando $ arloader get-status [tx_id] o con la siguiente URL https://arweave.net/tx_id (en caso de estar confirmada podremos obtener la imagen)

Mientras esperamos podemos avanzar con el siguiente paso

4. Crear y Subir la metadata de nuestro NFT

A continuación crearemos la metadata de nuestro NFT utilizando el estándar de METAPLEX. Para esto debemos abrir un editor de código y crear un archivo que llevará por nombre metadata.json, copiaremos lo siguiente dentro de ese archivo.

{
    "name": "NFT MINT TEST",
    "symbol": "ANYSYMBOL",
    "description": "TEST NFT",
    "seller_fee_basis_points": 1000,
    "image": "https://arweave.net/[tx_id]?ext=png",
    "external_url": "https://www.codenjobs.com/user/rtagliavia",
    "attributes":
    [
        {
            "trait_type": "Whatever Trait 1",
            "value": "Fire"
        },
        {
            "trait_type": "Whatever Trait 2",
            "value": "Sunglasses"
        }
    ],
    "properties":
    {
        "files":
        [
            {
                "uri": "https://arweave.net/[tx_id]?ext=png",
                "type": "image/png"
            }
        ],
        "category": "image",
        "creators":
        [
            {
                "address": "[pub_key]",
                "share": 100
            }
        ]
    }
}
Enter fullscreen mode Exit fullscreen mode

En esta línea colocaremos el transaction ID que recibimos en el paso anterior, y la estension puede ser .jpg o .png

"image": "https://arweave.net/[tx_id]?ext=png",
Enter fullscreen mode Exit fullscreen mode

Igualmente en la siguientes

"uri": "https://arweave.net/[arweave_img_tx_id]?ext=png",
"type": "image/png"
Enter fullscreen mode Exit fullscreen mode

En esta línea debemos agregar el pubKey de nuestra cartera local

"address": "[pub_key]",
Enter fullscreen mode Exit fullscreen mode

Una vez que se hayan llenado debidamente los campos y guardado nuestro archivo, procederemos a subirlo de la misma manera que subimos la imagen en el paso anterior.

$ arloader upload [ruta/de/la/metadata.json] --with-sol --sol-keypair-path ~/.config/solana/tu-cartera.json --ar-default-keypair --no-bundle

Obtendremos un mensaje similar a este:

id:             [tx_id]
status:         Submitted
file_path:      [ruta/de/la/metadata.json]
created_at:     2022-08-21 15:48:49
last_modified:  2022-08-21 15:48:49
Uploaded 1 files. Run `arloader update-status  --file-paths ` to confirm transaction(s).
Enter fullscreen mode Exit fullscreen mode

Nuevamente debemos esperar por las confirmaciones, podremos chequear el avance con el siguiente comando $ arloader get-status [tx_id] o con la siguiente URL https://arweave.net/tx_id (si se muestra la metadata quiere decir que ya esta listo)

5. Mintear el Token

Finalmente para mintear nuestro token vamos a usar MetaPlex CLI (como mencione anteriormente esta obsoleto pero funciona perfectamente) una vez instalado nos ubicamos en la carpeta del proyecto

C:\Users\User\deprecated-clis

Una vez en el proyecto debemos ir a la carpeta src y ejecutar los siguiente comandos

$ cd src
$ ts-node cli-nft.ts mint --env mainnet-beta --keypair ~/.config/solana/tu-cartera.json --url https://arweave.net/[tx_id] --max-supply 1
Enter fullscreen mode Exit fullscreen mode

En esta linea debemos agregar el tx-id que obtuvimos al subir la metadata

https://arweave.net/[tx_id]

Obtendremos dos URL una nos mostrará los detalles de la transacción y la otra el Token que acabamos de mintear:

Alt text

6. Agregar nuestra cartera local a Phantom

En caso de que deseemos añadir nuestra cartera local a Phantom, el proceso es muy sencillo, basta con seguir estos sencillos pasos:

  1. Abrir la extensión de Phantom en nuestro navegador
  2. Hacer clic en el botón de la esquina superior izquierda

Alt text

  1. Hacer clic en "Add / Connect Wallet"

Alt text

  1. Ahora haremos clic en import private key

Alt text

  1. Por último abriremos nuestra cartera local dirigiéndonos a la carpeta donde esta ubicada y abriendo el archivo .json con un editor de código, copiaremos todo el contenido y lo pegaremos en el campo private key

Alt text

Con esto podremos visualizar nuestros NFT desde la extensión de wallet, así como poder incluirlos en la sección de crypto de Code&Jobs y escoger uno para mostrarlo en nuestro perfil de usuario.

Te dejo información mas detallada de como realizar esto en la documentacion oficial

7. Quemar NFTs en Phantom

Phantom cuenta con la opción de poder quemar nuestros NFTs, con esto eliminaremos el nft y obtendremos el reembolso del dinero al momento de mintear el Token, para esto debemos seguir los siguientes pasos

  1. Abrir la extensión de Phantom Wallet.
  2. Hacer click en el botón de Your Collectibles en la barra inferior.

Alt text

  1. Seguido de esto seleccionaremos el NFT que queramos quemar.

Alt text

  1. Haremos clic en el botón con los tres puntos ....

Alt text

  1. Ahora clic en burn all tokens tokens.

Alt text

  1. Aparecerá una ventana de confirmación, tendremos que tildar la casilla seguido de hacer clic en Burn.

Alt text

  1. Veremos un mensaje diciendo que el token fue quemado y el importe en SOL que fue depositado en la cartera.

Alt text

8. Conclusión

Aprendimos a mintear un NFT en la red SOLANA manualmente con ayuda de varias herramientas.

Realmente espero que hayas podido llegar hasta aquí sin ningún problema, en caso de que hayas encontrado algún obstáculo por favor házmelo saber con un comentario o sientete libre de contactarme por telegram o agregandome a Discord como Appu#9136

Muchas gracias por tu tiempo

Top comments (0)