如何在Solana上获取解析后的Pumpswap AMM池

本文介绍了如何使用Shyft API从Pump.fun AMM获取解析后的池信息。文章讲解了通过Shyft Super Indexers(GraphQL API)和Shyft DeFi APIs两种方法,获取Pump AMM上的池数据,并提供了代码示例和资源链接,帮助开发者快速访问和理解Solana上新兴的交易平台。

在本文中,我们将探索如何获取解析后的 Pump Fun 新推出的 Pump AMM 数据

get parsed pump swap amm pool data on solana cover

Pump.fun 是一个基于 Solana 的平台,允许通过 bonding curve 模型创建和交易代币(例如 meme 币)。此前,当一个代币完成 bonding curve 时,它们会迁移到 Raydium 以进行进一步交易。然而,Pump.fun 已将代币迁移过渡到其新推出的 Pump AMM。

在本博客中,我们将探索如何使用 Shyft API 从 Raydium Amm 获取解析后的池信息。

开始前

要开始,我们需要准备一些东西。

注册你的 Shyft 帐户并获取你的 Shyft API 密钥

x-api-key 是一个身份验证参数,它使你可以访问 SHYFT API。你可以从 Shyft 网站获取你自己的 API 密钥和 Shyft RPC URL。

获取你的 Shyft GraphQL URL

你还可以Shyft 网站获取你的 Shyft GraphQL URL,在你获得 API 密钥的同一位置。只需单击仪表板上的 Graph Ql 选项。

一个开发环境(如 NodeJS)来获取 RPC 和 API 数据

