Injective | Documentation
InjectiveGithub
Injective | 中文文档
Injective | 中文文档
  • 关于 Injective
  • 快速入门
    • 钱包
      • 创建钱包
      • 账户
      • 质押
      • 治理
      • 拍卖
    • 代币标准
      • INJ 代币
      • Token Factory
      • CW20 标准
    • 交易
      • Gas 和 Fees
  • 指南
    • 创建钱包
    • 桥接
      • From Ethereum
      • Using Wormhole
      • Using IBC
      • From Solana
    • 发布代币
    • 发布市场
    • Denom 元数据
    • 获取INJ
  • 工具包
    • injectived
      • 安装 injectived
      • 使用 injectived
      • 指令
    • Injective TS SDK
    • Injective Go SDK
    • Injective Python SDK
    • Injective CW SDK
    • The Graph
  • 参考
  • 术语表
  • 开发者
    • 快速入门
      • 指南
        • 测试网提案
        • 转换地址
        • 计算
          • 最低价格刻度
          • 最低数量刻度
    • 交易所开发者
      • 构建 DEX
      • 预言机提供方
    • Cosmwasm 开发者
      • 您的首个智能合约
      • 指南
        • 本地开发
        • 主网开发
        • 给部署地址白名单
        • 创建您的 Swap 合约
        • 创建 UIs
      • CW20 适配器
      • Injective Test Tube
    • 模块
      • Injective
        • 拍卖(Auction)
          • State
          • 消息
          • EndBlock
          • 事件
          • 参数
        • 交易所(Exchange)
          • 衍生品市场概念
          • 现货市场概念
          • 二元期权市场概念
          • 其他概念
          • 状态
          • 状态转换
          • 消息
          • 提案
          • BeginBlock
          • EndBlock
          • 事件
          • 参数
          • MsgPrivilegedExecuteContract
        • 保险(Insurance)
          • 状态
          • 状态转换
          • 消息
          • EndBlock
          • 事件
          • 参数
          • 改进
        • OCR
          • 概念
          • 状态
          • 消息
          • 提案
          • BeginBlock
          • 钩子(Hooks)
          • 事件
          • 参数
        • 预言机(Oracle)
          • 状态
          • Keeper
          • 消息
          • 提案
          • 事件
          • 改进
        • Peggy
          • 定义
          • 工作流
          • 状态
          • 消息
          • 处罚
          • EndBlock
          • 事件
          • 参数
          • 中继语义
          • 改进
        • 权限(Permissions)
          • 概念
          • 状态
          • 状态转换
        • 代币工厂(TokenFactory)
          • 概念
          • 状态
          • 消息
          • 事件
          • 参数
        • WasmX
          • 概念
          • 数据
          • 提案
          • 消息
          • 参数
      • 核心
        • Auth
        • AuthZ
        • 银行(Bank)
        • 共识(Consensus)
        • 危机(Crisis)
        • 分发(Distribution)
        • 证据(Evidence)
        • 费用授权(Feegrant)
        • 治理(Gov)
        • 群组(Group)
        • 铸造(Mint)
        • NFT
        • 参数(Params)
        • 惩罚(Slashing)
        • 质押(Staking)
        • 升级(Upgrade)
        • Circuit
        • Genutils
    • dApps 开发文档
  • 节点
    • 快速入门
      • 和节点交互
      • 运行节点
        • 设置密钥环
        • 加入网络
        • Cosmovisor
        • 升级您的节点
    • 验证者
      • 主网
        • Peggo
        • 规范链升级
          • Upgrade to 10002-rc1
          • Upgrade to 10002-rc2
          • Upgrade to 10003-rc1
          • Upgrade to 10004-rc1
          • Upgrade to 10004-rc1-patch
          • Upgrade to 10005-rc1
          • Upgrade to 10006-rc1
          • Upgrade to 10007-rc1
          • Upgrade to 10008 - Camelot
          • Upgrade to 10009
          • Upgrade to v1.10
          • Upgrade to v1.11
          • Upgrade to v1.12.0 - Volan
          • Upgrade to v1.12.1
          • Upgrade to v1.13.0 - Altaris
          • Upgrade to v1.13.2
          • Upgrade to v1.13.3
          • Upgrade to v1.14.0
          • Upgrade to v1.14.1
      • 测试网
        • 测试网 Peggo
    • 公共端点
    • 高级端点
    • Injective 索引器设置
  • 交易员
    • 快速入门
    • 文档
    • API 参考
  • 常用链接
    • Injective 101
    • Injective Hub
    • Injective 浏览器
    • Chain API Reference
    • Indexer API Reference
    • 测试网水龙头
