跳轉到主要內容
本頁涵蓋三個用於錢包與持有者分析的 Cube:
  • BalanceUpdates (DWD) — 錢包逐事件的餘額變動
  • TokenHolders (DWS) — 代幣當前持有者快照
  • WalletTokenPnL (DWS) — 錢包按代幣的盈虧
以下示例均使用 network: sol(Solana)。其他受支援的鏈請改為 ethbscpolygon

How do I get a wallet’s token balances?

獲取錢包當前代幣餘額。本查詢返回該錢包持有的每種代幣的最新一條餘額更新事件。
query {
  BalanceUpdates(
    network: sol
    limit: {count: 50}
    ownerAddress: {is: "WALLET_ADDRESS"}
  ) {
    BalanceUpdate {
      Currency { MintAddress }
      Account { Owner }
      PostBalance
      PostBalanceInUSD
    }
    Block { Time }
  }
}
在 GraphQL IDE 中開啟 — 將上方查詢貼上到 IDE 中即可互動式執行,享受自動補全和 Schema 探索。
WALLET_ADDRESS 替換為要檢視的錢包。ownerAddress 選擇器按錢包所有者過濾餘額更新事件。
FieldDescription
BalanceUpdate.Currency.MintAddress代幣地址
BalanceUpdate.Account.Owner錢包所有者地址
BalanceUpdate.PostBalance更新後的代幣餘額
BalanceUpdate.PostBalanceInUSD餘額的 USD 價值
Block.Time餘額更新時間戳
  • 提高 limit:設 count: 200 以覆蓋持倉較多的錢包
  • 按價值過濾:增加 where: {BalanceUpdate: {PostBalanceInUSD: {gt: 1}}} 排除 dust 餘額

How do I get balance change history?

追蹤某錢包對特定代幣的餘額如何隨時間變化。
query {
  BalanceUpdates(
    network: sol
    limit: {count: 20}
    ownerAddress: {is: "WALLET_ADDRESS"}
    tokenAddress: {is: "TOKEN_ADDRESS"}
    orderBy: Block_Time_DESC
  ) {
    BalanceUpdate {
      PreBalance
      PostBalance
      PostBalanceInUSD
    }
    Block { Time }
    Transaction { Hash }
  }
}
FieldDescription
BalanceUpdate.PreBalance事件前餘額
BalanceUpdate.PostBalance事件後餘額
BalanceUpdate.PostBalanceInUSD更新後餘額的 USD 價值
Block.Time餘額變動時間
Transaction.Hash引起變動的交易
  • 識別累積:比較 PreBalancePostBalance — 當 PostBalance > PreBalance 表示在加倉
  • 時間範圍:增加 where: {Block: {Time: {since: "2025-03-01T00:00:00Z"}}} 限定時段
  • 更長曆史:將 count 提高到最多 10000 以覆蓋完整歷史
PostBalancePreBalance 的差值表示該事件的淨變動。正增量表示代幣流入;負增量表示流出。

How do I get a token’s top holders?

按餘額排序獲取某代幣的頭部持有者。
query {
  TokenHolders(
    network: sol
    limit: {count: 100}
    tokenAddress: {is: "TOKEN_ADDRESS"}
  ) {
    Token { Address }
    Holder { Address }
    LatestBalance
    LatestBalanceUSD
    FirstSeen
    LastSeen
  }
}
FieldDescription
Token.Address代幣地址
Holder.Address持有者錢包地址
LatestBalance當前代幣餘額
LatestBalanceUSD當前餘額的 USD 價值
FirstSeen該持有者首次持有該代幣的時間
LastSeen涉及該代幣的最近一筆交易時間
  • 巨鯨閾值:增加 where: {LatestBalanceUSD: {gt: 10000}} 只看大額持有者
  • 活躍持有者:增加 where: {LastSeen: {after: "2025-03-01T00:00:00Z"}} 篩選近期活躍
  • 持有者數量:使用 count 度量獲取持有者總數
TokenHolders Cube 屬於 DWS(Summary)層表 — 已預聚合,比逐條掃餘額更新快得多。適用於持有者排名與分佈分析。

How do I get wallet profit and loss?

獲取錢包按代幣的盈虧資料,包含買賣成交額與成交筆數。
query {
  WalletTokenPnL(
    network: sol
    limit: {count: 20}
    walletAddress: {is: "WALLET_ADDRESS"}
  ) {
    Wallet { Address }
    Token { Address }
    BuyVolumeUSDState
    SellVolumeUSDState
    BuyCountState
    SellCountState
    FirstTradeState
    LastTradeState
  }
}
FieldDescription
Wallet.Address錢包地址
Token.Address代幣地址
BuyVolumeUSDState買入該代幣累計花費(USD)
SellVolumeUSDState賣出該代幣累計收到(USD)
BuyCountState買入筆數
SellCountState賣出筆數
FirstTradeState首筆交易時間戳
LastTradeState最近一筆交易時間戳
  • 計算 PnLSellVolumeUSDState - BuyVolumeUSDState 為各代幣已實現盈虧
  • 仍在持倉:篩選 SellCountState < BuyCountState 找出錢包仍持有的代幣
  • 高頻代幣:按 BuyCountStateSellCountState 排序找出交易最頻繁的代幣
WalletTokenPnL Cube 使用 walletAddress 選擇器(不是 ownerAddress)。提供累計交易指標 — 適合組合分析與業績排行。

多鏈示例

query {
  BalanceUpdates(
    network: sol
    limit: {count: 10}
    ownerAddress: {is: "WALLET_ADDRESS"}
  ) {
    BalanceUpdate {
      Currency { MintAddress }
      PostBalance
      PostBalanceInUSD
    }
  }
}

下一步

DEX Trades

查詢 DEX 交易資料 — 代幣交易、錢包活動與頭部交易者。

Transfers

追蹤錢包間的鏈上代幣轉賬。

Pools & Liquidity

探索 DEX 池與流動性資料。

OHLC & Statistics

獲取 K 線、成交統計、TokenSupplyUpdates 與代幣後設資料。