RMRK / Kanaria RMRKable Explainer
Updated automatically every 5 minutes

The RMRKable Explainer

A Livepaper by RMRK Association, July 2021

This is a livepaper. It will evolve with new details as we flesh out the protocol and test our proof-of-concept tooling and gain new partnerships.

Summary

RMRK (pronounced “remark”) is, in its current form, a protocol for adding logic to blockchains without on-chain logic (like smart contracts), inspired by colored coins from Bitcoin[1]. Custom messages get interpreted in a special way according to a predetermined specification, adding value where there technically is none. The end result is NFTs and other programmable features on a logic-less blockchain. RMRK 2.0 takes this concept further by defining multi-chain standards for evolving, reactive, multi-resource conditional NFTs that go beyond being digital-dust-gathering collectibles. The full feature set of RMRK 2.0 is described below in the RMRK 2.0 section. RMRK is currently deployed on the Kusama[2] Relay Chain but is out-of-the-box compatible with Polkadot[3] and any other Substrate-based[4] chain.

The RMRK protocol is spearheaded by the RMRK Association, a Verein in Zug, Switzerland.

Introduction

NFTs or Non Fungible Tokens are digital collectibles of varying utility. They can be any or all of the following: access passes, digital real estate rights in virtual worlds, in-game items, provenance documents for real-world goods, copyrighted multimedia, art, entire programs and websites and more.[5]

What sets them apart from collectibles of the past is their mathematically provable ownership and originality, as well as provable scarcity. When coupled with real world assets like certificates, real estate, art, and more, NFTs open up a new world of global liquidity for assets that were historically considered highly illiquid.

The Basics of NFTs

The blockchain is a world-wide database of operations, but can, in an oversimplified way, be viewed as one big Google Sheet that many thousands of computers are keeping an eye on at any given moment.

This sheet logs the balances of all users, and if Alice wants to send Bob 2 coins, she can reduce her balance by 2 and then has permission to increase someone else’s (Bob’s) by 2.

Account

Balance

Alice

5

Bob

4

Alice

3 (5-2)

Bob

6 (4+2)

The “miners” or “validators” of a blockchain (collectively: block producers, BPs), depending on block production and validation method used (Proof of Work vs Proof of Stake[6]) are rewarded by the “sheet” itself with permission to increase their own number of coins without someone else having to reduce theirs.

The BP who is first to notice a change in the sheet, repackage it in a format understandable by everyone, and for whom everyone agrees did indeed do a good job of notifying the world about a change in the sheet is the one who is rewarded.

This is how regular token balances work on almost every blockchain.

NFTs are the same thing, only the sheet layout is a little different, with more columns:

NFT ID

Image URI

Owner

Metadata URI

...

0001

image.jpeg

0x0

ipfs://ipfs/hash

...

0002

image2.jpeg

bruno.eth

ipfs://ipfs/hash

...

0003

image3.jpeg

0x568763123

ipfs://ipfs/hash

...

Each NFT collection can be thought of as a separate sheet, and each row an NFT, a single instance in that collection. For example, a collection of trading cards can be thought of as a single sheet, and each row is an instance of one of those cards belonging to this collection. Each card has a field “owner”, which denotes which blockchain address owns it. Changing this field is equivalent to “sending” the token.

NFTs can have an arbitrary number of additional columns for extra values, this is entirely up to the developer of the NFT’s smart contract. An NFT’s smart contract is an application, a script that lives on the blockchain that defines how and which values are stored in the sheet.

Current State of NFTs

Right now, NFTs exist almost exclusively on the Ethereum blockchain in any meaningful capacity. Almost every alternative chain is now also competing for relevance in this new market, but Ethereum has an undeniable advantage due to being the first mover[7] and due to having an incredibly vibrant and rich developer and user community.

One downside of NFTs on Ethereum is that right now, due to the chain’s growing popularity, the gas fees (the expenses for interacting with the blockchain) are out of the general public’s reach. As an example, a simple emote on an NFT - a feature natively supported by RMRK - would cost ~ dozens to hundreds of USD on Ethereum, compared to ~$0.01 on RMRK.

