# MRC-721

{% hint style="warning" %}
請注意該協議仍在測試網測試中,我們會在充分測試後在比特幣主網合適的區塊高度啟動該協議
{% endhint %}

## 介紹

MRC-721 是一個基於 MetaID 的 NFT 專輯協議。儘管在 MetaID 協議中，每條數據均為 NFT，但我們仍需要一個專門的 NFT 專輯協議，以方便 NFT 以專輯方式展示和銷售。本協議可適用於各種 NFT 專輯，包括音樂 NFT 專輯、藝術創作 NFT 專輯、圖書 NFT 專輯等。

## 協議格式

### 專輯

#### 基礎路徑 `/nft/mrc721/{collection_name}`

MRC-721 採用路徑區分不同的專輯，用戶應該將 NFT PIN 創建在`/nft/mrc721/{collection_name}` 下，即約定了相關 NFT 歸屬於專輯{collection\_name}，PIN 格式不限。

如用戶要創建名字為“metabot”的 NFT專輯，則將所有相關 NFT PIN 文件創建在`/nft/mrc721/metabot` 路徑下

#### 要點說明

* 存放在`/nft/mrc721/` 路徑下的所有 NFT 文件以及其他文件，均不接受 modify，revoke 和 hide 操作符；也就是MRC721 協議下的所有文件都不能修改、撤銷和隱藏。
* collection\_name為任意字符，只要最後的路徑符合 metaid pin 的路徑規範即可

### 專輯說明協議

#### 路徑: `/nft/mrc721/collection_name}/collection_desc`

該協議為對其所在路徑的專輯的說明和介紹。只有存在collection\_desc 協議文件的 NFT 專輯才會被後端索引器索引。

#### 專輯說明協議格式：

```json
{
	"name":"the full name of the collection",
	"totalSupply":5, //該專輯的最大发行量，可接受值 ;range[-1~1e12]；default to -1，means unlimited；optional
	"royaltyRate":5, //該專輯的銷售版税設置，單位為百分比，5 即為 5%，可用範圍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
}
```

#### 要點說明

* collectionid 為`collection_desc` 協議的 pinid; collectionid為專輯的索引值；
* `totalSupply`為專輯最大的發行量，索引器只索引專輯路徑下與`totalSupply`值對應的 PIN。超過`totalSupply`數量的 PIN 視為不是該專輯的有效PIN。如`totalSupply`為 999，則只認為首先創建的前 999 個 PIN 為該專輯下的有效 PIN。
* 每個專輯下只有一個 collection\_desc 協議。NFT 專輯有多個 collection\_desc 協議，則只採取第一個忽略後來增加的。

<br>

### NFT Item 說明協議

#### 路徑: `/nft/mrc721/{collection_name}/item_desc`

該協議用於對專輯內各個 Item 說明的協議。該協議為可選項，為對相關 NFT Item 的一個補充性，額外性說明。如缺失不影響 NFT 專輯的創建和索引。

#### NFT Item 說明協議格式

```json
{
"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
]
}
```

#### 要點說明：

* `item_desc`為對專輯內各個 NFT 的描述性文件；item\_desc為可選項，如缺失不影響後端索引器對該 NFT 專輯的索引。
* 一個 NFT 專輯下允許存在多個 `item_desc`協議文件
* 如有多個重複 pinid，則採用先見原則，對於已存在的 pinid 的相關信息將忽略處理；
* 如 pinid 指向非本專輯的 pinid，則忽略處理。
