NFT XCM
Agenda
Abstract
Prior art, Projected prior art, Context:
Why is it needed? What is the business case?
Trade-offs
Proposed Architecture and Scope
Abstract
Interoperability is a key value proposition for Polkadot. XCM delivered on this promise, allowing Polkadot’s parachains to freely exchange messages. However, NFTs are not covered by the existing XCM. Our team has embarked on the path to deliver this capability, to ensure completeness of Polkadot’s vision and allow its diverse tech stacks to work together and move NFTs from one parachain to another in the completely decentralized and secure way. Polkadot currently has 4 known Substrate NFT pallets in production, as well as EVM and Ink! NFTs on its parachains. NFT XCM therefore has a task not only to ensure easy transfers of NFTs between parachains, but also to serve as an common denominator - a standard way for parachains to understand each other.
We have completed comprehensive discussions with Core Developers of Polkadot, closely collaborated with Parity’s NFT and XCM teams to deliver the specification for the NFT XCM and the Proof of Concept - first ever NFT XCM exchange between Karura and Quartz, which completed Milestone 1 of this proposal. Further milestones proposed intend to create a production version of the solution that works on Substrate parachains, as well as attempt to create versions for EVM and Ink! In collaboration with all affected parachains and the whole ecosystem.
Prior art
Currently NFTs cannot be transferred from one parachain to another, except in a very specific and centralized way. One can not create a valuable collection in some game and use the NFTs as a collateral for loans on Polkadot DeFi parachains, for example. Attempts at point to point NFT bridges are short term fixes for one off projects, not working for Web3 goals.
Some external bridges are being put in place that may solve part of the problem, but they are designed mainly for communication with chains external to Polkadot and do not have the industrial strength, ease, speed and security that XCMP/HRMP as a protocol can deliver.
Work in progress on AssetHub can only deliver transfer of NFTs created on AssetHub, and as such does not hold universal value for the Polkadot ecosystem. Using that as the basis NFT projects created on any other parachain (vast majority of NFTs) do not have and will not have interoperability.
Therefore, we state that without solving for NFT XCM, Polkadot will not deliver on its mission, and will not serve as the best in class blockchain ecosystem.
Why
We see the need for the NFT XCM in 2 categories:
a) Interoperability (ability to move assets between chains) is a core value proposition of Polkadot. NFT XCM is needed to finish the job of interoperability that Polkadot promised, since NFT interoperability does not exist now in the ecosystem
b) As for specific use cases that may use the NFT in the near future, here are just a few examples:
i) NFT produced on one parachain needs to have access to a number of dApps if they are to have utility, and most will be on another parachain. DeFi chains don't do NFTs, and how else to combine them if not by sending an NFT from a host chain to a DeFi chain for collateral for a loan, for example. Only Centrifuge can do that today (maybe Moonbeam), but most parachains can't, including AssetHub.
ii) How do you launch DED NFTs? On AssetHub? You can't have games on AssetHub. You can't have DeFi on AssetHub. You can't have anything on just one parachain. You need many parachains if you're Polkadot. And for them to talk to each other, you need NFT XCM.
iii) We have minted Carbon Offset NFTs. With XCM, those can be used in any parachain to offset their carbon footprint for the parachain itself or for its dApps.
Trade-Offs
Proposed Architecture and Scope
Create on-chain and off-chain tools to enable easy NFT XCM integration, and a uniform XCM NFT transfer interface for use across most of the ecosystem parachains and their dApps.
Proposed Architecture and Scope
Proposed scope
Implementation steps
Final Steps to Making x-chain NFT Transfers Live
On Relay layer
What each parachain needs
What application devs need to use it
What users need to use it
Milestones and deliverables
Future: Cross-consensus metadata operations
Budget
Grand total | | Developers | Arch. + PM | Mgt | |
Hours | | 6860 | 1250 | 240 | |
Cost per hour, USD | | $100 | $100 | $150 | |
| | $686,000 | $125,000 | $36,000 | $847,000 |
Milestone | Item | Hours | | ||
| | Developer | Arch. + PM | Mgt | |
Milestone 1 | Work completed in 2023 | 1640 | 160 | 40 | 1840 |
Milestone 2 | For details see the budget section of the proposal | 3940 | 770 | 80 | 4790 |
Milestone 3 | For details see the budget section of the proposal | 640 | 240 | 80 | 960 |
Milestone 4 | For details see the budget section of the proposal | 640 | 80 | 40 | 760 |
Over $150k is dedicated to external team work - EVM, Ink!, Use case bounties and Education materials
Dependencies
Protocol level work is completed.
Parachain that wants to have NFT XCM functionality will need to:
Review pallet code and run the prepared tests to ensure it works on their parachain
Deploy Fee Estimation Runtime API
Audits - AssetHub is expected to deploy the xNFT pallet first, part of their process is a thorough review and audit. After that other parachains should be safe to deploy the pallet.
Maintenance - ORML approach will be used (or the code can be actually moved there). Tests will need to be updated, which will be open to public contributions. CI work should go along with it. Documentation will allow easy knowledge acquisition for others to do any maintenance work. Move to Polkadot SDK repo will be proposed and discussed.