Web3 NFT: cree y enumere NFT con Python, Pinata, Opensea

Cree sus colecciones Web3 NFT utilizando Python, Openzeppelin y Pinata, que pueden cotizar en los mercados de Opensea.

La economía de fichas es un vocabulario candente en el mundo de los negocios. Dos tipos principales de tokens, que son tokens fungibles y no fungibles. NFT (token no fungible) es un identificador digital único que no se puede copiar, sustituir o subdividir, que se registra en una cadena de bloques . Proporciona un certificado público de autenticidad o prueba de propiedad.

Los activos, en particular los activos intangibles, pueden evaluarse de forma continua y pública de una manera absolutamente transparente y disruptiva, en comparación con la valoración tradicional de activos intangibles, aunque la propiedad de NFT en sí misma no tiene un significado legal inherente.

En este artículo, explicaré cómo crear sus colecciones Web3 NFT utilizando Python, Openzeppelin y Pinata, que se pueden incluir en los mercados de Opensea.

Ingredientes en Web3 NFT: construya NFT usando Python, Openzeppelin, Solidity

Tabla de contenido

Contrato inteligente NFT

Además de un token fungible, debemos comenzar por desarrollar el código de contrato inteligente en el desarrollo de NFT.

Lo primero es lo primero, podemos hacer un buen uso de los módulos existentes, como Openzeppelin, que puede ahorrar algo de tiempo para desarrollar funciones comunes. Asegúrese de agregar las dependencias en brownie-config.YAML también. Si tiene alguna pregunta relacionada con esto, consulte otros artículos en la colección Easy2Digital web3.

// contracts/GameItem.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

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

Como puede ver, ERC721, que es diferente del token fungible ERC20, es el token estándar no fungible. Por lo tanto, bajo este módulo, creamos un contrato usando ERC721.

  • Aquí hay dos parámetros en ERC721, uno es el nombre completo y el otro es el nombre abreviado del NFT creado. Y comienza con tokens como vería en la colección creada, incluida una función más cuando crea el NFT uno tras otro.

contract SimpleCollection is ERC721 {

   uint256 public to encounte;

   constructor () public ERC721 ("LouisNFT", "LVnft") {

tokenCounter = 0 ;

}

   function createCollection ( string memory tokenURI ) public returns ( uint256 ) {

       uint256 newTokenId = tokenCounter;

       _safeMint ( msg.sender , newTokenId);

       _setTokenURI (newTokenId, tokenURI);

tokenCounter = tokenCounter + 1 ;

       return newTokenId;

}

}

  • Luego, cada nuevo NFT tiene un URI de token único y una ID de token. uint256 codifica el identificador del token según el número del contador del token. Y el token URI básicamente incluye toda la información material sobre el NFT, que incluye la imagen. Lo revisaré en un momento.

Metadatos

Los metadatos son un archivo JSON que permite que aplicaciones como OpenSea obtengan datos enriquecidos para activos digitales y los muestren fácilmente en la aplicación. Estos son los elementos incluidos en un archivo de metadatos básicos de la siguiente manera:

El almacenamiento de datos en la cadena de bloques puede ser muy costoso, a excepción de esos archivos de secuencias de comandos. Sin embargo, las imágenes, los videos y el audio que pueden ser de gran tamaño pueden ser costosos almacenados en la cadena de bloques.

Entonces, normalmente podemos aprovechar el uso de almacenamiento descentralizado como IPFS. IPFS o sistema de archivos interplanetario es un protocolo, hipermedia y una red de intercambio de archivos entre pares para almacenar y compartir datos en un sistema de archivos distribuido.

Básicamente, hay dos formas de cargar sus materiales NFT en IPFS. Una es instalar un entorno IPFS local para interactuar con la red IPFS. El otro es ejecutar a través de una plataforma de terceros, como Pinata.

Cargue la imagen NFT y el archivo JSON en Pinata para generar un URI de token.

Lo primero es lo primero, el primer paso es crear una cuenta de Piñata y preparar la imagen que desea convertir en NFT.

Luego, cargue la imagen como archivo en Pinata y luego podrá obtener una clave CID de estos materiales. La clave se usaría en un momento para crear un archivo JSON.

Además, dado que el token URI es un archivo JSON, el siguiente paso es agregar toda la información relacionada con NFT en un archivo JSON. Aquí hay una muestra usando VSC de la siguiente manera:

  • Nombre
  • Imagen: la estructura de URL de IPFS, https://ipfs.io/ipfs/ + image CID key (Generated just now)
  • Descripción
  • atributo

