Stellar proporciona un entorno para comerciar cualquier activo con transacciones rápidas y prácticamente gratuitas. Aparejado con la capacidad de emitir unidades limitadas y no fraccionarias de un activo, estas propiedades hacen de Stellar una blockchain ideal para emitir tokens no fungibles (NFT).
Muchos creadores y artistas de NFT ahora han descubierto los beneficios de crear y comercializar NFTs en Stellar. El mercado Litemint NFT en Stellar proporciona una página de estadísticas que muestra el volumen de ventas mensual de NFT, las ventas principales, los artículos únicos y los creadores.
Hay diferentes formas de crear NFTs en Stellar, e incluso más formas de almacenar y gestionar grandes cantidades de datos para estas NFT. Esta guía explica cómo usar Stellar para crear NFTs que puedan resistir el paso del tiempo y maximizar la interoperabilidad con los servicios y billeteras del ecosistema de Stellar.
💡 NOTA Las best practices que se describen a continuación se han desarrollado y utilizado para emitir miles de NFTs a prueba de futuro para artistas en el mercado de Litemint. Estos NFTs son compatibles con todas las billeteras Stellar y se negocian en el Stellar Decentralized Exchange (SDEX).
💡 NOTA #2 En Meridian 2021, Stellar Development Foundation organizó su primer docsprint, que incluyó una competencia para diseñar la primera insignia #StellarDev NFT.
Usar almacenamiento descentralizado
Como emisor de NFTs, debe pensar detenidamente cómo almacenar sus metadatos de NFTs. El uso de almacenamiento descentralizado es un requisito importante para preparar sus NFTs para el futuro.
❌ Almacenar los datos on-chain puede ser muy costoso y actualmente no es escalable en Stellar. Aunque puede ser viable para algunos casos de uso (ej. almacenar imágenes pequeñas; los NFTs de StellarQuest han utilizado con éxito este enfoque), no se recomienda para casos de uso general.
✔️ Siga las pautas desarrolladas por Protocol Labs para almacenar datos en el InterPlanetary File System (IPFS) y abordar datos NFT con la especificación del Content Identifier (CID) de Multiformats. El protocolo IPFS se usa ampliamente en la industria de NFTs y su adopción está creciendo rápidamente con servicios de almacenamiento descentralizados basados en IPFS como web3.storage y nft.storage.
💡 PRO TIP Hay varios servicios gratuitos para IPFS, puede crear una cuenta con web3.storage, actualmente ofrecen 1 TB de almacenamiento IPFS gratis.
💡 PRO TIP Puede encontrar más detalles en el sitio web ipfs.io, incluidas instrucciones avanzadas para cargar datos en IPFS con conservación de nombres de archivo.
Crear un archivo de metadatos
Los NFTs pueden representar la propiedad de cualquier cosa. Un archivo de metadatos es imprescindible para proporcionar información adicional sobre sus NFTs, por ejemplo: descripción, imagen, video, audio, nombre, título, términos, referencia circular al activo on-chain se pueden especificar con metadatos.
Se han especificado estándares prácticos y probados para crear archivos de metadatos en Ethereum con tokens ERC-721. Siga estos estándares para crear sus archivos de metadatos para NFTs en Stellar.
Aquí hay un ejemplo de un archivo de metadatos JSON para un NFT en Stellar, con el campo de imagen que contiene la forma canónica de enlace a los datos de NFTs en IPFS:
{
“name”:”Stellar Punk 0100″,
“description”:”just came back from the Moon.. it’s a temple to our Sun… hand drawn xlm network moon punks are here! always 1/1 animated edition”,
“image”:”ipfs://QmZM3EYeamVihFFVd5kZmG35ua19DcKT4gNh4aofaPQ2H6″,
“code”:”sPUNK”,
“issuer”:”GC64XYMQAF43THY3DSGYW7X4TA322HP3XHOQKA4FAI2736HDADTHVF2O”,
}
💡 PRO TIP Técnicamente, ERC-721 hace que todos los campos sean opcionales al permitir valores vacíos. Por lo tanto, es prácticamente libre de usar cualquier nombre para describir mejor sus NFTs. Los emisores pueden publicar opcionalmente un esquema JSON para ayudar a los clientes a validar la estructura del archivo de metadatos NFT (contrato de documento).
Vincule su activo a los metadatos
ipfshash es una convención de nomenclatura común utilizada por contratos en Ethereum o APIs (por ejemplo, Pinata) para referirse al CID de datos. Úselo para nombrar la entrada de datos en su cuenta de emisor de NFTs. Aprenda a usar ManageData para establecer entradas de datos en cuentas Stellar.
💡 PRO TIP Litemint busca la entrada de datos de ipfshash en la cuenta del emisor de NFTs para descubrir imágenes, videos, audio, descripciones completas y otras propiedades para que sus activos puedan beneficiarse sni problemas del uso de la misma convención de nomenclatura.
Configurar un archivo TOML
La configuración de un archivo TOML brinda interoperabilidad inmediata con todos los servicios y billeteras en el ecosistema Stellar. Se recomienda encarecidamente que todos los activos que emita en Stellar, NFT o no, sigan el estándar de protocolo SEP-0001 para proporcionar un archivo stellar.toml válido.
Otro incentivo detrás de la configuración de un archivo stellar.toml para sus NFTs es que, debido a que es trivial y económico emitir activos en Stellar, la mayoría de los servicios y billeteras del ecosistema Stellar tienden a descartar activos sin TOML y/o marcarlos como spam. Asegúrese de maximizar la interoperabilidad con tantos servicios como sea posible en Stellar.
Aquí hay un archivo stellar.toml de ejemplo para un NFT:
[DOCUMENTATION]
ORG_URL=”<https://ink.litemint.store>”
[[CURRENCIES]]
code=”sPUNK”
issuer=”GAKZGD5BFXZ7P7P45WHTM6DODMOEWWJUSCAIPGYIVIPYQSVR6MM6YR7M”
display_decimals=7
name=”Stellar Punk 0100″
desc=”just came back from the Moon.. it’s a temple to our Sun… hand drawn xlm network moon punks are here! always 1/1 animated edition”
image=”<https://ipfs1.litemint.com/ipfs/QmW7TqAccf6U5Yfs7gwHgNtkqPTE4M4zELHMfhkhTdZAxb>”
fixed_number=1
💡 PRO TIP Es una buena idea no vincular directamente su imagen a la puerta de enlace ipfs.io predeterminada en su TOML, ya que la puerta de enlace es lenta y tiene una velocidad limitada.
💡 PRO TIP Proporcione una versión optimizada del arte si es necesario para permitir la carga rápida desde servicios y billeteras en Stellar.
También debe configurar el campo homeDomain de su cuenta emisora a través de setOptions para hacer referencia al dominio de su archivo TOML para que otros sepan dónde buscar.
Use el stroop
Para implementar activos no fraccionarios, es necesario utilizar la cantidad más pequeña e indivisible disponible para enviar, recibir e intercambiar activos como unidades en Stellar. La cantidad más pequeña de un activo emitido en Stellar se denomina stroop, que es igual a una diezmillonésima o 0,0000001 de un lumen de Stellar (XLM). Por lo tanto, para emitir un NFT, emitiría 0.0000001 de un XLM en Stellar.
💡 PRO TIP Cantidades tan pequeñas pueden causar problemas en Stellar DEX porque Core usa internamente INT32 para la representación fraccionaria de precios, y el tipo INT32 solo puede almacenar valores entre -2,147,483,648 y 2,147,483,647 (inclusive). Existen soluciones para eludir estas limitaciones, una de las cuales se describe en este blog de Litemint.
🔒 ¡Congele su cuenta NFT!
En pocas palabras, sin inmutabilidad, los activos de Stellar no son NFTs. Congelar la cuenta del emisor de NFTs es clave para proporcionar inmutabilidad para la configuración anterior mencionado:
- Previene que las cuentas emitan unidades adicionales del token.
- Previene que se modifiquen las entradas de datos.
- Previene la operación de fusión que permite que se vuelvan a crear las cuentas.
- Previene la revocación de la propiedad (también se podría usar el indicador Autorización inmutable, pero por sí solo, no evitaría los otros puntos anteriores).
De forma predeterminada (es decir, sin configuración multisig), para congelar una cuenta, configuraría su master key weight a cero. Para hacerlo, puede usar la operación setOptions.
🚨 Dado que la congelación es un proceso irreversible, asegúrese de congelar solo su cuenta NFT y no su billetera.
💡 PRO TIP Para evitar cualquier problema con las cuentas de usuario existentes, Litemint Create Tool genera nuevas cuentas aleatorias sobre la marcha durante el proceso de minting de NFT. Estas cuentas se fondean y congelan a la vez en una sola transacción (5 operaciones), por lo que no hay riesgo para los usuarios (además de perder los 1,5 XLM de reserva y comisiones). Aquí hay un ejemplo de tal transacción.
💡 PRO TIP Algunos casos de uso pueden requerir la opción de descongelar una cuenta en una fecha futura. Esto se puede hacer en Stellar a través de una transacción previa a la autenticación con setOptions masterWeight=1 junto con restricciones de tiempo y configurando el hash de esa transacción como firmante en la cuenta antes de congelarla.
— — –
¡Y ahí lo tienes! Ha minteado con éxito un NFT en Stellar. Si desea obtener más información sobre cómo mintear un NFT a través de Litemint, nuestras preguntas frecuentes lo ayudarán a comenzar.
¿Quiere continuar la conversación y encontrar otras personas con ideas afines que se basen en Stellar? ¡Únase a la comunidad en Stellar Dev Discord y conéctese el jueves 24 de febrero a las 10 a. m. EST para la próxima sesión de Stellar Shop Talk sobre NFT!