Dawn of the NFT Legos

In this post, we get to know the world's most advanced NFT system. This is a set of standards beyond ERC721 or ERC1155. Beyond digital-dust-gathering assets that just sit in your wallet and die, or wait for the next hype cycle.

This post will document some examples of what becomes possible with RMRK 2.0 - live now on Kusama with Kanaria and coming soon to various parachains - so you can fully imagine the scope of RMRK's nft legos. The use cases described here are not exhaustive, but are nonetheless representative of the next paradigm shift: NFTs 2.0.

NFT Legos

The following few sections document the various legos we developed as part of RMRK 2.0. Later on, we will go into a combination of these legos to see what their combinations make possible.

Nested NFTs

NFTs that can own other NFTs.

Think in-game characters and their inventories, or house deed NFTs containing an album (another NFT) of photographs of the previous construction project.

NFTs can be minted and equipped into other NFTs which can then gain new functionality based on which NFTs they "own". This can also be abstracted into user-made collections, where a basket of NFTs can be for sale rather than listing them all one by one.

On-chain emotes

On-chain reactions to NFTs - anyone's NFTs.

Reactions are emotes, something you'd expect to see on a social website like 👍 🔥 ❤️ etc. We support the whole set of unicode emotes, and these can be rendered by any UI implementing the RMRK standard, making the social activity of reacting on someone's NFT visible across the whole ecosystem.

On chain emotes allow for interesting mechanics of price discovery where popular NFTs evoke a lot of emotion and are therefore presented as more relatively valuable than their peers.

Conditional Rendering

Change output based on some on-chain or off-chain value.

Conditional rendering is the ability of a certain NFT to display different visuals depending on certain conditions, like flipping an artwork upside down if it has enough 🙃 emotes on it.

If some value exists on-chain, the NFT can react to it by changing its look or functionality. If a switch is flipped in the NFT itself (see Custom Fields below), this can also invoke a different render.

Multi-resource NFTs

An NFT can have multiple resources (outputs) defined on it, of same or different type.

Multiple images, coupled with a 3D model, and maybe a PDF instruction manual. In the case of identical resource types, the user can define which resource is default and can switch this value at will by interacting with the NFT.

As an example, an audio book NFT can be minted with three resources: an audio file, a PDF, and a high resolution cover. The loading of each resource would depend on the context it is loaded in, so if you load the book into Audible, it plays. If you load it into Singular, it opens the built-in PDF reader. If you load it into Opensea to sell it, the high-res cover is shown on the search results and collection pages.

NFT DAOs

Collective pushing of an NFT's buttons.

NFTs are now interactive and can emit actions, send items, equip them, change state, and more. Some of these NFTs might be unique and too expensive for individuals to hold in their entirety.

Each NFT will be breakable into a number of fungible tokens where these tokens can be used to issue DAO-like commands to the NFT, e.g. the community can vote to EQUIP an item.

To break an NFT into fungible tokens, the owner must stake some $RMRK tokens. This prevents fungible token spam.

Examples

Now let's look at some examples of what becomes possible when we put these new NFT legos together.

The Multi-resource NFT

A multi-resource NFT is one that has multiple resources equally applicable to it.

An NFT can be a video game that contains JS code that executes when it's loaded in the browser, a high resolution image of the game as cover art, and a PDF manual of how to play the game. If you load this NFT in Opensea, their UI will know to load the high-res image to represent the NFT. If you load it on RMRK's Playground, the marketplace for NFT-based games, the game can also be played. In both cases, the PDF will come attached as a separate resource on the NFT.

An NFT that is a 3D model can have the actual model file, a high res image of it, and a thumbnail. A SERP page will load the thumbnail, a listing page will show the high res photo, or the model if it can support rendering them, and with the RMRK plugin, a tool like 3Ds Max or Maya or Blender can load the model file directly from the UI.

