MRC-721

Please note that this protocol is still under testing on the testnet, and we will activate the protocol at an appropriate block height on the Bitcoin mainnet after thorough testing.

Introduction

MRC-721 is an NFT album protocol based on MetaID. Although each piece of data within the MetaID protocol is an NFT, we still need a specialized NFT album protocol to facilitate the display and sale of NFTs in album format. This protocol can be applied to various NFT albums, including music NFT albums, art creation NFT albums, book NFT albums, etc.

Protocol Format

Album

Base Path: /nft/mrc721/{collection_name}

Users should create NFT PINs under /nft/mrc721/{collection_name}, which signifies that the related NFTs belong to the album {collection_name}. The format of the PINs is not restricted.

For instance, if a user wants to create an NFT album named “metabot,” they should create all related NFT PIN files under the path /nft/mrc721/metabot.

Key Points

  • All NFT files and other files stored under the /nft/mrc721/ path do not accept modify, revoke, and hide operations. This means that all files under the MRC-721 protocol cannot be modified, revoked, or hidden.

  • collection_name can be any characters as long as the final path conforms to the MetaID PIN path specifications.

Album Description Protocol

Path: /nft/mrc721/{collection_name}/collection_desc

This protocol provides an explanation and description of the album at its respective path. Only NFT albums with a collection_desc protocol file will be indexed by the backend indexer.

Album Description Protocol Format:

{
	"name": "the full name of the collection",
	"totalSupply": 5, // Maximum supply of the album, acceptable values range from -1 to 1e12; default to -1, meaning unlimited; optional
	"royaltyRate": 5, // Sales royalty rate for the album, in percentage, 5 means 5%; acceptable range 0-20, default to 0; optional
	"desc": "description of the collection", // optional
	"website": "https://the-website-of-the-collection", // optional
	"cover": "metafile://your-nft-cover-pinid", // optional
	"metadata": "any data if needed" // optional
}

Key Points

  • collectionid is the pinid of the collection_desc protocol; collectionid is the index value of the album.

  • totalSupply is the maximum issuance of the album. The indexer only indexes PINs under the album path corresponding to the totalSupply value. PINs exceeding the totalSupply number are considered invalid for the album. For example, if totalSupply is 999, only the first 999 PINs created are considered valid for the album.

  • Each album can have only one collection_desc protocol. If there are multiple collection_desc protocols, only the first one is taken, and the others are ignored.

NFT Item Description Protocol

Path: /nft/mrc721/{collection_name}/item_desc

This protocol is used to describe each item within the album. It is optional and serves as a supplementary description of the related NFT items. Its absence does not affect the creation and indexing of the NFT album.

NFT Item Description Protocol Format:

{
"items":
[{
		"pinid":"the-pinid-of-nft", //optional
		"name":"the-name-of-the-NFT-Item",//optional
		"desc":"the description of the specific NFT",//optional
		"cover":"metafile://your-nft-cover-pinid",//optional
		"metadata":"any arbitrary data you can place here"//optional
	},
//repeat item object if needed
]
}

Key Points

  • item_desc is a descriptive file for each NFT within the album. It is optional, and its absence does not affect the backend indexer’s indexing of the NFT album.

  • An NFT album can have multiple item_desc protocol files.

  • If there are multiple duplicate pinids, the first one is used, and information about the existing pinid will be ignored.

  • If the pinid points to a non-album pinid, it will be ignored.

Last updated