Powered by GitBook
On this page
  • 目录
  • 摘要
  • 概念
  • Class
  • NFT
  • 状态
  • Class
  • NFT
  • NFTOfClassByOwner
  • Owner
  • TotalSupply
  • 消息
  • MsgSend
  • 事件
Export as PDF
  1. 开发者
  2. 模块
  3. 核心

NFT

Previous铸造(Mint)Next参数(Params)

Last updated 1 month ago

目录

摘要

x/nft 是根据 实现的 Cosmos SDK 模块,允许您通过集成该模块来创建 NFT 分类、创建 NFT、转移 NFT、更新 NFT,并支持各种查询。它完全兼容 ERC721 规范。

概念

Class

NFT

NFT 的全称是 Non-Fungible Tokens(非同质化代币)。由于 NFT 的不可替代性,它可以用来表示独特的事物。该模块实现的 NFT 完全兼容以太坊 ERC721 标准。

状态

Class

Class 主要由 id、name、symbol、description、uri、uri_hash 和 data 组成,其中 id 是该类别的唯一标识符,类似于以太坊 ERC721 合约地址,其余字段为可选字段。

  • Class: 0x01 | classID | -> ProtocolBuffer(Class)

NFT

NFT 主要由 class_id、id、uri、uri_hash 和 data 组成。其中,class_id 和 id 是标识 NFT 唯一性的二元组,uri 和 uri_hash 为可选字段,用于标识 NFT 的链下存储位置,而 data 是 Any 类型。使用 Any 的 x/nft 模块链可以通过扩展此字段进行定制。

  • NFT: 0x02 | classID | 0x00 | nftID |-> ProtocolBuffer(NFT)

NFTOfClassByOwner

NFTOfClassByOwner 主要实现使用 classID 和 owner 查询所有 NFT 的功能,不含其他冗余功能。

  • NFTOfClassByOwner: 0x03 | owner | 0x00 | classID | 0x00 | nftID |-> 0x01

Owner

由于 NFT 中没有额外的字段来指示 NFT 的所有者,因此使用额外的键值对来保存 NFT 的所有权。随着 NFT 的转移,键值对会同步更新。

  • OwnerKey: 0x04 | classID | 0x00 | nftID |-> owner

TotalSupply

TotalSupply 负责跟踪某一类别下所有 NFT 的数量。在该类别下执行铸造操作时,供给增加 1;执行销毁操作时,供给减少 1。

  • OwnerKey: 0x05 | classID |-> totalSupply

消息

在本节中,我们描述 NFT 模块的消息处理。

:::warning ClassID 和 NftID 的验证留给应用开发者处理。 SDK 不对这些字段提供任何验证。:::

MsgSend

您可以使用 MsgSend 消息来转移 NFT 的所有权。这是 x/nft 模块提供的一个功能。当然,您也可以使用 Transfer 方法实现自己的转移逻辑,但需要格外注意转移权限。 消息处理在以下情况下应失败:

  • 提供的 ClassID 不存在。

  • 提供的 Id 不存在。

  • 提供的 Sender 不是 NFT 的所有者。

事件

x/nft 模块定义了一个结构体 Class,用于描述一类 NFT 的共同特性。在该类别下,您可以创建各种 NFT,这相当于以太坊上的 ERC721 合约。该设计在 中定义。

NFT 模块发出在 中定义的 proto 事件。

ADR 043
Protobuf 参考
ADR 43
概念
Class
NFT
状态
Class
NFT
NFTOfClassByOwner
Owner
TotalSupply
消息
MsgSend
事件