新消息:Helius 收购 Light Protocol
如何使用 Helius 获取新铸造的代币
博客/开发

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

开发者体验工程师X 上的 Anam AnsariLinkedIn 上的 Anam Ansari
阅读需 6 分钟
目录

    简介

    Solana 模因币最近频频登上头条,$WIF 突破 35 亿美元,Boden 达到 3 亿美元。Popcat 和 Wen 最近也突破了 3.5 亿美元。Slerf 上线首日的交易量甚至超过了所有基于 Ethereum 的交易所。继去年 11 月 BONK 暴涨后,Solana 上创建的新代币数量达到了前所未有的水平。

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

    如何在 Solana 上创建代币?

    Solana 同时支持原生 SOL 和其他代币。Solana Program Library (SPL) 定义了 Solana 上同质化代币和非同质化代币(NFT)的通用标准。Ethereum 针对不同类型的非同质化代币(ERC-721)和同质化代币(ERC-20)制定了不同标准,而 Solana Program Library 并未针对不同代币类型单独制定标准。 

    Token Program

    Solana 上同质化代币和非同质化代币(NFT)的标准实现是 Token Program。它提供创建新代币类型和账户、转移和销毁代币等更多功能。Token Program 已经完备,目前没有添加新功能的计划,但可能会通过变更来修复重大或破坏性错误。

    不过,Token Program 存在局限性——开发者必须对其进行分叉才能添加新功能,这会让交易变得更加复杂且风险更高。为解决这一问题,Solana 推出了 Token-2022,其中包含一系列额外功能和增强特性,例如:

    1.  铸造扩展:保密转账、转账费用、关闭铸币账户、计息代币、不可转让代币、永久委托人、转账钩子、元数据指针、元数据。
    2. 账户扩展:入账转账必须附带备注、不可变所有权、默认账户状态、CPI 防护。 

    如需进一步了解 Token-2022,请参阅这篇文章。

    Solana 的 Token Program 允许我们创建铸币账户和代币账户。铸币账户包含代币的全局信息,而代币账户则存储钱包与铸币账户之间的关系。你可以使用以下代码或 spl-token-cli 创建代币。例如,在安装 spl-token-cli 后,在命令行中运行以下命令即可创建同质化代币:

    代码
    spl-token create-token

    Token Metadata Program

    铸币账户包含当前代币供应量等特定数据属性,但缺少名称和符号等标准化数据。为解决这一问题,Metaplex 推出了 Token Metadata Program。该程序使用由铸币地址派生的 PDA(程序派生地址),为同质化代币和非同质化代币附加额外数据。

    Token Metadata Program 最初是为了简化在 Solana 上创建 NFT 而开发的。不过,它也适用于 SFT,即半同质化代币。SFT 同时结合了同质化代币和非同质化代币的特征。它们最初表现得像同质化代币,可以与相同代币互换,且不会让任何一方损失价值。使用后,它们会失去交换价值,并获得收藏类非同质化代币的属性。SFT 以一种独特的账户类型运行,通过附加元数据来表示游戏或元宇宙环境中的特征。在某些场景下,SFT 凭借效率、成本效益、灵活性和更高的交易安全性,比 NFT 更受青睐。

    Token Metadata Program 还支持可编程 NFT(pNFT)。这一新的资产标准允许创建者为特定操作定义自定义规则,并以更精细的方式向第三方权限主体进行委托。无论 pNFT 是否已委托,其代币账户在 SPL Token Program 中始终处于冻结状态。这可以确保任何人都无法通过直接与 SPL Token Program 交互来绕过 Token Metadata Program。

    监控新代币 

    为了监控新铸造的代币,我们将设置一个 webhook。webhook 可用于监听链上事件,并在事件发生时触发特定操作。我们会将 webhook 配置为监听来自 Token Metadata Program 的 TOKEN_MINT 交易类型。目前支持该交易类型的来源如下(其他来源会被标记为 “UNKNOWN”): 

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

    你可以使用 Helius Dashboard 创建 webhook,也可以参考 API 文档通过代码创建。要通过 Dashboard 创建,请前往左侧面板中的 Webhooks 部分,然后点击 New Webhook。接下来,提供以下信息来配置 webhook:

    1. 网络: Mainnet/Devnet
    2. Webhook 类型:你可以选择 Enhanced、Raw 或 Discord。如果选择 Discord,则必须提交 Webhook URL,通知会由机器人格式化并直接发送。你可以参考此处的步骤,获取 Discord 机器人的 Webhook URL。如果选择 Raw,则无法指定交易类型。 
    3. 交易类型: 选择 TOKEN_MINT 以监听新铸造的代币*。* 你可以在此处查看程序支持的其他交易类型。 
    4. Webhook URL: 添加用于监听通知的端点(例如 Discord 机器人、网站等)。 
    5. 身份验证标头: 输入身份验证标头,以便向你的 webhook 传递 POST 请求。请注意,此项为可选项。
    6. 账户地址: 在此处添加 Token Metadata Program 地址:metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s。在其他情况下,你可以根据需要添加多个账户地址。如果希望接收交易中特定用户的消息,可以添加其地址。

    确认后,你的 webhook 即可使用。你可以根据自己的 Webhook URL 构建相应的前端。在这里,我们选择 Discord 作为 Webhook 类型,并提供 Discord 机器人的 Webhook URL,因此无需编写 Discord 机器人代码。我们会收到如下通知: 

    检索代币元数据

    你可以使用代币 ID(代币的铸币地址)获取特定代币的元数据。解析通过 Enhanced webhook 发送的 JSON 通知(webhook 类型设置为 Enhanced 时)。铸币地址位于 transferTokens 数组第一个对象的 "mint" 字段中。获得代币 ID 后,你可以使用 DAS API 提供的 getAsset 方法,检索有关该代币的更多信息。 

    例如,你可以使用 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 //return details about a fungible token
    	}
          },
        }),
      });
      const { result } = await response.json();
      console.log("Asset: ", result);
    };
    getAsset();

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

    总结

    本文介绍了如何在 Solana 上创建代币、什么是 SPL 代币,以及如何通过设置 webhook 来监控新代币,并使用 Helius 获取其元数据。如果你需要任何帮助或支持,欢迎通过 Discord 联系我们!

    请务必在下方输入你的电子邮箱地址,这样就不会错过 Solana 的任何最新动态。准备好深入探索了吗?立即阅读 Helius 博客上的最新文章,继续你的 Solana 之旅。

    资源

    订阅 Helius

    及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新

    放大图片