Hola mundo! NFT

Esta es la manera mas sencilla de mintear tokens no fungibles NFTs (ERC 721) por medio de smart contracts. Usa este ejemplo únicamente como punto de partida, no como un proyecto final. Recuerda que solidity ofrece mucha flexibilidad para que podamos interactuar con los NFTs de maneras creativas. Así que experimenta creando tu propio contrato único y combínalo con el resto del ecosistema de Ethereum o cualquier otro blockchain.

Requerimientos

  1. Tener Metamask instalado
  2. Tener fondos en Rinkeby Testnet, consíguelos en este faucet

1. Subir nuestro JSON URI vía IPFS

Primero sube la imagen por medio de un uploader IPFS, te recomiendo este:

Una vez subida la imagen fíjate en el hash que se ha generado y crea un archivo JSON. Coloca el hash donde se indica TUHASHAQUI como en el ejemplo a continuación.

{
    "name": "Mi NFT",
    "description": "Esta este es un ejemplo de descripción",
    "image": "https://ipfs.io/ipfs/TUHASHAQUI"
}

2. Lanzar el contrato en Rinkeby Testnet

Ahora crea un contrato en solidity e ingresa hash del archivo JSON en TUHASHAQUI como se indica a continuación. Puedes deployar este contrato via Remix.

// contracts/GameItem.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract MyNFT is ERC721 {
    uint256 token_count;

    constructor() ERC721("My NFT", "MNFT") {}

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
        return "https://ipfs.io/ipfs/TUHASHAQUI";
    }

    function mintNFT(address to) public
    {
        token_count  += 1;
        _mint(to, token_count);
    }
}

3. Ver tu NFT

Ahora puedes lanzar el contrato en Rinkeby y mintear tokens. Luego podrás agregarlos o verlos en las versiones de Testnet de OpenSea o Rarible.

Gracias por ver este tutorial!

Sígueme en dev.to y en Youtube para todo lo relacionado al desarrollo en Blockchain en Español.

30