关键词:Solana API, GMGN V2, 实时交易数据, DEXTradeByTokens, PumpFun 新币, 区块链数据接口, OHLC 图表, 买入卖出统计, 交易量分析
Solana 的高速链数据令许多开发者、量化团队和交易爱好者又爱又恨:数据来得快、颗粒度细,但一旦缺少趁手工具,便会淹没在信息洪流中。这篇文章将带你手把手使用 GMGN Solana API(V2) 获取代币行情、实时成交、K 线、资金流动甚至新币初始发行信息,一包在手,随时掌握链上风云。
第一招:锁定「热搜榜」
应用:GMGN 趋势榜(V2 接口)
想要知道最近 1 小时“谁最火”,只需一个 DEXTradeByTokens 查询即可:
query {
Solana {
DEXTradeByTokens(
where: {
Block: {Time: {since: "1 hour ago"}}
Transaction: {Result: {Success: true}}
Trade: {
Side: {Currency: {MintAddress: {notIn: ["SOL","USDC","USDT"]}}}
Currency: {MintAddress: {notIn: ["SOL","USDC","USDT"]}}
}
}
limit: {count: 10}
orderBy: {descendingByField: "trades_count"}
) {
Trade {
Currency { Name Symbol MintAddress }
Dex { ProtocolName }
}
trades_count: count
}
}
}结果直接给出 10 个「最受关注币对」的基础信息及交易触发次数,适用于行情雷达、Telegram Bot 消息等场景。
第二招:实时盯盘
应用:单币对实时成交流(WebSocket Subscription)
当盯某个具体币对时,WebSocket 才是最佳姿势。以 SOL/FOO(FOO 为任意代币 Mint)为例:
subscription {
Solana {
DEXTradeByTokens(
where: {
Trade: {
Currency: {MintAddress: {is: "FOO_MINT"}}
Side: {Currency: {MintAddress: {is: "So1111...1112"}}}
Dex: {ProgramAddress: {is: "Raydium AMM"}}
}
Transaction: {Result: {Success: true}}
}
) {
Block { Time }
Trade {
Currency { Symbol }
Amount
PriceAgainstSideCurrency
PriceInUSD
}
Transaction { Signature Maker: Signer }
}
}
}触发一次就推送一次,源头延迟 <1 秒,可应对高频做市、算法套利。
第三招:解析流量密码
应用:Token 实时量价与资金取向
若你想看某 Token 近 5 分钟&1 小时的资金数据,可把 买入、卖出、独立买家、独立卖家、总量 乃至 交易额 一次捞完:
- makers:挂单者
- buyers / sellers:发出买单/卖单的钱包
- volume:区间成交金额(USD)
- price:5 min、1 h 极值&最新价
仅需把变量 $token、$side_token、$pair_address、$time_5min_ago、$time_1h_ago 分别替换即可。调用时最好带 dataset:realtime 以规避冷数据。
第四招:抢占流动性山头
应用:Top 10 成交 Pool
1 小时维度内,哪 10 个池子最热闹?用如下查询即可。把 Block: {Time:{since:"1 hour ago"}} 定期刷新即可生成流动性热力图,做市或做市对冲必备。
返回字段包含:
- 交易总量 & 总笔数
- 买入 vs 卖出占比
- 价格区间(start/min5/end)
第五招:画图、回测自定义周期
应用:OHLC 接口
想画 1 min、5 min、15 min K 线,可把 Time(interval: {in: minutes, count: N}) 改为相应参数即可,price 字段用 open、high、low、close 区分。
核心 Where 条件:
where: {
Trade: {
Currency: {MintAddress: {is: "TOKEN_MINT"}}
Side: {Currency: {MintAddress: {is: "So1111...1112"}}}
}
PriceAsymmetry: {lt: 0.1}
}加了误差过滤(PriceAsymmetry)能避免极端滑点对趋势线造成噪音。利用返回的 OHLC 数据,⾃由切换 TradingView/Echarts/C3 都能快速渲染。
第六招:一键找到「刚冒头」的新币
应用:监听 PumpFun 最新发射
PumpFun 的乐趣在于“首日狂暴涨跌”。以下订阅助你追踪「刚发布」的 Token:
subscription {
Solana {
TokenSupplyUpdates(
where: {
Instruction: {
Program: {Address:{is:"6EF8..."}}
Method: {is:"create"}
}
}
) {
Block { Time }
Transaction { Signer }
TokenSupplyUpdate {
Amount
PostBalance # 即发币总量
Currency {
Symbol Name MintAddress UpdateAuthority MetadataAddress Uri Decimals
}
}
}
}
}返回的数据包可直接拼合前端卡片:
符号、总量、图片 URI、开发者钱包等一应俱全,适合做前端新币公告墙,或后风控筛选 Rug Pull 风险。
实践小结:一张图搞懂调用场景
| 目的 | 关键词检索 | 示例查询 | 调用频度 | 通道 |
|---|---|---|---|---|
| 价格热度榜 | gmgn trending | 列表排行 | 每 5 分 | HTTP |
| 成交推送 | realtime trades | WebSocket | 实时 | WS |
| Token 深度 | buy sell volume makers | 多变量模型 | 每 1 分 | HTTP |
| 流动性榜单 | top traded pairs | 排序 + 聚合 | 每 5 分 | HTTP |
| 画K线 | OHLC | 时间聚合 | 分钟级 | HTTP |
| 猎新币 | pumpfun newly issued | WebSocket | 实时 | WS |
👉 点击把以上代码片段一键部署为云端微服务,实现链上监控即开即走。
常见疑问 FAQ
Q1:为什么我用 archive 数据集取不到 WebSocket 数据?
A:WebSocket 只提供实时 (dataset: realtime) 流。archive 或 combined 适合批处理历史复盘,订阅模式需切回 realtime。
Q2:Trade Side Account 字段丢失,怎么办?
A:Aggregate 查询(如 count、sum)对 Side Account 信息做了裁剪,建议改用单笔交易 (DEXTrades) 对应查询补齐。
Q3:时间格式必须 UTC 吗?能否用本地时区?
A:官方 API 统一 UTC + ISO8601,本地需自行转换。“北京时间减 8 小时”即可。
Q4:如何降低昂贵字段的费率?
A:去掉不必要的 PriceAsymmetry 或 uniq 聚合;将频繁变动的 interval 调高至 5 min,避免 1 min 粒度大量写入导致 QPS 爆表。
Q5:查询极限条数限制是多少?
A:HTTP 接口单条 query limit: {count: 10} 到 100 之间可自由调节,更大条数请用分页(cursor) 或日期切片。
Q6:GPU 资源是否需要?
A:WebSocket 仅需浏览器原生的 graphql-ws,服务端仅需常见 Node、Go、Python 线程即可;批量历史分析建议放 Spark 或者 DuckDB 跑。
结语
无论你是:
- NFT DEX 观察员,
- Meme 币短线猎人,
- 还是做市算法工程师,
掌握 GMGN Solana API V2 这 6 张王牌,你就能用最低代码成本、最高响应速度,把链上数据转化为可执行策略。最终达成:数据先行,交易无盲区。