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
Type | Description | Status | Mechanism |
---|---|---|---|
๐ผ๏ธ๐ท Image | Typical picture-based NFTs - could be used as profile pictures or placing in world into photo frames etc | Reading the | |
๐๐บ Character | Humanoid characters that can be used as the player's avatar, or used for non-player characters | Reading the | |
๐ชฉ๐ช Dynamic Object | Spawnable items that may be static or interactable - a chair, a jukebox, a quiz machine, etc | Reading the | |
๐๐ฉ 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 |
| The canonical name of the object in a userโs collection |
| The additional descriptive text for a user, used in the collections frontend react components |
| Used as a preview image for any collection item, and allows its usage as a profile picture |
| 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