EXO
4 min readJul 26, 2023

Since first joining the MultiversX ecosystem we’ve been very adamant about our goals to add the current feature set of NFTs, helping in the process to make them evolve with even more capabilities. And the first such endeavor is our dyNFT concept.

So what is dyNFT?

Easy. It stands for DYnamic NFT. Which means a way to have your NFT evolve, customizable AND last but not least be more than just a still picture and allowing interactions with it.

But why? I thought NFT’s should be non-fungible

Just because an NFT can be dynamic doesn’t mean it’s not still non-fungible. By definition what makes an NFT “non-fungible” is how they cannot be exchanged on a one-to-one basis.

From our humble perspective not every NFT NEEDS to be dynamic. On the contrary. PFPs or art NFTs can and should stay non-evolving, exactly as the artist creator intended. But for a lot of other use cases, such as game avatars, the evolution is something that is very desirable and it mimics the way that avatars in traditional games have worked for ages.

Every gamer out there knows the feeling you get when starting a new game and you get the entry-level armour, some leather or cloth low-level items and changing those items throughout the game’s progression. Not to mention the freedom of expression one gets when customizing the look of one’s avatar exactly how one feels.

Ok I get it, so how does it work?

When we approached the awesome team at MultiversX we crafted an RFC covering a possible technical implementation. Here’s a link to it for anybody that wants to take a look at it.

Essentially it adds an extra attribute to the encoded JSON that can be attached to the Attributes field of any NFT. The field is called “interactive_url” and should be pointing at an IPFS hosted HTML page. That HTML page will then offer the creator of the NFT all the tools (Javascript, Canvas, WebGL etc) necessary to create a dynamic experience for the end user. The limit is literally the imagination of the creator :)

Any third party integrator (marketplace, aggregator, etc) will then be able to check if the Attributes JSON contains this interactive_url property and if so, replace the regular media provided in the NFT’s URI field with an iFrame that embeds the linked HTML page.

VIDEO OF DYNFT IN ACTION

That’s really cool. But how does that extra field help with evolution?

Due to how NFTs are treated as first-class citizens at blockchain level on MultiversX, the only entity that can affect one NFT is the owner. So in order to have that evolution possible from a technical point of view a simple process needs to happen:

Owner initiates evolution/upgrade by interacting with the project’s smart contract > The initial NFT gets burned > A new version of the NFT containing the changes requested by the NFTs original owner is minted > The newly minted NFT gets sent to the original owner’s wallet.

And here’s a simple schematic showing how one of our game NFTs will support cosmetic evolution, by combining a game NFT with a cosmetic SFT representing a companion done in collaboration with our friends and partners at Giants Village.

What limitations are there?

The main limitation is that the HTML page NEEDS to be hosted on IPFS. And that is to preserve NFTs in a more stable environment, not having to depend on the project hosting the webpage and somehow going offline. Other than that not that many limitations. Of course as a word of warning to future creators wanting to bring new dyNFTs to life, be mindful of how optimized the HTML page is, as it will be loaded on demand in an iframe every time somebody views it on a third party integrator platform.

Cool. I’m loving it. Can I use it?

Short answer: YES. We’ve worked with the awesome dev team @MultiversX and we’re so proud to announce that their xSpotlight platform is the first official implementation supporting dyNFTs. And actually our EXO Ticket SFTs are the first ones to support it. Check it out here (and don’t forget to spin that ticket all around :))

(If you’re wondering what EXO Ticket SFTs are, it’s easy. It’s the placeholder that anybody minting in any of our mint phases (private sale, OG, WL or public phase) will receive and will be able to redeem for the final game NFT when the game comes live after mint)

What’s next?

We would like to see this get implemented by any and all third party integrators out there in the MultiversX ecosystem, allowing their users to experience a new level of immersion in their NFTs. We’ve been working with the super teams at XOXNO and FrameIT and we’re anxiously waiting for their implementation to come to life ;)

And if you’re a new project, a new creator or even an existing established project, give it a shot. Take your project’s art to new levels and amaze everybody in the process.

Thank you for reading so far, and we would just want to say that it’s been a pleasure working on this with so many helpful people and teams across the MultiversX space. And if you would like to know more about who are are, or what is EXO, we would love it if you would visit our website, check our whitepaper and then join our Discord so we can have a chat :) We’re always looking to connect with new friends :)

https://discord.gg/m3gmUhGq3E