Another downside of launching NFTs on Ethereum is that any semblance of functionality that goes beyond simple digital collectibles or images requires a complex set of smart contracts which are not compatible with each other, let alone the ossified marketplaces across that ecosystem. Customized support from platforms for such projects is a possibility, but one seldom granted and usually reserved only for high volume, high value, or high influence projects.

In many ways, Ethereum’s programmability and versatility is what is holding it back.

NFT Stats and Volume

The NFT ecosystem is enjoying unprecedented popularity.

March of this year alone has seen almost 200m USD in trading volume on Ethereum, and this is without the 69 million USD Beeple sale[8], excludes the marketplace Opensea[9], and ignores the various non-Ethereum platforms out there like RMRK or Hicetnunc[10]. In just the first quarter of 2021, NFT sales have broken $2 billion dollars in volume[11].

Even taking into account bubble mechanics and a degree of wash trading present on all these platforms, it’s undeniable that NFTs are on their way up and into the mainstream where they will completely usurp the traditional model of digital ownership and data provenance.

In short, ignoring this market is irresponsible.


NFTs in the Polkadot Ecosystem

Polkadot and Kusama are each a Relay Chain. A Relay Chain’s purpose is to connect other blockchains to each other, facilitating a sharing of features through shared security[12] via one common set of validators native to the Relay Chain.

As an example, Bitcoin could connect to Polkadot, and Acala (an upcoming DeFi chain) could connect to Polkadot. Bitcoin could then seamlessly move to Acala and be used there as DeFi collateral without chain-to-chain specific bridges.

Any new chain connecting to the existing set gains immediate access to the other already connected chains, growing the ecosystem’s feature set and market cap exponentially with every new chain connection.

Several NFT projects are in progress in the Polkadot ecosystem - from Enjin’s recent Efinity announcement[13], to dedicated NFT chains like Unique[14] and user interfaces like CSCanonizer[15], there is no shortage of NFT enthusiasm. All of these projects want to deploy on Polkadot and Kusama for the reason stated above - automatic connectability to all other incoming chains. Day-one multiverse expansion.

Kusama started out as Polkadot’s Canary network - a value-bearing proving ground for new code that would eventually (usually) reach Polkadot. With shorter governance periods and its artsy, cypherpunky attitude, Kusama evolved into its own sovereign chain with a separate community, audience, and set of excited stakeholders. Kusama was, thus, the ideal place to start building RMRK on.

RMRK

RMRK was originally designed in September 2020 when Web3 Foundation’s Technical Educator Bruno Škvorc[16] noticed the NFT craze heating up again on Ethereum. He felt like it would be a shame for Kusama to miss out on this movement, and decided to come up with a way to “hack” NFTs onto the chain even though it had no smart contract functionality[17].

Thus, RMRK started out as a protocol for adding logic to blockchains without on-chain logic (like smart contracts), inspired by colored coins from Bitcoin. Custom messages get interpreted in a special way according to a predetermined specification, adding value where there technically is none - like NFTs and other custom data formations like polls, tokens, even entire websites (see the section on Future Development and Ecosystem Growth plans for more info).

RMRK is compatible with any Substrate-based blockchain, covering hundreds of upcoming chains whether or not they have smart contracts built-in - although those that do will benefit from additional RMRK functionality.

Around November, several teams decided to implement the standard. Some time in late January, the RMRK team was officially formed in order to raise the bar of quality of RMRK implementations, and to be the dedicated steward of the protocol and its planned expansions.

At the moment of writing, a total of ~20000 NFTs have been minted and around $3 million dollars in traffic has been transacted with the RMRK protocol.

The RMRK team has been a key player in forming Kusama’s long term NFT strategy[18], building out the ecosystem, and driving adoption of Kusama-based NFTs across official and third party tools.

How RMRK Works

All Substrate-based chains have a function called remark in the core system module (this is where the name RMRK comes from). This function, when called with an argument (any arbitrary message), will “remark” this message in a block of the chain, but will do nothing else. It is a non-state-altering function, so it does not change the chain’s values - it is merely stored in the chain’s database on a local disk on all the nodes that sync to the chain. Think of remarks like graffiti on a chain.

The RMRK protocol is a set of rules and tools able to fetch and interpret these remarks in special ways. For example, the remark:

