Diving into NFT Interoperability and XCM’s Core Components
Diving into NFT Interoperability and XCM’s Core Components
Welcome to the third article of the NFT XCM educational series, where we explore NFT XCM’s tech, the latest updates, developments, and more!
In this article, we’ll explore XCM enhancements for NFT transfers, XCM’s core components and structure, how it works, and NFT interoperability on Polkadot.
Quick Recap
XCM, Polkadot’s Cross-Consensus Messaging, enhances interoperability by connecting parachains and projects alike, giving them and users the best user experience when transferring assets and/or tokens.
However, this was only available for Fungible Tokens (FTs), e.g., transferring tokens, but not unique assets like NFTs; thus, it was not possible to transfer NFTs between projects and parachains on Polkadot.
NFT XCM is an initiative developed and led by the Unique Network team, designed to simplify the transfer of NFTs (Non-Fungible Tokens) across Polkadot parachains and projects that will unleash the capabilities for the next generation of Web3.
The outline of this work and scope aims to fulfill Gavin Wood’s interoperability dream and develop what we know today as NFT XCM.
Let’s dive in.
Filling in the Gaps: XCM Enhancements for NFT Transfers
XCM is an agreement on the mechanism and rules for transferring assets between blockchains in the Polkadot ecosystem. XCM derives from 3 main key system components:
- The Chain Asset Manager
- XCM itself
- The Asset Transactor
The Chain Asset Manager exists alongside XCM and is a set of functionalities of each specific blockchain, including what assets it can store, what actions can be performed, and what unique ways to do it. In the Polkadot ecosystem, this can be a combination of pallets, modules, and other components of each particular chain.
A special component, the Asset Transactor, was developed and effectively allows the packing and unpacking of NFTs – the first stepping stone into what we see today as NFT XCM. It acts as a “translator” between the XCM language and the specifics of each parachain.
However, it’s important to note that XCM would only work if each parachain built the Asset Transactor themselves on their projects.
In the future, we plan to generalize to allow NFT transfers on all other parachains that wish to utilize this tech and send NFTs across different parachains, in addition to building out a UI platform for viewing NFTs and executing XCM transfers.
Diving Deeper: XCM’s Components & How It Works
You’ve learned 3 key system components. Let’s dive deeper into the other components of XCM and how they all work together:
- XCM programs/messages
- HRMP channels
- XCM frontend pallets, which construct XCM messages
The core of XCM is the programs sent between parachains (also called XCM messages). An XCM program consists of XCM instructions. The instructions form a predefined set of XCM actions by the Polkadot Technical Fellowship, such as “WithdrawAsset,” “DepositAsset,” “PayFees,” etc.
The messages are sent via special channels between parachains, called HRMP (Horizontal Relay-routed Message Passing) channels, where the Relay chain is responsible for delivering the XCM messages from one parachain to another.
The delivery is guaranteed; once the message is sent, it will arrive at the destination. However, it is not guaranteed that the message will be successfully executed; it depends on the state of the destination parachain (and the state of the reserve chain if it is not the destination).
To provide an API for a dApp to initiate an XCM transaction (such as an NFT cross-chain transfer), chains offer at least one XCM frontend pallet capable of constructing XCM programs and initiating their execution (note that the XCM frontend pallets are assumed to be conceptually a part of the Chain Asset Manager from the previous section).
The most used frontend pallets are pallet-xcm from Polkadot SDK and pallet-xtokens from the Open Runtime Module Library.
The dApps use these pallets to start XCM transactions. The pallets, in turn, construct XCM programs and hand them over to the XCM executor. Depending on the XCM frontend pallets’ implementation, they either send the needed XCM “sub-programs” to another chain themselves, or they make the XCM executor do this instead (via special XCM instructions such as “InitiateReserveWithdraw”)
Each chain contains the XCM executor that executes the XCM programs. This virtual machine can perform the supplied program’s instructions in order. The executor is triggered either by an XCM frontend pallet (initiating the XCM transaction) or the incoming XCM message (executing the program coming from another chain).
Most of the XCM instructions can be handled by the XCM executor alone. However, there are special instructions where the executor needs help from the Asset Transactor. These instructions manipulate assets within the chain (transfers them from one account to another, mint them, and burn them), e.g., “TransferAsset,” “WithdrawAsset,” “DepositAsset,” etc.
Each chain handles assets in its own way; that’s why the XCM executor needs a sort of “middleman” that understands the commands from the executor and can mutate the chain’s state accordingly.
One of the primary efforts of the XCM NFT was focused on tools for developing NFT Asset Transactors comfortably.
NFT Interoperability on Polkadot
NFT interoperability on Polkadot goes beyond just transferring an NFT or digital asset from Chain A to Chain B — it means enabling seamless functionality, usability, composability, and utility for NFTs across the ecosystem.
Imagine minting an NFT on one parachain (e.g., Moonbeam), using it in a game on another (e.g., Flappy WUD), and displaying it in a gallery on a third project or even on a NFT marketplace, like Unique’s or KodaDOT’s.
What makes this possible?
This is achieved thanks to the modular and composable nature of Polkadot’s architecture:
- Shared security and trust layer (Relay Chain): No need for third-party bridges
- XCM (Cross-Consensus Messaging): Unified message-passing across chains
- Customizable runtime pallets: Allowing each chain to define how they handle and interpret NFTs
- Asset Transactors for NFTs: Making sure NFTs can be correctly unpacked and executed by the receiving chain
Real-World Implementations and Project Examples
- Unique Network: As the core developer team behind NFT XCM, Unique has led the first working implementation of NFT interoperability between Asset Hub, Polkadot, and Unique. In 2024, they demonstrated this in a live demo, with a demo UI page coming to all developers and users to try this themselves.
- Moonbeam + Astar (Coming Soon): Work is ongoing to bring NFT XCM support to EVM-compatible parachains like Moonbeam and Wasm-compatible smart contract platforms like Astar.
- Zeitgeist: Zeitgeist explores the NFT XCM use case for their predictions market protocol in the next iteration of earnable NFT badges, designed to reward active participants on the platform.
- Acala: Unique Network is working alongside Acala Network to explore transferring Acala NFTs to Unique to leverage the Unique Network Marketplace and enable users to easily trade their NFTs.
- Evrloot: A leading game on the Polkadot network explores Customizable NFTs for their in-game characters, enabling players to change their character’s look, skills, and abilities with the power of digital assets, registered on-chain and secured by the network.
- … + many projects currently experimenting and learning about NFT XCM and the opportunities available for NFT development on Polkadot.
Interoperability Use Cases
- Cross-Chain Game Items: Use a sword NFT from an RPG game inside a Moonbeam-based dungeon crawler with the same metadata and utility intact.
- Web3 Gaming (TapNations): Bridging Web2 gamers to Web3 with in-game NFT implementations; players earn points and rank through levels in exchange for tokens.
- Metaverse Identity: Carry your NFT-based identity or wearables between Subsocial, Unique, and Astar-based metaverses without needing to “re-mint” them.
- Event & Access Passes: Mint an event NFT on one chain and use it to access experiences or discounts on other parachains.
- Fan Engagement: Connect with your favorite stars, celebrities, and influencers with a real-world fan engagement CRM experience; earn rewards and prizes, and participate in social communities with your NFT digital pass.
- Cross-Chain Asset Safeguarding: Polkadot’s Asset Hub can act as a secure fallback location for NFTs, safeguarding assets and preserving utility in the event of chain instability, clogged network, or game shutdowns. The NFT metadata remains on Asset Hub, ensuring you don’t lose the core of your NFTs.
The NFT XCM Educational Series
Learn more in our educational series, where we give exclusive development insights, learnings, progress updates, and milestone achievements – a hub for all things NFT XCM:
- Article 1: https://unique.network/blog/what-is-nft-xcm-an-introduction-to-interoperable-nfts-on-polkadot
- Article 2: https://unique.network/blog/approaching-nft-xcm-methods
- Article 3: XCM’s Core Components: This article!
- Article 4: Coming Soon!
Final Thoughts
NFT XCM paves the future for seamless interoperability for NFTs on Polkadot – driving next-gen tech for years to come and unlocking endless opportunities for limitless NFT innovation.
We’re strengthening the narrative that NFTs are not dead; they’re evolving into NFTs 2.0, focusing on real-world innovation, core infrastructure, gaming, AI, and art.
Join the NFTMozaic Ecosystem!
If you’re a team, project owner, or community member, join the NFTMozaic ecosystem! Get involved with respective teams (e.g, Marketing, Governance, Technical, or BD) and connect with other Polkadot ecosystem agents!
We’re seeking your unique stories! Developed something outstanding? Have a use case to share? Share with us your latest innovations, creations, and your projects to get featured on the NFTMozaic case study page:
Stay Up To Date
Follow us to get all the latest information, and join us as we shape the future of NFTs on Polkadot:
- NFTMozaic Website: nftmozaic.com
- Get involved with us: https://forms.gle/FyzZUTib42mhGekKA
- NFTMozaic Journal: https://journal.nftmozaic.com
- Follow us on 𝕏: @NFTMozaic
- Join our community: Telegram