Solana 实时交易数据全攻略:GMGN API V2 使用手册

·

关键词: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 小时的资金数据,可把 买入卖出独立买家独立卖家总量 乃至 交易额 一次捞完:

仅需把变量 $token$side_token$pair_address$time_5min_ago$time_1h_ago 分别替换即可。调用时最好带 dataset:realtime 以规避冷数据。


第四招:抢占流动性山头

应用:Top 10 成交 Pool

1 小时维度内,哪 10 个池子最热闹?用如下查询即可。把 Block: {Time:{since:"1 hour ago"}} 定期刷新即可生成流动性热力图,做市或做市对冲必备。

返回字段包含:


第五招:画图、回测自定义周期

应用:OHLC 接口

想画 1 min、5 min、15 min K 线,可把 Time(interval: {in: minutes, count: N}) 改为相应参数即可,price 字段用 openhighlowclose 区分。

核心 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 tradesWebSocket实时WS
Token 深度buy sell volume makers多变量模型每 1 分HTTP
流动性榜单top traded pairs排序 + 聚合每 5 分HTTP
画K线OHLC时间聚合分钟级HTTP
猎新币pumpfun newly issuedWebSocket实时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:去掉不必要的 PriceAsymmetryuniq 聚合;将频繁变动的 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 跑。


结语

无论你是:

掌握 GMGN Solana API V2 这 6 张王牌,你就能用最低代码成本、最高响应速度,把链上数据转化为可执行策略。最终达成:数据先行,交易无盲区