Cómo crear un NFT con ethers.js
Autor: Alchemy Team
Este tutorial describe cómo acuñar un NFT en la blockchain de Ethereum usando Ethers mediante la librería ethers.js, y nuestro contrato inteligente de la Parte I: How to Create an NFT. También exploraremos pruebas básicas.
Tiempo estimado para completar esta guía: ~10 minutos
Además, no dejes de revisar el resto de nuestra serie de tutoriales de NFT:
- 🌟 Cómo acuñar un NFT usando Web3.js
- 👛 Cómo ver tu NFT en tu billetera móvil
- 💸 Cómo fijar un precio para un NFT
- 💻 Tutorial de minter de NFT: cómo crear una DApp full stack
En otro tutorial, aprendimos a acuñar un NFT usando Web3 y la librería de contratos de OpenZeppelin. En este ejercicio, te guiaremos a través de una implementación alternativa usando la versión 4 de la librería de OpenZeppelin, así como la librería de Ethereum Ethers.js en lugar de Web3.
También cubriremos los fundamentos de probar tu contrato con Hardhat y Waffle. Para este tutorial estoy usando Yarn, pero puedes usar npm/npx si lo prefieres.
Por último, usaremos TypeScript. Esto está bastante bien documentado, así que no lo cubriremos aquí.
En todos los demás aspectos, este tutorial funciona igual que la versión con Web3, incluyendo herramientas como Pinata e IPFS.
Un recordatorio rápido
Como recordatorio, "acuñar un NFT" es el acto de publicar una instancia única de tu token ERC721 en la blockchain. Este tutorial asume que ya desplegaste con éxito un contrato inteligente en la red Ropsten en la Parte I de la serie de tutoriales de NFT, lo cual incluye instalar Ethers.
Paso 1: crea tu contrato en Solidity
OpenZeppelin es una librería para el desarrollo seguro de contratos inteligentes. Simplemente heredas sus implementaciones de estándares populares como ERC20 o ERC721, y extiendes el comportamiento según tus necesidades. Vamos a colocar este archivo en contracts/MyNFT.sol.
Paso 2: crea tareas de Hardhat para desplegar nuestro contrato y acuñar NFT's
Crea el archivo tasks/nft.ts con lo siguiente:
Paso 3: crea los helpers
Notarás que nuestras tareas importaron algunos helpers. Aquí están.
contract.ts
env.ts
provider.ts
Nota que la función final getProvider() usa la red ropsten. Este argumento es opcional y por defecto usa "homestead" si se omite. Nosotros usamos Alchemy, por supuesto, pero hay varias alternativas soportadas.
wallet.ts
Paso 4: crea las pruebas
En tu directorio de test, crea estos archivos. Ten en cuenta que estas pruebas no son exhaustivas. Prueban un pequeño subconjunto de la funcionalidad de ERC721 que ofrece la librería de OpenZeppelin, y están pensadas para darte las piezas básicas para crear pruebas más robustas.
test/MyNFT.spec.ts (unit tests)
tasks.spec.ts (integration specs)
test-helpers.ts Ten en cuenta que esto requiere las librerías de NPM importadas, incluyendo sinon, chai y sinon-chai. La llamada a sinon.restore() es necesaria debido al uso de stubbing.
Paso 5: configuración
Aquí está nuestro hardhat.config.ts bastante minimalista.
Nota el condicional para invocar dotenv solo si no estamos ejecutando pruebas. Puede que no quieras ejecutar esto en producción, pero ten la seguridad de que dotenv ignorará silenciosamente esto si el archivo .env no está presente.
Ejecutando nuestras tareas
Ahora que hemos puesto estos archivos en su lugar, podemos ejecutar hardhat para ver nuestras tareas (excluyendo las tareas integradas por brevedad).
¿Olvidaste los argumentos de tu tarea? No hay problema.
Ejecutando nuestras pruebas
Para ejecutar nuestras pruebas, ejecutamos hardhat test.
Resumen
En este tutorial, hemos creado una base sólida para una infraestructura de NFT bien probada basada en Solidity. La billetera proporcionada por waffle.provider.getWallets() se vincula a una cuenta local simulada de Hardhat Network que convenientemente viene precargada con un saldo de eth que podemos usar para financiar nuestras transacciones de prueba.
Boletín de Alchemy
Entérate primero de los lanzamientos
Suscríbete a nuestro boletín
Recibe las últimas actualizaciones de productos y recursos de Alchemy
Al ingresar tu correo electrónico, aceptas recibir nuestras comunicaciones de marketing y actualizaciones de productos. Reconoces que Alchemy procesa la información que recibimos de acuerdo con nuestro Aviso de Privacidad. Puedes cancelar tu suscripción en cualquier momento.
Artículos relacionados

Convierte Claude Code en un agente de investigación onchain
Convierte Claude Code en un agente de investigación onchain con el Alchemy CLI. Rastrea lanzamientos de tokens, wallets de deployers y admin keys haciendo las preguntas correctas.

El router Cortex: cómo elegimos el nodo más rápido y saludable para cada solicitud
Llevar una solicitud a una región cercana es lo mínimo esperable. Lo que pasa después, elegir qué nodo responde, es donde Cortex hace su trabajo.

La mejor infraestructura blockchain para agentes de IA (2026)
Compara la mejor infraestructura blockchain para agentes de IA en 2026: frameworks de agentes, proveedores de RPC y datos listos para agentes, y los estándares que los conectan.