This is especially useful for metaverse applications as described in the Skybreach post where an avatar can have a 3D version, a cover version, and a 2D pixel version of itself, making itself compatible with different universes at the same time without relying on the centralized provider which is creating the "metaverse".

Note that multi resource NFTs are not nested NFTs - alternative resources are part of one NFT, but that NFT can contain other NFTs (nested NFTs) each of which can itself have multiple resources and its own children.

NFT Custom Fields

The NFTs in RMRK2.0 also have mutable fields on the NFTs themselves that owners and/or issuers of the collection can set.

The NFT will inherit the mutable fields of its collection, but each NFT instance can individually override them.

By using custom fields, an NFT can alter its functionality or artwork. As an example, a background image can be equipped onto another NFT to change the background. Supposing that this background image NFT has a season flag, if we switch it to winter from summer, the parent NFT can now find itself in a snowy environment.

This field can be switched by whoever is defined as allowed to be doing this: the collection issuer, the NFT owner, or someone else entirely.

Resource Adding

With multi-resources, there is sometimes a need to add a resource, like a different rendering style, long after the NFT's original minting.

The issuer of a collection can create an alternative resource for an NFT in that collection, and then suggest it to the owner on-chain. The owner has to accept this new resource, thereby preventing the issuer from rug-pulling their art. The owner cannot add new resources to fake the appeal of their NFT willy nilly.

The Multi-resource NFT: Priority Switch

A multi-resource NFT can, for example, have several images. A Vorpal Blade NFT can have a beautiful stylized drawing or a realistic render.

The user can change the priority of the display by choosing which of these is the default. This way, the user picks between two different displays of the same NFT with a switch, and all UIs implementing the standards easily render this, across the board, in any app.

One example where this is in use is in Kanaria's secondary art. If you visit the bird catalogue, you will notice some birds are very different to others. This is because they have multiple artworks attached, and any user can scroll through these alternative renderings of the same NFT.

An additional use case of Multi Resource NFTs is being able to back-up the asset of the NFT on various platforms. These days many NFT projects pick a centralized server to host you artwork, and when the server goes down they can "rug-pull" your art. Things like this can happen:

However, if NFT assets are instead stored on multiple immutable media platforms at once, like Arweave, Crust, Filecoin, and IPFS, through 4 resources, you end up with redundancy that protects your art indefinitely.

Conditional Rendering: Reactive Painting

RMRK 2.0 NFTs use jsonlogic to add conditions into the NFTs that are non-turing-complete, but require no smart contracts.

A user draws a digital painting of a moon. This painting has two resources: an image where it's just a moon, and an image where it's a moonbase on a moon.

The NFT has a logic block like this one:

