ERC-721
Pros
- Permite la creación de múltiples tipos de tokens dentro de un mismo contrato
- Admite tokens fungibles y no fungibles
- Más eficiente y rentable para crear una amplia gama de NFTs
Cons
- Sólo permite crear un único tipo de token
- Ineficiente para crear múltiples tipos de NFT
Utilizaremos un contrato basado en la [implementación ERC-721]() de la biblioteca OpenZeppelin.
a) Primero, instala la librería Open Zeppelin para heredar sus clases:
b) A continuación, crea un archivo llamado NFT.sol dentro de la carpeta contracts.

c) Por último, añade el siguiente contrato inteligente al archivo NFT.sol .
Ten en cuenta que hemos llamado a nuestro contrato NFT, este puede ser cualquier nombre. El nombre será importante en el siguiente paso.
En este ejemplo, utilizaremos Ether.js
4. Define variables de entorno con dotenv
- Instala dotenv
Mantén tus Claves Privadas en Secreto
Las claves privadas deben ser mantenidas en secreto y no comprometidas en ningún repositorio de código. En el ejemplo de este tutorial, el archivo .env debe añadirse a su archivo .gitignore y mantenerse local. Por ejemplo, consulta la guía de MyCrypto Protégete a ti mismo y a tus fondos.
- Crea un archivo .gitignore
Un gran ejemplo de un archivo Solidity .gitignore puede ser consultado aquí

- Crea un archivo .env en el folder raíz de tu proyecto, y define variables de entorno en el archivo de la siguiente manera

Para asegurarnos de que todo funciona hasta ahora, vamos a compilar nuestro contrato:
a) Dirígete al folder scripts y crea un nuevo archivo llamado deploy_NFT.js

b) Agrega el código mostrado a continuación
- La tarea ejecutará los scripts en la carpeta scripts y guardará los despliegues del contrato en el disco. Cada despliegue se guarda en la carpeta deployments para la red específica.
| Red de prueba | Red principal |
URL del explorador |
Pega la dirección de tu contrato en la barra de búsqueda.
Obtén la dirección de tu contrato de 2 maneras:
- Console.log() output Contract deployed to address: contractNumber
- En deployments/palm_testnet/NFT.json o deployments/palm_mainnet/NFT.json donde también encontrarás la información ABI (Application Binary Interface).
Verás algo parecido a esto una vez desplegado correctamente 👇

Usando el Contrato Inteligente que acabas de desplegar ahora puedes Acuña NFTs con Hardhat
