跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs.chainstream.io/llms.txt

Use this file to discover all available pages before exploring further.

本文介紹用於錢包與持幣者分析的 Cube:
  • BalanceUpdates(DWD)— 錢包維度的逐事件餘額變動
  • TokenHolders(DWS)— 代幣當前持幣者快照
  • WalletTokenPnL(DWS)— 錢包按代幣的盈虧(PnL)
以下示例均使用 network: sol(Solana)。其他支援的鏈可改為 ethbscpolygon

如何獲取錢包的代幣餘額?

查詢錢包當前代幣餘額。以下查詢返回該錢包持有的每種代幣的最新一條餘額更新事件。
query {
  Solana {
    BalanceUpdates(
      limit: {count: 50}
      ownerAddress: {is: "WALLET_ADDRESS"}
    ) {
      BalanceUpdate {
        Currency { MintAddress }
        Account { Owner }
        PostBalance
        PostBalanceInUSD
      }
      Block { Time }
    }
  }
}
在 GraphQL IDE 中開啟 — 將上方查詢貼上進去即可互動執行,並享受自動補全與 schema 瀏覽。
WALLET_ADDRESS 替換為要檢視的錢包。ownerAddress 選擇器按錢包所有者過濾餘額更新事件。
欄位說明
BalanceUpdate.Currency.MintAddress代幣地址
BalanceUpdate.Account.Owner錢包所有者地址
BalanceUpdate.PostBalance更新後的代幣餘額
BalanceUpdate.PostBalanceInUSD餘額的 USD 價值
Block.Time餘額更新時間戳
  • 提高 limit:將 count 設為 200 以覆蓋更多代幣(持倉較多的錢包)
  • 按價值過濾:新增 where: {BalanceUpdate: {PostBalanceInUSD: {gt: 1}}} 排除粉塵餘額

如何獲取餘額變動歷史?

跟蹤某錢包對特定代幣的餘額如何隨時間變化。
query {
  Solana {
    BalanceUpdates(
      limit: {count: 20}
      ownerAddress: {is: "WALLET_ADDRESS"}
      tokenAddress: {is: "TOKEN_ADDRESS"}
      orderBy: {descending: Block_Time}
    ) {
      BalanceUpdate {
        PreBalance
        PostBalance
        PostBalanceInUSD
      }
      Block { Time }
      Transaction { Hash }
    }
  }
}
欄位說明
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 的差值表示該事件的淨變動。正增量表示代幣流入;負增量表示流出。

如何獲取代幣頭部持幣者?

按餘額排序獲取某代幣的頭部持幣者。
query {
  Solana {
    TokenHolders(
      limit: {count: 100}
      tokenAddress: {is: "TOKEN_ADDRESS"}
    ) {
      Token { Address }
      Holder { Address }
      LatestBalance
      LatestBalanceUSD
      FirstSeen
      LastSeen
    }
  }
}
欄位說明
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(彙總)層表 — 已預聚合,查詢比逐條掃餘額更新快得多。適合持幣排名與分佈分析。

如何獲取錢包盈虧(PnL)?

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

多鏈示例

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

後續步驟

DEX 成交

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

轉賬

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

池子與流動性

探索 DEX 池子與流動性資料。

OHLC 與統計

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