Saltar al contenido principal

Desplegar una Colección de NFT ERC-721 en Avalanche

Este tutorial te guiará en el despliegue de un contrato inteligente ERC-721 (NFT) básico en la Red Avalanche, sin importar tu experiencia previa en desarrollo. Desplegaremos nuestro NFT en la Testnet Fuji de Avalanche y lo veremos en el explorador Snowtrace de la Testnet. Ten en cuenta que estos no son transferibles a la Mainnet. Sin embargo, una vez que te sientas cómodo lanzando tu proyecto, puedes hacerlo en la Mainnet de Avalanche y listarlos en un mercado de NFT.

Se utilizarán las siguientes herramientas durante este tutorial:

caution

DESCARGO DE RESPONSABILIDAD: Este tutorial de contrato inteligente en Solidity es solo con fines de demostración. Los usuarios deben tomar precauciones adecuadas, manejo de errores y salvaguardias para su uso en producción. Nadie en Ava Labs es responsable de tu desarrollo y debes asumir la responsabilidad total de asegurar que tu código sea seguro.

Preparando tus Archivos de NFT

El primer paso para configurar un contrato inteligente de NFT es tener tus archivos de NFT listos para usar. En este ejemplo, los archivos se cargarán en Pinata, un servicio de pinning que evita que los archivos sean recolectados por garbage collection en IPFS.

Si no estás familiarizado con el proceso de cargar archivos de imagen y metadatos en un proveedor de IPFS para uso en colecciones de NFT, por favor revisa este artículo sobre la preparación de archivos de NFT. Asegúrate de que tus archivos estén cargados y que tu URI base esté lista para enchufarla en tu contrato inteligente.

Una vez que los archivos de imagen y metadatos estén listos, podemos prepararnos para desplegar un contrato inteligente.

Preparando tu Entorno

Extensión de Core

Necesitarás tener instalada la Extensión de Core en el navegador que estés usando para poder financiar el despliegue del contrato inteligente. Si aún no lo has hecho, descarga Core y habilita el Modo Testnet. Para hacer eso, ve a Configuración y haz clic en Avanzado.

Imagen de Configuración 1

Aquí, activa la función de Modo Testnet. Esto hará que Core cambie automáticamente a la Testnet Fuji.

Imagen de Configuración 2

info

Si estás usando otras billeteras, como Core o MetaMask, puedes agregar la Testnet Fuji utilizando las siguientes especificaciones:

Obteniendo Fondos de Testnet

Debido a que estamos desplegando en la Red Fuji, necesitarás obtener AVAX en la red Fuji. Avalanche tiene un Faucet que gotea tokens de prueba a la dirección de tu elección. Si ya tienes un saldo de AVAX mayor que cero en Mainnet, pega tu dirección de C-Chain allí y solicita tokens de prueba. De lo contrario, por favor solicita un cupón de faucet en Guild. Los administradores y moderadores en el Discord oficial pueden proporcionar AVAX de testnet si los desarrolladores no pueden obtenerlo de las otras dos opciones.

Avalanche Faucet

Creando el Contrato Inteligente

Para crear el contrato inteligente, vamos a usar Open Zeppelin. Open Zeppelin es una herramienta clave para construir contratos inteligentes de forma rápida y sencilla. Aunque solo estamos rascando la superficie en este tutorial, hay amplia documentación disponible en su sitio web para que la leas cuando quieras construir contratos más complejos.

Open Zeppelin proporciona un Contrato Wizard que construirá contratos ERC. Para evitar cualquier entorno de codificación complejo, usaremos esto para crear nuestro contrato ERC-721.

Contrato Wizard

Selecciona ERC-721 en el Contrato Wizard para empezar. Esto creará el contrato en el lenguaje de programación Solidity.

Como puedes ver, el contrato de plantilla está básico. Rellenaremos la información en el panel izquierdo para auto-popularlo en nuestro contrato. Asegúrate de cambiar a la pestaña ERC-721 mientras comienzas para hacer el contrato adecuado.

El Wizard rellena automáticamente un nombre y un símbolo para tu colección de NFT, que modificaremos aquí. Lo estoy llamando Fotografía y dándole el símbolo FOTO. Si elegiste tus propios archivos para usar durante este tutorial, puedes elegir un nombre y un símbolo relevantes para tu colección.

