NFT Series

Multiverse NFT (EIP-5606)

An attempt to address the interoperability aspect of NFTs and “true” ownership across platforms.

Paolo Servillo
Coinmonks
Published in
5 min readNov 8, 2022

--

Introduction

These days, I came across an interesting Ethereum Improvement Proposal (EIP-5606). The EIP was created a few months ago and is in the review stage at the moment. Despite the proposal does not seem so mature, it brings to light a real problem regarding NFTs and the platforms where they are used.

Motivation

NFTs are largely used in metaverses, games or other blockchain platforms to manage assets like avatars, in-game items, physical assets and so on. Each platform typically has its separate EIP-721 or EIP-1155 token contract to integrate the NFT in its “universe”.

Apparently, there is no problem with that, but from a publisher’s point of view, this means that the same digital asset must be published on various platforms as a separate token.

An example will help!

Imagine that a company markets a new product, say a new sunglasses model. The company want to release this new model on several platforms in the form of a digital wearable. It must be minted as a separate NFT on each platform also if it is the same object.

How the same digital asset is replicated on different platforms

So, also when NFTs represent the same digital item, there is no relationship between their representation on different platforms. In this way, the concept of scarcity becomes hard to clearly delineate.

“NFTs lack of interoperability across platforms”

In this direction, the EIP-5606 specification is the first tangible attempt to address the interoperability aspect of NFTs and “true” ownership across platforms. It defines a standard “Multiverse NFT” that bundles the NFTs of other platforms.

How does it work

The EIP-5606 introduces the concept of Multiverse NFT, which represents a digital asset across multiple platforms. The Multiverse NFT contract defines a new kind of token that keeps the relationship between the unique digital asset and its associated platform-related counterpart (the EIP refers to them as delegated tokens).

The standard introduces the simple concept of the bundle. A bundle is essentially a set of delegated NFTs identified by a unique ID number (the multiverse token ID).

A publisher who intends to create a bundle of his NFTs created on different platforms has to “approve” them to the Multiverse NFT contract.

Then, the Publisher has to initialize the bundle. Once a bundle is initialized cannot be changed and:

  • a new multiverse token is minted to the Publisher
  • the relationship between the Multiverse NFT and its delegated NFTs is stored on the blockchain
Multiverse NFT: bundle initialization

Bundle

The bundle operation applies to a Multiverse NFT. It transfers the ownership of the delegated tokens to the Multiverse contract itself. Of course, before executing the bundle function, it is critical that the delegate NFTs were “approved” by the owner to the Multiverse NFT contract.

Only the owner of the Multiverse NFT (or an address with the BUNDLER role) can call the bundle function.

After that, the Contract owns the delegated NFTs tied to the Multiverse Token (not necessarily all of them, but this will be clear after).

Now, the bundled Multiverse Token allows treating its delegated NFTs as a whole. The owner may sell it. Selling means that the new owner may use/resell the delegated NFTs.

Unbundle

The unbundle operation allows the Multiverse NFT owner to sell or use individually the delegated NFTs across any of the platforms. Essentially, after unbundling, the ownership of delegated NFTs is transferred back from the contract to the original owner. Only the owner is allowed to call the unbundle function.

Reference implementation

The reference implementation of EIP-5606 can be found at: https://eips.ethereum.org/assets/eip-5606/contracts/MultiverseNFT.sol

IMultiverseNFT.sol

The interface IMultiverseNFT defines a DelegatedData struct, where information about the delegate NFT tokens on each platform is contained.

struct DelegateData {
address contractAddress;
uint256 tokenId;
uint256 quantity;
}

The variables contractAddress, tokenId and quantity are able to differentiate either the EIP-721 or the EIP-1155 tokens (this standard is fully compatible with EIP-721 and EIP-1155).

Partial bundling or unbundling is allowed. In fact, bundle and unbundle functions accept an array of DelegateData structs. So, for example, also if a user initialised a bundle with three delegated NFTs, he can bundle or unbundle less than three at any time (of course, never more than three).

abstract contract MultiverseNFT is
IMultiverseNFT,
AccessControl,
ERC721Full,
IERC1155Receiver

The abstract contract MultiverseNFT extends:

  • the IMultiverseNFT interface (of course)
  • an openzeppelin-based ERC-721 implementation (after all, the Multiverse NFT is an ERC-721 token as the others)
  • the IERC1155Receiver interface (to handle the receipt of the ERC1155 token type)
  • openzeppelin AccessControl (essentially to introduce the BUNDLER role)

Information about the relationship between Multiverse NFTs and relative delegated is stored in the multiverseNFTDelegateData mapping.

mapping(uint256 => DelegateData[]) public multiverseNFTDelegateData;

Here, the Multiverse token ID maps to an array of delegated data structs.

An important security consideration: as the transfer of ownership is realized by calling an external contract, reentrancy prevention measures should be applied.

Final consideration

Multiverse NFT allows treating the same digital asset on different platforms by the bundling/unbundling mechanism described before. Nevertheless, NFT fragmentation is still possible.

This is because the owner has the possibility to bundle or unbundle delegated NFTs selectively, detaching NFTs representing the same digital asset.

Considering a Multiverse NFT (already bundled) tied to 3 delegated NFTs (X, Y and Z), the following sequence of actions is possible:

  • the owner unbundles only the NFT X
  • the owner sells individually the NFT X to BUYER A
  • BUYER A removes the approval of NFT X to the Multiverse contract

Now, the owner can use or sell only NFT Y and NFT Z on their relative platforms. BUYER A can use or sell only NFT X. Now, also if the 3 NFTs logically refer to the same digital asset, they can be treated as separate objects.

Thank you for reading, I hope you enjoyed the article. Let me know what you think about it.

Read more from the NFT Series.

Reference

Gaurang Torvekar, Khemraj Adhawade, Nikhil Asrani, “EIP-5606: Multiverse NFTs [DRAFT],” Ethereum Improvement Proposals, no. 5606, September 2022. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-5606.

New to trading? Try crypto trading bots or copy trading

--

--

Paolo Servillo
Coinmonks

Blockchain technologies lover, Artificial Intelligence fervent advocate, Quantum Computing passionate, Agent simulation delighted