Por último, pero no menos importante, una vez que el archivo JSON esté listo, vuelva a Pinata, cargue el JSON y genere la clave CID del archivo JSON. Este es el ejemplo del URI del token final de la URL de IPFS.

https://ipfs.io/ipfs/QmV8rPonNpVaKnH2ri826AWqJ5XxeKYdeJupjKch4kA1UK?filename=NFT1.json

Integración de Cuenta Opeasea

OpenSea es el primer y más grande mercado web3 del mundo para NFT y criptocoleccionables. Explore, cree, compre, venda y subaste NFT con OpenSea. Para cualquier NFT, la cotización en un mercado es muy común, sin importar si tiene el propósito de vender o no. En particular, la mayoría de las empresas aprovechan esto para crear conciencia de marca y ayudar a implementar programas de lealtad también.

Para este caso, podemos simular el proceso de listado de NFT utilizando la red de prueba opensea. Crear una cuenta de testnet opeansea es totalmente gratis. En nuestro caso, usaríamos MetaMask para enumerar los NFT. Por lo tanto, asegúrese de registrar la cuenta de prueba de mar abierto que se conecta también con la cuenta de la red de prueba de MetaMask.

Para la URL NFT de opeansea testnext, básicamente, tiene dos variables que son la red de criptomonedas y la

Para la URL del listado de opeasea, la estructura tiene dos variables y aquí está la muestra

https://testnets.opensea.io/assets/ goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295/0

  • Dirección de red: goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295
  • Contador de tokens: 0 (Este número representa el orden del NFT, 0 significa que es el primero)

Usaremos esto en un momento en los scripts de implementación de Python.

Script de implementación de Python

Además de importar los módulos brownie y assistscript, así como crear un token fungible, la implementación de NFT necesita dos variables. Son sample_collection_URI y OPEASEA_URL

sample_collection_URI = "https://ipfs.io/ipfs/QmV8rPonNpVaKnH2ri826AWqJ5XxeKYdeJupjKch4kA1UK?filename=NFT1.json"

OPENSEA_URL = "https://testnets.opensea.io/assets/ {} / {} "

Luego, en la función principal, necesitamos usar las funciones createcollection como se crearon anteriormente en el contrato inteligente NFT

def main ():

   account = get_account ()

   Simple_Collection = SimpleCollection.deploy({ "from" : account })

   tx = Simple_Collection .createCollection(

       sample_collection_URI , { "from" : account })

   tx .wait( 1 )

Brownie-config, ENV y scripts de asistencia

Además del desarrollo de tokens fungibles, debemos agregar estos scripts. Para obtener más detalles, consulte estos artículos.

Use Infura y MetaMask en secuencias de comandos de Python para implementar contratos inteligentes de Web3 en una red BlockChain real de Ethereum

Brownie FundMe Smart Contract implementado en Ethereum usando Python y Web3

Una vez que los scripts están listos, podemos ejecutarlos en la red específica y el resultado aquí muestra que está listo y que el NFT se ha incluido en el mercado.

Brownie run scripts/deploy_NFTCreate.py –network goerli

Scripts completos de construcción de NFT usando Python, Openzeppelin, Pinata

Si está interesado en Web3 NFT: cree y enumere NFT con Python, Openzeppelin, Pinata, suscríbase a nuestro boletín de noticias agregando el mensaje "Web3.0 tutorial 7" . Le enviaremos el guión inmediatamente a su buzón.

Espero que disfrute leyendo Web3 NFT: compilar y enumerar NFT con Python, Openzeppelin y Pinata. Si lo hiciste, apóyanos haciendo una de las cosas que se enumeran a continuación, porque siempre ayuda a nuestro canal.

  • Apoya y dona a mi canal a través de PayPal ( paypal.me/Easy2digital )
  • Suscríbete a mi canal y activa la campanita de notificaciones Easy2Digital Youtube channel .
  • Sigue y dale me gusta a mi página Easy2Digital Facebook page
  • Comparte el artículo en tu red social con el hashtag #easy2digital
  • Te suscribes a nuestro boletín semanal para recibir los últimos artículos, videos y códigos de descuento de Easy2Digital
  • Suscríbase a nuestra membresía mensual a través de Patreon para disfrutar de beneficios exclusivos ( www.patreon.com/louisludigital )