El campo Base URI que se muestra aquí es la URL de la carpeta de metadatos cargada en Pinata(por ejemplo, la nuestra es https://gateway.pinata.cloud/ipfs/QmYdWxbiwsfsYcW1CYQPgYujAc9FMLPG3fgFcxFskbSsFa). Pega eso en el campo Base URI. Después de que el Wizard agregue nuestras variables a la plantilla, nuestro contrato debería verse así:

Contrato Wizard Poblado

A continuación, querremos marcar las casillas de Mintable e Ids de Incremento Automático. Esto poblará una función de mint en nuestra plantilla que manejaría el incremento de los Ids de token al hacer mint si tuviéramos más de un NFT en nuestra colección. Aún queremos que asigne automáticamente nuestro 1 NFT, así que lo marcamos.

Esto marca automáticamente el botón de Ownable, que le da a la función safeMint el modificador onlyOwner. Este modificador indica que solo el propietario del contrato inteligente podrá llamar exitosamente a la función.

note

Este modificador debería ser eliminado al crear un contrato inteligente para un mint público. De lo contrario, los usuarios no podrían hacer mint exitosamente los NFT cuando llamen a la función safeMint. Este tutorial solo maneja la dirección de la billetera del propietario, por lo que se deja allí.

Ahora, nuestro contrato está un poco más poblado:

Contrato Wizard SafeMint

Para este ejemplo simple, no agregaremos ninguna funcionalidad adicional a la función safeMint. Actualmente, hace mint de un NFT a la dirección especificada en la llamada de la función. No hay costo para hacer mint del NFT aparte de la tarifa de gas por la transacción en sí.

Esta función safeMint actualmente también funciona como una función de airdrop porque la dirección a la que se acuña el NFT no necesita ser la del propietario de la función. Esta funcionalidad se vuelve muy útil cuando los propietarios de colecciones de NFT quieren regalar NFTs de forma gratuita fuera de la ventana de acuñación normal.

En este punto, nuestro contrato inteligente está listo. En la parte superior, puedes hacer clic en "Abrir en Remix" para prepararte para implementar tu contrato inteligente.

Contract Wizard Open Remix

Implementando el Contrato Inteligente con Remix

Remix IDE es un compilador de solidity que te permite editar, compilar e implementar tu contrato inteligente. Esto evitará que necesites descargar otros entornos de programación en esta etapa.

Una vez que hayas importado tu contrato, lo primero que debes hacer es compilarlo. Haz clic en el botón "Compile" en el lado izquierdo. También puedes usar el atajo de teclado Ctrl / Command + S.

Remix Compile

Una vez completado, obtendrás una marca de verificación verde en la pestaña de la izquierda y verás opciones para Publicar en IPFS o Swarm. Esas no son importantes para nuestro tutorial. A continuación, haz clic en la pestaña inferior del lado izquierdo para pasar a la página de implementación.

Remix Deploy Page

Ahora, necesitamos cambiar el entorno que Remix intentará usar para implementar el contrato inteligente. Haz clic en el menú desplegable "Environment" y selecciona "Injected web3".

Remix Web3

Esto debería pedirte que te conectes con tu cuenta de Core. Una vez conectado, puedes verificar la conexión correcta comprobando que el número de cuenta coincida con tu dirección de Core.

Remix account

Core account

Ahora haz clic en el menú desplegable "Contract" y selecciona el contrato que creaste y compilaste. Debería aparecer con el nombre que le diste en el Asistente de Open Zeppelin.

Remix Contract

Ahora, haz clic en "Deploy". Esto abrirá Core y te pedirá que confirmes la transacción. Haz clic en "Confirm".

Core Accept

Puede tomar un segundo, pero una vez completado, tu contrato recién implementado aparecerá debajo del campo "Transactions Recorded".

Remix Record

Copia la dirección de tu contrato y abre el Snowtrace Testnet Explorer. Pega la dirección de tu contrato en la barra de búsqueda y haz clic en "Search".

Ahora verás la información de tu contrato en Snowtrace. La primera transacción que ves debería ser la implementación del contrato que acabas de hacer en Remix IDE.

Snowtrace

Acuñando un NFT

Ahora que has implementado el contrato, puedes acuñar el NFT. Vuelve a la pestaña de Remix IDE y haz clic en tu contrato para expandir su información. Aparecerá una lista de funciones con las que puedes interactuar.

Remix Functions

La única función que te interesa es la función safeMint. Haz clic en la flecha desplegable de la función para expandir el campo de dirección.

Remix safe mint

Ahora, copia tu dirección de Core y pégala en este campo de dirección. Esto enviará el NFT a tu dirección cuando se llame a la función de acuñación. Luego, haz clic en "transact".

Esto abrirá Core y te pedirá que verifiques la transacción. Haz clic en "Confirm" para acuñar tu NFT.

Una vez que la transacción se haya confirmado, verás una marca de verificación verde en la terminal en la parte inferior de Remix IDE.

Remix Confirm Mint

Vuelve a la página del explorador Snowtrace Testnet para tu contrato y actualízala. Ahora deberías ver una segunda transacción, tu llamada a safeMint.

Snowtrace Mint

Al hacer clic en el TX Hash, ¡verás que tu NFT fue creado!

Snowtrace Transaction

Mainnet

Todos los pasos anteriores se pueden utilizar en Mainnet, excepto los siguientes cambios:

  • Asegúrate de cambiar a Avalanche C-Chain en Core.
  • Asegúrate de tener tokens AVAX en tu cuenta para cubrir los costos de transacción.
  • Debes usar la versión Mainnet de Snowtrace Explorer para ver las transacciones.

Was this page helpful?