如何使用Helius获取新铸造的代币

  • Helius
  • 发布于 2024-04-04 11:16
  • 阅读 12

本文讨论了如何在Solana区块链上创建和监控代币,介绍了Solana程序库(SPL)的标准和Token Metadata Program。通过设置Webhook,用户可以实时获取新铸造代币的信息,以及如何使用API检索代币的元数据。

6 分钟阅读

2024年4月2日

简介

最近,Solana 的 memecoins 引起了关注,$WIF 超过 35 亿美元,而 Boden 达到 3 亿美元PopcatWen 最近也超过了 3.5 亿美元的标志。Slerf 在其首日交易量方面也超过了所有基于以太坊的交易所。在 BONK 的暴涨 之后,Solana 看到创造新代币的数量空前增加。根据 Solscan 数据,过去三个月,通过 Solana Program Library (SPL) 标准铸造的新代币数量增加了两倍。

实时新铸造 SPL 代币数据

本文探讨了如何在 Solana 上创建代币,什么是 SPL 代币,以及如何使用 Helius 监视新代币并检索其元数据。

如何在 Solana 上创建代币?

Solana 支持本地 SOL 和其他代币。Solana Program Library (SPL) 定义了在 Solana 上的可替代代币和非可替代代币(NFT)的通用标准。与以太坊不同,以太坊针对各种类型的非可替代( ERC-721)和可替代代币( ERC-20)制定了不同的标准,而 Solana Program Library 对不同代币类型没有单独指定的标准。

代币程序

在 Solana 上,可替代和非可替代代币(NFT)的标准实现是 Token Program。它提供创建新代币类型和账户、转移和销毁代币等功能,更多功能。Token 程序是 完整的,没有计划增加新功能。可能会有变更来修复重要/关键的错误。

然而,Token 程序是有限的——开发者必须进行分叉以添加新功能,这使得交易更加复杂和风险。为了解决这个问题,Solana 介绍了 Token-2022,提供了一套额外功能和增强,包括:

  1. 铸造扩展:保密转移、转移费用、关闭铸造、带利息的代币、不可转让的代币、永久代理、转移Hook、元数据指针、元数据。
  2. 账户扩展:要求对入站转移进行备忘,immutable 所有权,默认账户状态,CPI 保护。

要了解有关 Token-2022 的更多信息,请参考这篇 文章

Solana 的 Token 程序允许我们创建铸造账户和代币账户。铸造账户包含有关代币的全局信息,而代币账户存储钱包与铸造账户之间的关系。你可以使用以下 代码或 spl-token-cli 创建代币。例如,在命令行中运行此命令以创建可替代代币,前提是已安装 spl-token-cli

代码

spl-token create-token

代币元数据程序

铸造账户包含某些数据属性,例如当前代币供应量。但是,它们缺乏标准化的数据,例如名称和符号。为了解决这个问题,Metaplex 引入了 Token Metadata Program。该程序允许使用从铸造地址派生的 PDAs (Program Derived Addresses) 将其他数据附加到可替代和非可替代代币。

代币元数据程序

Token Metadata program 最初旨在简化在 Solana 上创建 NFT 的过程。然而,它也适用于 SFTs,即半可替代代币。SFTs 结合了可替代和非可替代代币的特性。它们最初表现得像可替代代币,这意味着它们可以与相同的代币进行交换,而不会对任何一方造成价值损失。使用后,它们失去了交换价值,获得了可收藏的非可替代代币的属性。SFTs 作为一个独特的账户类型进行操作,该类型附加了元数据以表示游戏或元宇宙环境中的特征。由于其效率、成本效益、灵活性和改进的交易安全性,SFTs 在某些上下文中优于 NFT。

代币元数据程序还支持 可编程 NFT (pNFTs)。该新资产标准允许创作者在特定操作上定义自定义规则,并更细致地委托给第三方机构。pNFT 的代币账户在 SPL 代币程序上始终被冻结,无论 pNFT 是否被委托。这确保没有人可以通过直接与 SPL Token 程序交互来绕过代币元数据程序。

监视新代币

为了监视新铸造的代币,我们将设置一个 webhook。Webhook 允许你监听链上事件,并在这些事件发生时触发特定操作。我们将配置我们的 webhook 以监听来自 Token Metadata ProgramTOKEN_MINT 交易类型。目前支持该交易类型的来源有 (其他来源将标记为 UNKNOWN ):

代码

 "TOKEN_MINT": [   "CANDY_MACHINE_V1",   "ATADIA",   "SOLANA_PROGRAM_LIBRARY" ]

Webhook 可以通过 Helius Dashboard 创建,或使用 API 参考 编码创建。要通过 Dashboard 创建一个,请转到左侧面板中的 Webhooks 部分并点击 New Webhook。然后,通过提供详细信息来配置 webhook,例如:

  1. 网络: 主网/开发网
  2. Webhook 类型:你可以选择增强/原始/Discord。如果选择 Discord,你必须提交 Webhook URL,并且你的通知将由机器人直接格式化并发送。你可以在 这里 参考获取 Discord 机器人的 Webhook URL 的步骤。如果选择原始,则无法指定交易类型。
  3. 交易类型: 选择 TOKEN_MINT 以监听新铸造的代币。你可以在 这里 找到计算机程序支持的其他交易类型。
  4. Webhook URL: 添加将监听通知的端点(例如,Discord Bot,网站等)。
  5. 身份验证头: 输入身份验证头以将 POST 请求传递到你的 webhook。请注意这是可选的。
  6. 账户地址: 将代币元数据程序地址添加在此处:metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s。对于其他情况,如果需要,可以添加多个账户地址。如果你希望听到交易中特定用户的消息,可以包含他们的地址。

Webhook 设置以监听新代币铸造

确认后,你的 webhook 就可以使用了,你可以根据你的 Webhook URL 构建适当的前端。在这里,我们选择 Discord 作为 Webhook 类型并提供了 Discord 机器人的 Webhook URL,因此我们不需要编写 Discord 机器人代码。我们将收到如下通知:

Discord Bot 发送的新代币铸造通知

检索代币元数据

你可以使用代币 ID(代币的铸造地址)来获取特定代币的元数据。解析通过 增强 webhook 发送的 JSON 通知(当 webhook 类型设置为增强时)。铸造地址可以在 transferTokens 数组的第一个对象中的 "mint" 字段中找到。一旦你有了代币 ID,就可以使用 getAsset 方法,该方法由 DAS API 提供,以检索有关代币的更多信息。

例如,你可以使用 getAsset 方法获取 Jito Staked SOL (JitoSOL) 的信息:

代码

const url = `https://mainnet.helius-rpc.com/?api-key=<api_key>`

const getAsset = async () => {
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 'my-id',
      method: 'getAsset',
      params: {
        id: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
        displayOptions: {
        showFungible: true //返回有关可替代代币的详细信息
    }
      },
    }),
  });
  const { result } = await response.json();
  console.log("资产:", result);
};
getAsset();

你可以在我们的 文档 中找到更多示例以及该方法的请求和响应的完整架构。

结论

在本文中,我们了解了如何在 Solana 上创建代币,什么是 SPL 代币,以及如何通过设置 webhook 和通过 Helius 获取它们的元数据来监控新代币。如果你需要任何帮助或支持,请随时通过 Discord 与我们联系!

请确保在下方输入你的电子邮箱地址,以便你不错过有关 Solana 新动态的更新。准备深入了解吗?今天就探索 Helius 博客 上的最新文章,继续你的 Solana 之旅。

资源

  • 原文链接: helius.dev/blog/how-to-f...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Helius
Helius
https://www.helius.dev/