Crear y alojar NFTs con 25 líneas de código

Autor: @sydneylai

A menudo se oye hablar de la colección de 10.000 NFT, pero ¿cómo hace alguien miles de imágenes únicas? Hoy construiremos un conjunto de datos de imágenes generadas algorítmicamente y las alojaremos en IPFS como una NFT única.

Alojamos las imágenes en IPFS porque se trata de un peer to peer y una forma descentralizada de almacenamiento, en lugar de una solución centralizada como AWS o Google Cloud. Por lo tanto, si AWS se cae o te olvidas de pagar tu suscripción a Cloud, sigues teniendo una solución de alojamiento que asigna un identificador único o identificador de contenido (CID).

Una vez que tienes una imagen única, puedes distribuir tus NFT en un marketplace, ponerla en un contrato inteligente o convertirla en un juego. Incluiré recursos más abajo para que puedas seguir construyendo. Este tutorial es para principiantes absolutos que quieran aprender a crear y alojar sus NFTs.

Herramientas que necesitarás:

Descargar imágenes

Carpeta consolidada que se encuentra en mi Github

De lo contrario, si quieres crear tu propia selección:



Crear carpetas de imagen

Crea una carpeta maestra, puedes llamarla “NFT1”
Crea una carpeta para organizar tus:

  1. Fondos
  2. Fondos de pantalla
  3. personajes
  4. objetos



Desglose-código

Instalar la librería Pillow

pip install Pillow

Entra en python, crea un archivo python de nombre “main.py”

emacs main.py

En tu archivo python, quieres incluir el siguiente código.

Aquí está el código python necesario para crear tu colección de imágenes.




from os import path, mkdir
from PIL import Image

output_folder = "generated"
if not path.exists(output_folder):
    mkdir(output_folder)

def generate_image(background, character, object, file_name):
  background_file = path.join("backgrounds", f"{background}.png")
  background_image = Image.open(background_file)

  #Create character
  character_file = path.join("characters", f"{character}.png")
  character_image = Image.open(character_file)
  coordinates = (int(1920/2-character_image.width/2), int(1000-character_image.height)) #x, y
  background_image.paste(character_image, coordinates, mask=character_image)

  #Create object
  if object != "none":
    object_file = path.join("objects", f"{object}.png")
    object_image = Image.open(object_file)
    coordinates = (int(1920/2+character_image.width/2+30), int(1000-object_image.height)) #x, y
    background_image.paste(object_image, coordinates, mask=object_image)
    output_file = path.join(output_folder, f"{file_name}.png")
    background_image.save(output_file)

for background in ["background1", "background2", "background3"]:
    for character in ["elf1", "elf2", "elf3"]:
        for object in ["object1", "object2", "object3"]:
            generate_image(background, character, object, file_name=f"{background}{character}{object}")


 



Coordenadas

Calcular las coordenadas es la forma en la que superpondrás los archivos de imagen. Por ejemplo, si tienes perros coleccionables y tienen objetos como sombreros, podrás colocar varios sombreros en el marco de la plantilla de la imagen del perro.

Calcule la longitud y el ancho de su imagen de fondo, y sepa dónde colocar sus personajes.

coordinates = (int(1920/2-character_image.width/2), int(1000-character_image.height)) #x, y
 

Calcula la longitud y el ancho de tu imagen de fondo, y conoce dónde colocar tus objetos.

coordinates = (int(1920/2+character_image.width/2+30), int(1000-object_image.height)) #x, y
 

Gracias especialmente a Albert Sánchez Lafuente. Si se necesitan matemáticas adicionales para calcular las coordenadas de su imagen leer.



para bucles

for background in ["background1", "background2", "background3"]:
    for character in ["elf1", "elf2", "elf3"]:
        for object in ["object1", "object2", "object3"]:
 

Esta parte del código le permite crear su arte generativo. Asegúrese de que su convención de nomenclatura sea coherente con los archivos de las carpetas a las que hace referencia

Si quiero crear un diseño personalizado, o un arte único y limitado, puedes decirle a python que genere una combinación específica o que haga referencia a un archivo específico.

generate_image(background="background1", character="elf1", object="object1", file_name="example1")



Generar

Ejecuta tu archivo main.py

python3 main.py

Su conjunto de imágenes generadas algorítmicamente aparecerá en la carpeta “generada”



Hosting NFTs

https://nft.storage/

Aquí tienes tu imagen alojada, con un CID

El alojamiento de NFTs en marketplaces o wallets suele pedir ETH y gas. Los desarrolladores de NFT que quieran un almacenamiento descentralizado gratuito, podrán alojar sus imágenes en la cadena con NFT.storage.

Sólo tienes que subir tus datos y recibirás un hash IPFS del contenido (un CID) que se puede utilizar en los datos NFT on-chain como un puntero al contenido.

Cómo funciona:

    • Carga tus datos, obtén de vuelta un hash IPFS del contenido (un CID) que puede ser utilizado en los datos NFT de la cadena como un puntero.
    • ¡Almacenamiento + Recuperación es gratis!
    • ¡Los metadatos se devuelven en formatos adecuados!
    • Recuperación a través de IPFS (anclado de forma redundante >3x)

.

  • Se hace una copia de seguridad en Filecoin (se almacena de forma redundante >5x)

Filecoin proporciona un almacenamiento a largo plazo para los datos asegurando que incluso si nft.storage es atacado o derribado los datos de NFT persisten.



Consume API

Categorías : # Blockchain, # nft

Deja una respuesta

Tu dirección de correo electrónico no será publicada.