在此示例中,我们使用了 NodeJS,但任何其他支持 API 调用的开发语言(如 C#、Go、Java、Kotlin、Python 或 PHP)也可以使用

简介 — 涉及的步骤

在本文中,我们将探索从 Pump.fun AMM 获取解析后的池数据的两种方法

  • 使用 Shyft Super Indexers — 一组 GraphQl API
  • 使用 Shyft Defi API

使用 Super Indexers 获取解析后的池信息

Shyft 的 Super Indexers 通过 GraphQL API 提供 Solana 上 Pump swap AMM 的解析后的池数据。获得 GraphQL endpoint 后,你可以在 Hasura GraphQl explorer 中探索数据 here 或直接发出 GraphQL 请求,如以下示例所示。在这里,我们将池地址作为输入以获取解析后的池数据

async function getPoolDetailsByPoolAddress(address) {
  const SHYFT_API_KEY = "YOUR_SHYFT_API_KEY";
  //query to get pool details on PumpSwap by pool address
  const operationsDoc = `
    query MyQuery {
      pump_fun_amm_Pool(
          where: {pubkey: {_eq: ${JSON.stringify(address)}}}
      ) {
          base_mint
          creator
          index
          lp_mint
          lp_supply
          pool_base_token_account
          pool_bump
          pool_quote_token_account
          quote_mint
          pubkey
      }
  }
`; //you can cherrypick the fields as per your requirement

  const result = await fetch(`https://programs.shyft.to/v0/graphql/accounts?api_key=${SHYFT_API_KEY}&network=mainnet-beta`, //SHYFT's GQL endpoint
    {
      method: "POST",
      body: JSON.stringify({
        query: operationsDoc,
        variables: {},
        operationName: "MyQuery",
      }),
    }
  );

    const { errors, data } = await result.json();

    console.dir(data, { depth: null });
 }

getPoolDetailsByPoolAddress("DCQWy2Jx8vodKaznKdYWv5BXnXDgFgjHqFgKHypzr3x");
//pool address for which we are fetching data

你可以简单地将其复制并粘贴到 Replit 中并执行它以查看结果。收到的响应包含完整的解析后的池数据,包括 base_mint(池中涉及的代币之一),quote_mint(池中涉及的另一个代币),lp_mint(流动性池代币)以及许多其他代币,如 pool_base_token_accountpool_quote_token_account

{
    "pump_fun_amm_Pool": [\
      {\
        "base_mint": "3LPPX5giSRgVBkf9DXbdRi9GxZPCuY9yqxzMDFMcXGhi",\
        "creator": "83Cas69WaTJ15k2NtSRodLJh7p6cqt3WC2XEMJJMiECa",\
        "index": 0,\
        "lp_mint": "EjwSxbdpCmm1ofzEkbhj9SnNTR9xd7MNFyak2qAiU9t7",\
        "lp_supply": 100,\
        "pool_base_token_account": "AtSusre5nBcwbXP4epKAvULMAVTzzBFiabMkMvmNLAEY",\
        "pool_bump": 253,\
        "pool_quote_token_account": "9Pnb3uEWtssrec9hLZ1Ftb7YYWk3GDDQNHtY6Yhux3DH",\
        "quote_mint": "So11111111111111111111111111111111111111112",\
        "pubkey": "DCQWy2Jx8vodKaznKdYWv5BXnXDgFgjHqFgKHypzr3x"\
      }\
    ]
 }

使用 Shyft DeFi API 获取解析后的池信息

Shyft 新推出的 DeFi API 简化了对链上 DeFi 数据的访问。这些 API 提供了一种统一的方式来获取信息,而无需单独处理每个 DEX。以下示例说明了我们如何使用 Shyft DeFi API 获取涉及流动性对的解析后的池。

API endpoint

GET https://defi.shyft.to/v0/pools/get_by_pair

此 API 调用中使用的参数

  • tokenA:流动性对中的一个代币,在本例中是 baseMint 地址。
  • tokenB:流动性对中的另一个代币,对于 Pumpfun Amm 来说是 quoteMint。baseMint 和 quoteMint 的顺序在参数中无关紧要。
  • dex:我们从中获取池的 DEX 名称。这是一个可选参数,用于获取特定 DEX 的池。对于我们的情况,我们将其设置为“pumpFunAmm”(字符串)。
  • limit & offset:这些是用于分页的参数。请在此处here了解更多信息。

说明使用 DeFi API 获取池数据的完整代码是available here。请随意 Remix 它,添加你的 API 密钥,然后尝试一下。

收到的响应将包含解析后的池数据,其字段与返回的 GraphQL 响应非常相似。请注意,我们也可以使用 DeFi API 获取与单个池地址相关的解析后的池数据,请查看以下文档以获取更多详细信息。

{
    "success": true,
    "message": "Pools fetched successfully",
    "result": {
        "page": 1,
        "limit": 1,
        "dexes": {
              "pumpFunAmm": {
                "pools": [\
                    {\
                        "pool_bump": 254,\
                        "index": 0,\
                        "creator": "erAbhGh5x8ZhSQGpsMcvajKJzHPvoeFxodiVdzWKtzq",\
                        "base_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",\
                        "quote_mint": "So11111111111111111111111111111111111111112",\
                        "lp_mint": "9uXagk63fc4nWwY6NuokPnHeXZgzs3HJQ2ymKHpTTkai",\
                        "pool_base_token_account": "6d1YzpXmCWGmGCwfB5UVfh7SbSMf1Sohjt3NpdCXPLFq",\
                        "pool_quote_token_account": "AtoKZgnH6AhdUPbjJ4wx3y4toYYhASXTuLSxF2uQT1Ya",\
                        "lp_supply": 100,\
                        "pubkey": "5nmZbfXMdbye1vdpF1BaE1FkqZEnJ8JBFsmS15kENjpb",\
                        "lamports": 2359440,\
                        "_updatedAt": "2025-03-25T23:44:37.108Z",\
                        "slot": null\
                    }\
                ],
                "programId": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"
            }
        }
    }
}

结论

总而言之,PumpSwap 是 Pump.fun 代币的新交易场所。使用 Shyft 的 Super Indexers 和 DeFi API 等工具使开发人员可以轻松地从 Pump AMM 快速获取清晰的池数据。这有助于构建和了解这个新的 Solana 交易平台上发生的事情。

你可以探索我们的其他相关文章:Streaming Real-Time Data on SolanaReal-Time Data Streaming with gRPC: Accounts, Transactions, BlocksHow to Stream Real-Time Pump.fun Updates on Solana Tracking New Pools on Raydium

资源

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

0 条评论

请先 登录 后评论
Shyft_to
Shyft_to
江湖只有他的大名,没有他的介绍。