rmrk::EMOTE::1.0.0::5105000-0aff6865bed3a66b-DLEP-DL15-0000000000000001::1F389

… means:

“Using the RMRK protocol’s EMOTE interaction from the 1.0.0 version of the specification, send the emoticon 1F389 (🎉) to the NFT with the ID 5105000-0aff6865bed3a66b-DLEP-DL15-0000000000000001”.

RMRK’s tools can interpret this message and accurately display the Party Popper 🎉 emote on that particular NFT.

There are different types of messages that can be sent to the chain and interpreted by RMRK tools. All are specified and exemplified in the RMRK Specs repository[19] and briefly covered in the following section.

Current Capabilities

At the moment, three entities exist in RMRK’s NFT specification: Class, Base, and NFT. Every NFT must be part of a class, even if it’s a one-off (in that case, a client UI should default to a “user’s class”). This requirement exists to maintain compatibility between RMRK NFTs and internft.org as well as previous Eth-based standards like ERC1155 and ERC721. The additional Base entity serves to construct rich, composable NFTs made from multiple layers of SVG resources.

There are multiple possible interactions with these entities:

RMRK Downsides

Not having smart contracts does not come without tradeoffs. Two notable downsides exist in the RMRK protocol’s current version.

  1. Slow synchronization

Because of the append-only graffiti-way used by RMRK, for a client to be aware of the most recent state of the RMRK universe of NFTs, that client has to be aware of all the RMRK entries from the past in order to squash them all into a single point of truth at its final block. This is only possible with Archive nodes (those that keep the full history of the chain) and the sync process is very slow (up to a day when done from scratch). Regular automated appendable dumps are recommended, and the RMRK team offers such public endpoints, even going as far as regularly hosting a dump of pre-processed data on IPFS.

  1. Buy race condition

Were two people to buy the same NFT that is listed for sale in the same block, both transactions would go through and the seller would be paid twice, but only the first buyer (as ordered in the block) would become the new owner. This happens because there is no way to automatically refund a purchase without smart contracts. This can be mitigated by monitoring for unfinalized blocks and requests in-flight, and preventing interaction with pending items on the UI level. This is the approach used in Kanaria - see below.

In March 2021, the RMRK team built and deployed a tech demo and in-production test of their toolkit which serves to minimize these downsides. Notably, the RMRK team has created:

Kanaria

In March 2021, the RMRK Association launched the Kanaria platform. The Kanaria platform is a tech demo and in-production test of the tools built to protect users and developers from the above downsides.

The Kanaria project began with a pre-claim process during which interested parties could claim Kanaria digital eggs in exchange for KSM. This first phase functioned as a seed round for the team’s independence and had very strict limits per-account in order to keep the launch and distribution as fair as possible. This part of the project was built to test the NFT minting, emoting, and sending functionality, and worked as expected.

The second stage of the Kanaria project started on April 4th. Until June 30th, the claiming process was open to the public, and was meant to test double-buy protection. This worked well..

The third stage was the activation of P2P trading functionality on April 16th, allowing egg-owners to list their eggs for sale and buy them from others on the dedicated NFT minting and trading UI Singular[22]. With sufficient protections against double-buy in place, the system has proven itself safe enough for use.

The fourth stage is the hatching phase, which is scheduled to occur during july. The hatching will produce unique birds[23], some with randomly generated art only, and others with dual-art which the owner can flip between (this functionality is reserved for the top 100 birds by serial number and top 25 most emoted-on birds[24]).

Kanaria’s Randomness

This was originally explained in How it all Works[25]. Please see that post, and the Demystification post[26] for what’s coming from the Kanaria project.

Singular

Singular is RMRK’s official minting and trading UI for Kusama-native NFTs[27].

Singular was launched as a peer-to-peer marketplace in May of 2021 and will remain the canonical UI for all things RMRK, expanding into RMRK 2.0 as well as supporting Statemine’s Uniques pallet (primitive NFTs launched as part of Parity’s system-level parachain Statemine).

Singular has facilitated around $500,000 volume per month in its first two months of existence and continues to grow.

RMRK 2.0

