Mostrar un NFT certificado
Aprende cómo mostrar en tu escena un NFT certificado que posees
Puedes mostrar un NFT 2D (token no fungible) que posees en tus escenas de Decentraland.
La imagen del NFT y otros datos se obtienen de una API, según el contrato y el id del token. Cualquier NFT compatible con OpenSea también puede mostrarse en un marco de imagen NFT en Decentraland.
El marco de imagen se muestra ajustándose a las dimensiones de la imagen del NFT. Si las dimensiones de la imagen son 512 X 512 píxeles, el marco conserva su tamaño original. Si la imagen tiene dimensiones diferentes, el marco se redimensionará y se estirará para coincidir con esas dimensiones.
Agregar un NFT
Agrega un NftShape componente a una entidad para mostrar un token 2D en tu escena.
const nft = engine.addEntity()
Transform.create(nft, {
position: Vector3.create(8, 1, 8),
})
NftShape.create(nft, {
urn: 'urn:decentraland:ethereum:erc721:0x06012c8cf97bead5deae237070f9587f8e7a266d:558536',
})El NftShape El componente debe instanciarse con un parámetro que incluya lo siguiente:
urncampo. Este campo toma una cadena que debe seguir esta estructura:
urn:decentraland:<CHAIN>:<CONTRACT_STANDARD>:<CONTRACT_ADDRESS>:<TOKEN_ID>
Esta cadena incluye:
El network donde existe este token. Consulta la lista de valores compatibles a continuación.
El estándar del contrato en el que se basa este token, por ejemplo
erc721El contrato del token (por ejemplo, el contrato de CryptoKitties)
El id del token específico para mostrar
Por ejemplo:
urn:decentraland:ethereum:erc721:0x06012c8cf97BEaD5deAe237070F9587f8E7A266d:558536
El ejemplo anterior obtiene un NFT con la dirección del contrato 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d, y el identificador específico 558536. El activo correspondiente se puede encontrar en OpenSea en https://opensea.io/assets/0x06012c8cf97bead5deae237070f9587f8e7a266d/558536.
Los siguientes valores son compatibles con network:
ethereum: Ethereum Mainnetmatic: Polygon Maticklaytn: Klaytnbsc: BNB Chainarbitrum: Arbitrumarbitrum_nova: Arbitrum Novaavalanche: Avalancheoptimism: Optimismsolana: Solanabase: Baseblast: Blastzora: Zora
📔 Nota: Las imágenes deben tener un tamaño de hasta 6 MB. Si la imagen es más grande, no se renderizará en la escena.
Personaliza el marco
De forma predeterminada, la imagen tendrá un fondo morado y un marco con una textura emisiva pulsante alrededor. Puedes establecer las siguientes propiedades para que coincidan mejor con el estilo del NFT y de la escena:
color: Determina la cara posterior del modelo y también el fondo de la imagen en caso de que la imagen del NFT tenga transparencia.style: Selecciona un modelo de marco de un enum con varias opciones predeterminadas. Usa un valor del enumNftFrameType, que contiene una lista de todos los estilos disponibles.

Aquí tienes la lista completa de estilos de marco compatibles:
NFT_CLASSICNFT_BAROQUE_ORNAMENTNFT_DIAMOND_ORNAMENTNFT_MINIMAL_WIDENFT_MINIMAL_GREYNFT_BLOCKYNFT_GOLD_EDGESNFT_GOLD_CARVEDNFT_GOLD_WIDENFT_GOLD_ROUNDEDNFT_METAL_MEDIUMNFT_METAL_WIDENFT_METAL_SLIMNFT_METAL_ROUNDEDNFT_PINSNFT_MINIMAL_BLACKNFT_MINIMAL_WHITENFT_TAPENFT_WOOD_SLIMNFT_WOOD_WIDENFT_WOOD_TWIGSNFT_CANVASNFT_NONE
Algunos marcos usan más materiales que otros. Por ejemplo, el marco predeterminado añade 1 material para el NFT en sí, 1 material para un plano de fondo coloreado y 2 materiales para el marco (compartidos con otros marcos de imagen del mismo estilo). Si necesitas reducir los materiales para mantenerte dentro de las limitaciones de la escena, elige un estilo más simple. Por ejemplo, "none" solo usa 1 material para el NFT en sí.
Abrir una UI de NFT
Abre una UI preconstruida que muestra el nombre, el propietario y la descripción de un NFT. También incluye el precio actual del NFT y el precio de la última venta, si corresponde, y un botón que enlaza con la página del NFT en OpenSea, donde hay más información disponible y se puede comprar.

Abre esta UI llamando a la función openNftDialog(). Esta función requiere un objeto como argumento que contenga un único urn campo. Este campo toma una cadena que debe seguir esta estructura:
urn:decentraland:<CHAIN>:<CONTRACT_STANDARD>:<CONTRACT_ADDRESS>:<TOKEN_ID>
Por ejemplo:
urn:decentraland:ethereum:erc721:0x00...000:123
📔 Nota: La UI debe abrirse como resultado de un evento de botón, para evitar el spam abusivo. El evento de botón no necesariamente tiene que estar en el mismo marco de imagen ni en un NftShape.
Para abrir esta UI como resultado de una acción de clic, añade lo siguiente:
Última actualización