# MRC-721

## 介绍

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` 路径下。

#### 要点说明

1. 存放在 `/nft/mrc721/` 路径下的所有 NFT 文件以及其他文件，均不接受 `modify`、`revoke` 和 `hide` 操作符。也就是说，MRC-721 协议下的所有文件都不能修改、撤销和隐藏。
2. `{collection_name}` 为任意字符，只要最后的路径符合 MetaID PIN 的路径规范即可。

***

### 专辑说明协议

#### 路径

`/nft/mrc721/{collection_name}/collection_desc`

该协议为对其所在路径的专辑的说明和介绍。只有存在 `collection_desc` 协议文件的 NFT 专辑才会被后端索引器索引。

#### 专辑说明协议格式

```json
{
  "name": "the full name of the collection",
  "totalSupply": 5, // 该专辑的最大发行量，可接受值范围[-1~1e12]；默认值为 -1，表示无限制；可选
  "royaltyRate": 5, // 该专辑的销售版税设置，单位为百分比，5 即为 5%，范围 0-20，默认值为 0；可选
  "desc": "description of the collection", // 可选
  "website": "https://the-website-of-the-collection", // 可选
  "cover": "metafile://your-nft-cover-pinid", // 可选
  "metadata": "any data if needed" // 可选
}
```

#### 要点说明

1. `collectionid` 为 `collection_desc` 协议的 PINID，`collectionid` 为专辑的索引值。
2. `totalSupply` 为专辑的最大发行量，索引器只索引专辑路径下与 `totalSupply` 值对应的 PIN。超过 `totalSupply` 数量的 PIN 视为不是该专辑的有效 PIN。例如，`totalSupply` 为 999，则只认为首先创建的前 999 个 PIN 为该专辑下的有效 PIN。
3. 每个专辑下只有一个 `collection_desc` 协议。如果一个 NFT 专辑有多个 `collection_desc` 协议，则只采用第一个，忽略后来的协议。

***

### NFT Item 说明协议

#### 路径

`/nft/mrc721/{collection_name}/item_desc`

该协议用于对专辑内各个 Item 的说明。此协议为可选项，是对相关 NFT Item 的补充性、额外性说明。即使缺失，也不会影响 NFT 专辑的创建和索引。

#### NFT Item 说明协议格式

```json
{
  "items": [
    {
      "pinid": "the-pinid-of-nft", // 可选
      "name": "the-name-of-the-NFT-Item", // 可选
      "desc": "the description of the specific NFT", // 可选
      "cover": "metafile://your-nft-cover-pinid", // 可选
      "metadata": "any arbitrary data you can place here" // 可选
    }
    // 可重复添加 item 对象
  ]
}
```

#### 要点说明

1. `item_desc` 是对专辑内各个 NFT 的描述性文件。
2. `item_desc` 为可选项，缺失时不影响后端索引器对该 NFT 专辑的索引。
3. 一个 NFT 专辑下允许存在多个 `item_desc` 协议文件。
4. 如有多个重复的 `pinid`，则采用先见原则。对于已存在的 `pinid` 的相关信息将忽略处理。
5. 如果 `pinid` 指向非本专辑的 `pinid`，则忽略处理。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.metaid.io/zh/zi-chan-xie-yi/mrc-721.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