Kanaria is a tech-demo and testing ground for RMRK 2.0 functionality as well. All the functionality listed above is only possible with the innovations we’re bringing into the world with RMRK 2.0, launched in July 2021. The innovations consist of new RIPs (RMRK Improvement Proposals) that define new features in the specification. We call this concept “art legos” due to their extreme simplicity, but ability to be put together into a system of arbitrary complexity. Some of the features of 2.0 are:

Nested NFTs

NFTs that can own other NFTs. Think in-game characters and their inventories. NFTs can be minted and equipped into other NFTs which can then gain alternative renders and functionalities based on what 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.

Child NFTs are given instructions like “SEND” or “CONSUME” by proxy, through their parent NFT.

Conditional Rendering and Reactive NFTs

Conditional rendering is the ability of a certain NFT to display different visuals depending on certain conditions. Imagine a digital painting of a moon which when the condition of having 50x 🚀 sent to it adds a rocket onto the moon.

Another example is being in control of an NFT that is placed somewhere, like a billboard in a virtual world. The owner can put the billboard’s space up for sale and anyone who buys it can send the billboard’s texture into the billboard NFT. The owner can then tell the billboard to EQUIP this texture, thus displaying it.

Yet another example is something as banal as checking if the current block number is even or odd and having the NFT display something different based on that. A collection could exist which represents real-world coordinates as each of its NFTs. Each such “land” NFT could then also EQUIP another NFT to show there - from 3D models to 2D floor textures and tiles. Other on-chain parameters and values can also be extracted, parametrized, and used within the conditional rendering logic of the NFTs.

Multi-Resource NFTs

An NFT can have multiple resources defined on it.

An NFT of a 3D model can have a resource that is a 3D model file, a resource that is a high resolution image, and a resource that is a thumbnail image. Depending on the context it is being loaded into, a different resource will be loaded. With the RMRK plugin, a 3D tool like Sketchup or 3DS Max can load the 3D file directly, listing on Opensea can show the high res image in single-item view, and on the search results page the thumbnail can automatically be shown.

NFTs as DAOs

NFTs are now interactive, and can emit actions, send items, equip them, change state, and more. Some of these might be unique and too expensive for individuals to hold in their entirety. This is why in RMRK 2.0 - the version we’ll re-launch on Unique Network (see below under Future Plans) - we will have NFTs as DAOs. Each NFT will be breakable into a predetermined number of fungible tokens where these tokens can be used to issue DAO-like commands to the NFT.

Example: a digital billboard in the Metaverse costs $1’000’000, and was minted a fractionality of 5000 (max 5000 fungible tokens). 5000 token holders then come up with $200 each to each own one $BB token. Pepsi, Coca Cola, and the r/cryptocurrency subreddit all express interest in advertising on this billboard, mint their billboard face NFT (as per Conditional Rendering and Reactive NFTs documented above), and send it to the billboard as a child NFT. The $BB holders then vote on which face to equip by using their tokens to issue a collective EQUIP command.

Another example is an in-game character preparing for battle, let’s call him $BOB, fractionalized to 10000 $BOB tokens. A Twitch streamer controls the character, and they outsource the character’s loadout (inventory setup) to the viewers. In real-time, the viewers propose inventory loadouts and vote on them. Once the loadout has been voted on by the majority of the tokenholders, the character is equipped and proceeds into battle. The skirmish is viewed by all.

Other Applications

For a full list of features and use cases that RMRK’s “art legos” enable please see the Dawn of the Art Legos[28].

RMRK Token

In order to further secure the independence of the RMRK team and to be able to decentralize the governance over the entire multi-chain protocol that RMRK aims to become, the Association is launching a governance token under the ticker $RMRK.

We aim to completely decentralize governance of the protocol within the next three years, such that the organization owns a minority of the tokens in their balance and treasury combined (under 20% total). This goal has already been achieved, though governance functionality itself is still pending development.

A total of 10 million (10’000’000) tokens will be minted, matching Kusama’s KSM supply[29]. The tokens will be minted on the common-good chain Statemint[30].

The tokens will be distributed according to a mechanism we call the Fairdrop.

The Fairdrop

The Kanaria fundraiser sold over 88% of all NFT eggs so +88% will be airdropped to everyone who had an egg or a bird in their address on July 1st, as a gesture of thanks to all our earliest supporters.