...
    "logic": [
        {
            ">": ["emotes.🚀", 50],
            "priority": [1, 0] // change prio based on condition == true
        },
...

To the RMRK system, this means "if people have collectively EMOTEd more than 50 🚀 to this painting, switch priority to [1, 0] instead of whatever it is now".

Assuming the moonbase is in the resources list at index 1, and the plain moon at 0, the NFT will display the moonbase by default for as long as the number of rocket emoji on it is above 50.

Nested NFTs

In RMRK 2.0, the owner of an NFT can be an Account on the chain, or it can be another NFT's ID. This means the system supports implied NFT nesting.

In order to mint a bundle of NFTs to sell them all at once, all a user has to do is mint an NFT and send them all to this one. There's no special class or flag to activate.

Note that the user will still have to define the price of each child separately but in a single UI. This is to prevent a royalties distribution issue which is outside the scope of this post.

The NFTs do not have to be of the same type. Wanting to sell an NFT bundle called "Genesis #1s", thus minting an NFT that will contain Kanaria #1, SubstraPunk #1, and Chelobrick #1, as the first three instances of the first three NFT projects on RMRK, this is fine.

Nested NFTs + Composite Rendering

Let's explain RMRK's special BASE entity.

With RMRK 2.0, we can compose multi-element characters out of stackable SVG or PNG fragments (or other media soon - music and video experiments are underway).

An NFT can contain or own other NFTs, as explained above. But this can have more depth than in the above use case.

We can define a BASE for the NFT, which defines parts and slots. A BASE looks like this:

{
    "type": "svg",
    "id": "some-base-id",
    "parts": [
        {
            "bg": {
                "type": "fixed",
                "z": 0,
                "src": "ipfs://ipfs/hash"
            },
            // ...
            "wing_1_back": {
                "type": "fixed",
                "z": 1,
                "src": "ipfs://ipfs/hash"
            },
            "wing_1_front": {
                "type": "fixed",
                "z": 3,
                "src": "ipfs://ipfs/hash2"
            },
            "wing_1_slot": {
                "type": "slot",
                "collections": ["id-of-genesis-legendaries", "id-of-genesis-rares", "id-of-genesis-epics", ...],
                "z": 2
            }
        }
    ]
}

This is an SVG type base, which implies it's used to create a composite NFT.

There are fixed parts, like bg, which define the image background at a certain z index (0 means behind everything - the higher the number, the more "above" everything else something is).

But notice the three parts at the bottom: two fixed, and one slot. Put together, these mean: "The wing is composed of a front and a back, and slot in between. The slot can EQUIP items from the following collections".

An NFT can use this base by referencing it as a resource:

// ...
    "resources": [
        {
            "base": "ipfs://ipfs-hash-of-base"
        },

Now let's assume an NFT in the collection id-of-genesis-epics, which is whitelisted in this base, has the following resources set:

// ...
    "resources": [
        {
            {
                "metadata": "hash-of-metadata-containing-guest-bird-art",
                "slot": "some-base-id.wing_1_slot"
            },
            {
                "metadata": "hash-of-metadata-guest-bird-art-with-jetpack"
            }        
        }
    ]

You'll notice it has two resources, each pointing to a static hash. But one also has a slot property that identifies which base and which slot in that base this resource is for.

This makes the NFT equippable into the base's slot of the same name.

If the owner of this NFT sends it into the NFT that uses the required base, then the owner of that NFT can issue an EQUIP command targeting the child NFT ID and the slot name.

Once equipped, the RMRK renderer will show the SVGs stacked, as defined by their Z index, composing a layered image. This is what makes Kanaria birds possible.

Fractional NFTs: NFTs as DAOs

An NFT that is expensive may be out of reach for many people, but they might want to own a part of it.

NFTs in RMRK can be fractionalized into fungible tokens, so that the holders of these tokens can not only own a piece of an NFT, but also govern its functions (as a Decentralized Autonomous Organization, or DAO).

To fractionalize an NFT, its owner needs to stake (lock up) a certain amount of $RMRK tokens. This prevents fungible token spam.

Once the tokens are distributed, the holders can issue collective commands. For example, issuing a default resource priority change is now a semi-plutocratic function of the majority tokenholders.

The Billboard

The video version of this concept can be seen on Youtube by clicking the image below.

Assume we have a metaverse with plots of land represented as NFTs.

Assume Bob buys three plots of land.

Assume Bob then finds an NFT on the Singular market which is a billboard with two resources: a 3D render, and a 2D high-res version shown on the marketplace.

Bob sends this billboard to the middle land NFT, the land NFT now has this billboard NFT as its child.

Because the Land NFT's primary resource is a BASE that has a structure slot, and the billboard has a resource matching that base and slot, Bob can tell the land to EQUIP the billboard. The billboard appears in the metaverse.

Assume that people who enter the game immediately spawn next to this billboard, so corporations take notice that this billboard is getting a lot of views.

They contact Bob for ad placement. Bob decides to fractionalize this billboard instead of selling ad space outright, and sells the tokens to the community (see Fractional NFTs, above).

It is now up to the corporations to:

  • mint the advertisement in the dimensions of the billboard
  • send the advertisement to the billboard
  • bribe the token holders to pick their ad, and not their competition's

Putting RMRK 2.0 art lego primitives together in such a way allows for community-governed virtual real estate management, an incredibly powerful metaverse concept.

Mixed Reality

RMRK 2.0 NFTs can be anything, including location-specific entities. Thus, they can overlay on top of the real world based on geo-tagging or even some AR markers.

In the not-so-distant future, we imagine we'll be able to wear AR glasses or lenses that can wipe real-world ads from our view around us. The billboards that currently pester you will be whitespace. Eye-based ad blockers.

But what if we could NFT-ize this whitespace and rent it out to the corporations whose products we're actually interested in, or to ad providers who share profit with us, like Brave?

With an NFT scenario like the Billboard example above, this becomes directly translatable into the real world - along with, for example, plutocratic governance over the massive ads in Times Square. What if the people - everyone - could share in this parallel visual economy?

What if we could hijack our visual surroundings back from the ad corporations and replace the content with what we all collectively agree on, at the same time sharing profits?

Collaborative 🎶 Compositions

A user can mint an NFT with a BASE which has slots defined for musical notes.

Others can mint notes and send them into this NFT. The empty composition can be DAOified, and the composition can be plutocratically composed of multiple tones to result in a community-built decentralized song that is then tradable and playable as an NFT.

It is then possible to apply royalties to this song's purchases and plays, allowing for the communty to share their creativity's profits among one another.

The MMO

The nested NFT concept with equip mechanics lends itself perfectly to games. A character can be an NFT, this NFT can own a backpack NFT, and this NFT can own item NFTs, like potions, food, weapons. Armor from the backpack can be EQUIPped, and curses can be NFTs minted directly onto the character's buff slots, and get "burned" when un-equipped (i.e. cured).

The skill tree can be composed of NFTs, personality traits and experience can also be on a "level card" which in itself is an NFT that can grow over time.

This allows true ownership of experience, as documented in our Skybreach post.

The Twitch DAO

With fractional NFTs and the above gaming mechanics, it is not hard to imagine a Twitch streamer distributing tokens for their in-game character and letting the community govern, for example, this character's equipment and skill setup for the next raid.

You now have a direct and decentralized way for the audience to interact with what they're watching online.

Reforestation Game

A real-world parcel of land is bought by a charity, aiming to reforest the land. They need funding.

The tokenize the land into 500 parcels of 5x5 meters. Each tile is an NFT which has two resources: the photo of the land, and a digital representation of the land:

The land NFTs have a dedicated dapp website where they are all rendered via their isometric resource, resembling a game.

The land NFTs can be bought up, funding the charity effort. The ownership is not real, it's symbolic, like in those "Buy a lordship title" deals.

The charity is now funded and can start tiling the land and renewing the ecology.

Once the land is secured and fenced off, protected, regulated, for a second fundraiser the charity organizes the growing of 500 seedlings of trees, different (but compatible) types and breeds.

Users can buy these seedlings as NFTs, send them to the land of their choice, and the owner of the land can equip the seedling on their plot.

With conditional rendering and nested NFTs, the dapp showing the full terrain now also shows the seedlings being virtually planted, but in reality, the charity makes sure to plant those exact seedlings in their exact locations too.

The charity regularly maintains and cares for the seedlings, documenting each parcel's evolution and each tree's growth. These photos are sent into the seedling NFTs as new resources, and new illustrated digital seedling resources are added on top. This lets a digital tree "grow" alongside its real-world counterpart, showing a digital version of this plot of land being reforested in real-time.

Contest

We ran an idea contest based on the concepts above and here are the results.

0
SwaderPost author

Founder at RMRK.app

The discussion place for RMRK.app based NFTs. Official announcements and community discussions.

5 comments

Loading replies...

The discussion place for RMRK.app based NFTs. Official announcements and community discussions.