Overview
As part of Mainnet Update v11.79.0, we are upgrading how NFT ownership data is stored on The Root Network. This change is a technical refactor of the NFT Pallet and introduces a new data structure to support improved performance, greater scalability, and better system clarity when managing large-scale collections.
This upgrade will require brief downtime on mainnet (approx 24 hours), scheduled for July 23/24. During this period, core NFT-related operations including minting, bridging, transferring, and marketplace activity will be temporarily paused. Builders are encouraged to test their dApps and services during and after the Porcini (testnet) migration window to ensure continued compatibility.
Why This Upgrade Matters
The Root Network is designed to support immersive, large-scale content and gaming ecosystems. To meet growing demand and optimize for upcoming launches, we are implementing a more efficient storage model for NFTs.
This change provides a more stable foundation for future growth and enables:
- More efficient performance for large collections
- Simplified and maintainable data structures
- Improved support for complex token use cases
- Accurate gas modeling for multi-token operations
What’s Changing
The upgrade restructures the NFT pallet by splitting ownership and token info into two separate maps:
- Token Info Map (
TokenInfo
)
This map links each token_id
to its current owner and includes token locks and utility flags.
Useful for: Querying who owns a specific token
- Owner Map (
OwnedTokens
)
This map tracks which serials are owned by each account.
Useful for: Querying which tokens are owned by an address
Key benefits of this structure:
- Faster query performance
- More consistent storage logic across token features
- Sets the foundation for future enhancements to token logic
Note: This upgrade does not affect how metadata is stored or accessed. The metadata URI and collection-level metadata scheme will remain intact.
What Builders Need to Do
If your experience interacts with NFTs on The Root Network, we recommend testing the following flows:
- Standard ownership queries (
ownerOf
,balanceOf
, etc.) - NFT minting and transfer flows
- Marketplace listing, offers, and auctions
- NFT bridging (to and from The Root Network)
- Token approvals and ERC721 compatibility
- Any custom logic or scripts that directly reference NFT storage structures
Most integrations using RPC endpoints or the TRN SDK should not be impacted. Projects accessing data directly from storage will need to review the new structure.
Testing and Migration Timeline
Porcini Testnet Migration
Migration Date: July 17 UTC
Live Testing Window: July 17 during migration, and July 21 to 22 for post-migration regression
Porcini migration will only take a few hours, so we encourage projects to have test plans ready. This will be the most accurate preview of what to expect during the mainnet transition.
Mainnet Migration
Scheduled Window: July 23 to 24 UTC
NFT operations will be offline for approximately 24 hours. This includes:
- NFT minting
- NFT marketplace activity
- NFT bridging
FAQs
Is metadata affected?
No. All metadata and metadata_uri endpoints will continue to function as before.
Will this change affect EVM compatibility?
The NFT pallet is being upgraded, but the EVM layer remains the same. EVM transactions for precompile based collections (that use the NFT Pallet under the hood) will be down during the migration. Interactions through EVM contracts should behave as expected once migration is complete.
Will gas costs change?
Yes. Transactions involving multiple NFTs in a single call (such as batch minting) will now reflect slightly higher gas usage, aligned to on-chain computational and memory usage.
What extrinsics are impacted?
Many extrinsics are touched by this change. The most important ones to validate include:
- Every Extrinsic in the NFT pallet
- All NFT based Marketing extrinsics
- NFT bridging extrinsics
Below are all extrinsics that will have internal changes from this migration:
- NFT.create_collection
- NFT.transfer
- NFT.mint
- NFT.burn
- EthBridge.submit_event
- XRPL-Bridge.submit_transaction
- XRPL-Bridge.withdraw_nft
- NFT-Pegwithdraw
- Marketplace.sell
- Marketplace.buy
- Marketplace.auction
- Marketplace.make_simple_offer
- Marketplace.accept_offer
- XLS20.enable_xls20_compatibility
- XLS20.re_requestxls20_mint
- XLS20.fulfill_xls20_mint
- Crowdsale.initialize
- Crowdsale.distribute_crowdsale_rewards
- Crowdsale.claim_voucher
- Crowdsale.redeem_voucher
- Nfi.manual_data_request
- NFI.submit_nfi_data
- NFT.set_utility_flags
- NFT.set_royalties_schedule
- NFT.set_name
- NFT.set_mint_fee
- NFT.toggle_public_mint
- NFT.set_base_uri
- NFT.set_max_issuance
- NFT.set_owner
- NFT.set_token_transferable_flag
- NFT.issue_soulbound
- NFT.accept_soulbound_issuance
- NFT.set_additional_data
- NFT.min_with_additional_data
This update ensures The Root Network remains robust and performant as the ecosystem continues to grow. We appreciate the support from builders helping us test during the Porcini phase and encourage everyone to review their integrations ahead of the Mainnet migration window.
Let’s build the future, together.