The value of tokens per egg is:

The remainder of the tokens (11.7152%) will be held by the team for a distribution later on which is yet to be determined, but was initially supposed to be:

With over 88% of all tokens allocated to users of the protocol, the RMRK Association’s token supply is fully decentralized and ready for community governance.

Token Utility

The tokens will be used for:

More use cases are being developed and this post will be updated accordingly.

Ecosystem Expansion and Future Development

Immediate plans for RMRK include an expansion across the Kusama ecosystem. Notably:

Aside from launching across the entire ecosystem of both Kusama and Polkadot for other teams to easily deploy their NFT infrastructure on, our long term plans include:

Competition

A common question is “Who is your competition?”

The answer is consistently “there is none”. In its post-NFT stage, RMRK will focus on ultimate UX - the area of Web3.0 we feel is sorely lacking. If another project does it better than we do, we all win - what’s easier for the users draws the users in, and the whole ecosystem benefits.

In the NFT context, we don’t see competition either - there’s Enjin’s Efinity, there’s all the NFT ports that are coming to Moonbeam, and there’s even the Parity-made Statemint system-level chain which has a very primitive integration of NFTs (which we also support in our official UI Singular.rmrk.app), but none of these are in production (we are) and none of these have innovated nearly as much as we have on the above functionality as described in the RMRK 2.0 section.

It is our hope and expectation that alternative NFT platforms will work with us to adopt our innovations, integrate them into their offerings and improve the ecosystem as a whole for all of its users. We will do our best to actively work with all projects in the ecosystem to expand our reach and standardize access to these new primitives.

Code

Official accounts and contact info


[1] https://en.bitcoin.it/wiki/Colored_Coins 

[2] https://www.youtube.com/watch?v=Kke1FmIAYfo 

[3] https://www.youtube.com/watch?v=5NAn-MnRJtk 

[4] https://www.youtube.com/watch?v=--7t596sw7E 

[5] https://www.crowdcast.io/e/hello-decentralization/41 

[6] https://bitfalls.com/2018/04/24/whats-the-difference-between-proof-of-work-pow-proof-of-stake-pos-and-delegated-pos/ 

[7] Technically, Bitcoin’s colored coins are the first mover in this context, but this failed to get any traction

[8] https://www.theverge.com/2021/3/11/22325054/beeple-christies-nft-sale-cost-everydays-69-million 

[9] https://dappradar.com/ethereum/marketplaces/opensea 

[10] https://www.hicetnunc.xyz/ 

[11] https://www.cnbc.com/2021/04/13/nft-sales-top-2-billion-in-first-quarter-with-interest-from-newcomers.html 

[12] https://wiki.polkadot.network/docs/en/learn-security#shared-security 

[13] https://enjin.io/blog/efinity 

[14] https://uniquenetwork.io/ 

[15] https://kusama.polkassembly.io/post/313 

[16] https://github.com/swader

[17] Relay chains like Polkadot and Kusama must remain light to be able to process the data from connecting chains (parachains). This prevents the deployment of resource intensive logic (like smart contracts) on these chains.

[18] https://kusama.polkassembly.io/post/303 

[19]https://github.com/rmrk-team/rmrk-spec 

[20] https://docs.rmrk.app 

[21] https://github.com/rmrk-team/rmrk-spec 

[22] https://singular.rmrk.app 

[23] https://url.rmrk.app/demobird 

[24] https://app.subsocial.network/2425/kanaria-art-contest-and-timeline-alteration-11008 

[25] https://app.subsocial.network/@rmrkapp/kanaria-how-it-all-works-12172 

[26] https://url.rmrk.app/demobird 

[27] https://app.subsocial.network/@rmrkapp/singular-the-singular-place-for-minting-and-trading-16609 

[28] https://url.rmrk.app/dawn 

[29] https://www.coingecko.com/en/coins/kusama 

[30] https://medium.com/polkadot-network/statemint-generic-assets-chain-proposing-a-common-good-parachain-to-polkadot-governance-d318071b238 

[31] https://uniquenetwork.io/ 

[32] https://github.com/rmrk-team/rmrk-tools 

[33] https://docs.rmrk.app