本文介绍了如何使用Shyft API从Pump.fun AMM获取解析后的池信息。文章讲解了通过Shyft Super Indexers(GraphQL API)和Shyft DeFi APIs两种方法,获取Pump AMM上的池数据,并提供了代码示例和资源链接,帮助开发者快速访问和理解Solana上新兴的交易平台。
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 提供 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_account
和 pool_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 简化了对链上 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 Solana、Real-Time Data Streaming with gRPC: Accounts, Transactions, Blocks、How to Stream Real-Time Pump.fun Updates on Solana 和Tracking New Pools on Raydium。
- 原文链接: blogs.shyft.to/how-to-ge...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!