以下为 MIN 标准的 NFT 的 Json Schema :
{
"issuer": {
"type": "string",
"description": "NFTs 的发行方唯一标识"
},
"id": {
"type": "string",
"description": "NFT 在发行方中的唯一标识"
},
"owner": {
"type": "string",
"description": "NFT 的所有权,它可以是一个合约地址"
},
"vest": {
"type": "string",
"description": "归属于另一个 NFT"
},
"metadata": {
"type": "string",
"description": "描述性资源地址,HTTP(s) / IPFS URI 等"
},
"protocol": {
"type": "string",
"description": "该 NFT 采用的协议,格式为 协议名称:协议合约地址,地址可省略"
},
"properties": {
"type": "array",
"description": "NFT 的属性集",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "属性名称"
},
"data": {
"type": "integer" | "string" | "array",
"description": "属性的值"
},
"slot": {
"type": "array",
"description": "插槽,可插入另一个 NFT",
"items": {
"$ref": "#"
}
}
},
}
}
}
发行方标识,这应该是一个合约地址。
应该尽可能地使用 metadata 来存储数据,它有一个 MIM 通用标准,同时具备扩展性,以满足不同协议的数据需求。
owner
表示 NFT 的所有者,但不代表该所有权用户真正拥有管理权。仅在下面几种情况下owner
才具备管理权:
vest
为空。vest
不存在。vest
最终指向的 NFT 的 owner
和本 NFT 的 owner
相同。归属代表了该 NFT 的上一级 NFT , A 的归属为 B,则可能为以下两种场景:
vest
一定为 B。vest
给 NFT 带来更多的灵活性,例如在一块土地上的广告牌 NFT ,它本身并不属于土地不可分割的一部分,也不属于土地的本质,我们不能将其设计进属性中,
NFT 的原始作者,应该是一个地址,且应当是不可变的。