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实施代币元数据

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 条评论

请先 登录 后评论