Solana 60 天课程

2025年02月27日更新 77 人订阅
原价: ¥ 36 限时优惠
专栏简介 开始 Solana - 安装与故障排除 Solana 和 Rust 中的算术与基本类型 Solana Anchor 程序 IDL Solana中的Require、Revert和自定义错误 Solana程序是可升级的,并且没有构造函数 Solidity开发者的Rust基础 Rust不寻常的语法 Rust 函数式过程宏 Rust 结构体与属性式和自定义派生宏 Rust 和 Solana 中的可见性与“继承” Solana时钟及其他“区块”变量 Solana 系统变量详解 Solana 日志、“事件”与交易历史 Tx.origin、msg.sender 和 onlyOwner 在 Solana 中:识别调用者 Solana 计算单元与交易费用介绍 在 Solana 和 Anchor 中初始化账户 Solana 计数器教程:在账户中读写数据 使用 Solana web3 js 和 Anchor 读取账户数据 在Solana中创建“映射”和“嵌套映射” Solana中的存储成本、最大存储容量和账户调整 在 Solana 中读取账户余额的 Anchor 方法:address(account).balance 功能修饰符(view、pure、payable)和回退函数在 Solana 中不存在的原因 在 Solana 上实现 SOL 转账及构建支付分配器 使用不同签名者修改账户 PDA(程序派生地址)与 Solana 中的密钥对账户 理解 Solana 中的账户所有权:从PDA中转移SOL Anchor 中的 Init if needed 与重初始化攻击 Solana 中的多重调用:批量交易与交易大小限制 Solana 中的所有者与权限 在Solana中删除和关闭账户与程序 在 Anchor 中:不同类型的账户 在链上读取另一个锚点程序账户数据 在 Anchor 中的跨程序调用(CPI) SPL Token 的运作方式 使用 Anchor 和 Web3.js 转移 SPL Token Solana 教程 - 如何实现 Token 出售 基础银行教程 Metaplex Token 元数据工作原理 使用Metaplex实施代币元数据 使用 LiteSVM 进行时间旅行测试

Metaplex Token 元数据工作原理

本文介绍了 Solana 上为 SPL token 添加元数据的 Metaplex Token Metadata 标准。

我们已经部署并和 SPL 代币 进行了交互,但是它们都没有名称、符号或任何附加的元数据。相反,我们通过其 mint account 地址来识别每个代币。 与此相对,ERC20 代币包括用于读取代币名称和符号的函数(但值得注意的是,这些只是方便人类阅读的工具,没有任何东西可以阻止不同的代币具有相同的名称或符号)。 ERC721ERC1155 还包括一个 tokenURI 函数,该函数返回一个指向链下元数据的 URI。

但是正如我们目前所见,SPL mint account 没有名称、符号或 URI 字段。

Solana 上有两种主要的解决方案:

  • Metaplex 代币元数据标准
  • SPL Token-2022

Metaplex 代币元数据标准:这是在 Solana 上向代币添加元数据最广泛使用的方法。 当你看到带有图像的 NFT 或带有名称和符号的代币(例如著名的“dog wif hat”模因币)时,它们很可能正在使用此标准。 它通过链接到你的代币的单独元数据 account 来工作。 这与 ERC-721 的工作方式相反 —— 在 ERC-721 中,代币合约指向元数据,但在 Metaplex 中,元数据 account 指向代币 mint。

此图像显示了 SPL 代币 Mint、元数据 Account 和用于添加元数据的链下 JSON 之间的关系

此图像显示了 SPL 代币 Mint、元数据 Account 和用于添加元数据的链下 JSON 之间的关系

SPL Token-2022: 这是一个与原始 SPL 代币程序不同的程序,它包括对代币元数据和其他高级功能的内置支持。 尽管更现代,但在撰写本文时,它尚未像 Metaplex 标准那样被广泛采用。

今天我们将重点关注 Metaplex 解决方案,并在另一篇文章中介绍 Token-2022。

我们将把对 Metaplex 解决方案的介绍分为两部分:在本文中,我们将介绍 Metaplex 并讨论它如何处理 SPL 代币的元数据。 在下一篇文章中,我们将使用 Anchor 实现 SPL 代币的 Metaplex 元数据。

什么是 Metaplex,它如何提供代币元数据?

Metaplex 是一组构建在 Solana 上的开放标准和工具。 这些标准由 Metaplex 基金会维护,并已成为在 Solana 上创建和管理数字资产的主要方式。

实际上:

  • 当你在 Phantom 钱包中看到带有图像的 NFT 或代币时,该图像链接可能来自 Metaplex 元数据
  • 当代币在你的钱包中只有地址,而不是名称和符号时,它很可能正在使用 Metaplex 元数据
  • Solana 上流行的 NFT 收藏品(如 DeGods 或 Okay Bears)使用 Metaplex 标准

这就是它的样子:https://explorer.solana.com/address/EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm/metadata

Solana 区块链浏览器上的代币元数据截图

Metaplex 提供了几个工具,但我们现在的重点是 代币元数据程序,它允许你将元数据附加到任何 SPL 代币。

Metaplex 代币元数据程序

Metaplex 代币元数据程序,地址为 metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s,用于向 SPL 代币添加额外的元数据,例如名称、符号、图像和描述。 它创建并管理 元数据 account,这些 account 存储与特定 SPL mint 相关的结构化元数据。

就像 SPL 代币程序拥有所有 mint account 和 ATA 一样,Metaplex 代币元数据程序拥有其下的所有元数据 account。 这是一个可执行和可升级的程序。

从高层次上讲,该程序允许我们:

  1. 为 SPL 代币 mint 创建一个元数据 account,以在此 account 中存储结构化数据,如名称、符号和 URI
  2. 使用特定指令更新此数据

我们将在下面的“Metaplex 代币元数据程序指令”部分中更详细地介绍这些指令。

现在让我们看看这些元数据 account 是如何构建和创建的。

Metaplex 元数据 Account

Metaplex 元数据 account 是一个程序派生地址 (PDA),通过 Metaplex 代币元数据程序创建,用于将额外数据附加到 SPL 代币。 PDA 使用三个种子派生:字符串 "metadata"token_metadata_program_idmint_account_address

只有 mint 地址不同;"metadata" 字符串和程序 ID 是固定的。 这确保了只能为给定的 mint account 派生一个元数据 account。

虽然元数据 account 存储关于代币的基本链上信息,但它也可以保存指向链下资源的 URI。 例如,NFT 的元数据 account 可能会在链上存储代币名称和符号,而 URI 指向一个 JSON 文件,其中包含存储在 IPFS、Arweave 或 Web 服务器上的完整描述、图像和其他属性。

下图显示了 Metaplex 代币元数据程序和元数据 account 之间的关系。

一张图表,显示了代币元数据 account 和 mint account 之间的关系

下图显示了与我们讨论元数据 account 相关的字段,如果它们还没有完全理解,请不要担心,我们稍后会解释它们。

![一个表格,显示了元数据 acco...

剩余50%的内容订阅专栏后可查看

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论