Interoperability

Guidance around MSquared's network and interoperability mechanisms

MSquared, besides being a platform for building high-density virtual world experiences, also features object interoperability as a first-class feature. This enables users to take their virtual possessions between many worlds with minimal work from you as a developer.

This interoperability is achieved through a combination of on-chain NFT records, an omnichain blockchain indexer, MML for interoperable object definition, and a mechanism for permissioned object storage and content moderation.

This guide explains in more detail how this mechanism works, and the current and in-development capabilities.

NFTs don't neccesarily need to be owned and custodied by users in a financially tradeable way - the same standard can be used for more traditional digital "entitlements" by using a mechanism called Soulbound Tokens

Interoperability Commitment

MSquared wants to help grow a network of interconnected experiences which the whole is greater than the sum of the parts - enabling free movement of users and their possessions between metaverses.

Part of the terms of using MSquared's platform is the commitment to this interoperability for at least user's appearance - their Characters, Clothing, Accessories and Emotes, given they pass your moderation policy.

Types of Interoperable Object

Below are currently planned types of interoperable objects, and their current implementation status

TypeDescriptionStatusMechanism

๐Ÿ–ผ๏ธ๐Ÿ“ท Image

Typical picture-based NFTs - could be used as profile pictures or placing in world into photo frames etc

Reading the image field on the NFT metadata

๐Ÿ’ƒ๐Ÿ•บ Character

Humanoid characters that can be used as the player's avatar, or used for non-player characters

Reading the mml field on the NFT metadata linking to an MML <m-character> - see MML Avatars

๐Ÿชฉ๐Ÿช‘ Dynamic Object

Spawnable items that may be static or interactable - a chair, a jukebox, a quiz machine, etc

Reading the mml field for a wss:// to a live MML object - see https://mml.io

๐Ÿ‘œ๐ŸŽฉ Accessory

Static 3D models attached to particular part of a Character such as hats, glasses, backpacks, etc

Currently supported as part of a Character

๐Ÿ‘•๐Ÿ‘– Clothing

Skeletal meshes layered on top of a base Character

Currently supported as part of a Character

๐Ÿฅณ๐Ÿ‘ Emotes

Short animations that can be played to express emotions or interact

Currently in exploration

Interoperable Ownership

Ownership between different metaverses is established by associating one or many web3 wallets with a particular user.

MSquared supports users linking self-owned web3 wallets such as MetaMask out of the box. Enterprise customers can request more bespoke integrations if they have existing web3 identity systems.

Delegation

Delegation is a method for NFTs (often high value ones) to be non-permanently granted in a read-only manner to another "hot" wallet which is used for more day-to-day interaction. MSquared supports both

https://warm.xyz/ and https://delegate.xyz/ (v1 and v2) mechanisms.

Ownership Logic

While delegation protocols technically support concurrent delegation of an NFT to multiple wallets, the following logic is in place to prevent scenarios where an NFT being used for access gating could be used to allow large numbers of people to share the same "ticket":

  • For any wallet, it can only be linked to one user account at a time

  • For any token, it can only be delegated to one wallet a time

    • If there are multiple delegations, the most recent delegation is prioritized

    • This is true across all supported delegation methods (eg- a recent warm.xyz delegation would take priority over a less recent delegate.xyz delegation)

User Collections

Successfully imported interoperable objects will be visible in the user's Collection , which combines both "foreign" interoperable objects across multiple blockchains with "native" off-chain digital goods for your metaverse.

Supported NFT Tokens & Metadata

We currently support ERC-721 and ERC-1155 tokens

Delegation of ERC-1155 balances is not currently supported

The following fields within an ERC-721/ERC-1155 metadata JSON are respected.

Field

Usage

name

The canonical name of the object in a userโ€™s collection

description

The additional descriptive text for a user, used in the collections frontend react components

image

Used as a preview image for any collection item, and allows its usage as a profile picture

mml

The URL to a static MML document containing an <m-character>. Allows the user to use it as a default avatar

โ€ฆ.

Other fields are imported, and available for querying in Unreal and Web APIs

Classification & Moderation

While the interoperable network is in Early Access, interoperable objects are currently restricted to those approved by MSquared directly, rather than being moderated - the wider moderated network will be launching later in 2024

Some types of interoperable objects may not be suitable for your particular experience. All objects within the interoperable network will be subject to a classification process, resulting in tags being applied to the object.

Metaverses will be able to define your interoperable object import policy based upon these tags.

Permissioned Storage

While many NFT projects host their interoperable object content in a publicly accessible location, for many projects this many be unwanted or impractical.

Permissioned Storage is a mechanism where interoperable object content URLs can be placed on-chain, but the underlying asset is not publicly available for download. The service ensures any reader owns the underlying NFT to get access to the content.

Permissioned objects are currently in early access with our Enterprise partners - please reach out via support if you are interested

Adding Objects to the Network

While the interoperability network is in early access weโ€™re interested in any interoperable content, starting with Avatars and Accessories.

If you have an NFT collection youโ€™d like to be part of the network please reach out on Discord!

Last updated