The Graph

The Graph 上的 Kaia 支援將於 2026 年 8 月 31 日 終止。 自該日期起,Kaia 子圖將停止建立索引,且其查詢端點將不再傳回資料。
若您的 dapp 從 The Graph 上的 Kaia 子圖讀取資料,請依照 從 The Graph 遷移 的指引,在停用日期前遷移至 Goldsky、SubQuery 或自行託管的圖節點。 您的子圖程式碼將原封不動地沿用下來。
以下指南在服務仍運作期間供參考之用。
導言
在構建 dapp 時,獲取智能合約的歷史數據可能會令人沮喪。 The Graph 通過被稱為子圖的應用程序接口,提供了一種查詢智能合約數據的簡便方法。 圖形的基礎設施依賴於索引器的去中心化網絡,使您的 dapp 真正實現去中心化。
The Graph 將持續支援 Kaia 主網與測試網,直至 2026 年 8 月 31 日 為止。
快速入門
設置這些子圖只需幾分鐘。 要開始操作,請遵循以下三個步驟:
- 初始化子圖項目
- 部署和發佈
- 從您的應用程序中查詢
定價
- Studio 中的速率限制測試終點是免費的。
- 去中心化網絡的 API 調用按次付費,每 10 萬次查詢收費 4 美元。 前 100K 次查詢免費!
下面是一個步驟:
1. 初始化子圖項目
在 Subgraph Studio 上創建子圖
訪問 [Subgraph Studio] (https://thegraph.com/studio/) 並連接您的錢包。 連接錢包後,您可以點擊 "創建子圖"。 選擇名稱時,建議使用標題大小寫:"子圖名稱鏈名稱"。

然後,您將進入您的子圖頁面。 您需要的所有 CLI 命令都將顯示在頁面右側:

安裝圖形 CLI
在本地計算機上運行以下程序:
npm install -g @graphprotocol/graph-cli
初始化子圖
您可以直接從您的子圖頁面中複製,以包含您的特定子圖標題:
graph init --studio<SUBGRAPH_SLUG>
系統會提示您提供子圖的一些信息,如下所示:

輸入合約信息後,graph-cli 會嘗試從 blockexplorer API 獲取 ABI、StartBLock 和合約名稱。
不過,KaiaScan 的 API 還沒有準備好,所以當被要求重試時,只需說 "不"。 以下是手動獲取這些信息的方法:
-
ABI:您需要在運行
graph init的同一目錄下準備一個包含 ABI 的 json 文件。 從Kaiascan 上的合同頁面,進入 "合同 "選項卡,點擊 "查看代碼",就能複製 ABI。 將其保存為 json 文件,放在運行graph init的同一文件夾中。 在上面的截圖中,它被保存為abi.json。
-
啟動區塊:點擊創建合約的交易哈希值。 在那裡你會找到創建合同的區塊。

-
合同名稱:輸入合同名稱即可。 如果這是您在該子圖中索引的唯一一份合同,那麼使用默認的
Contract即可。
2) 部署和發佈
部署到 Subgraph Studio
首先運行這些命令:
$ graph codegen$ graph build
然後運行這些程序來驗證和部署您 的子圖。 您可以直接從 Studio 中的子圖頁面複製這些命令,以包含特定的部署密鑰和子圖標題:
$ graph auth --studio<DEPLOY_KEY>$ graph deploy --studio<SUBGRAPH_SLUG>
系統會要求您提供版本標籤。 您可以輸入類似 v0.0.1 的內容,但也可以自由選擇格式。
測試子圖
您可以在操場部分進行示例查詢,測試您的子圖。 詳細信息 "選項卡將顯示 API 端點。 您可以使用該端點從您的 dapp 進行測試。

將子圖發佈到圖譜的去中心化網絡中
一旦您的子圖可以投入生產,您就可以將其發佈到去中心化網絡中。 在 Subgraph Studio 的子圖頁面上,點擊 "發佈 "按鈕:

注:
- Kaia 暫時顯示為 "部分支持",因為為索引員解鎖獎勵的最終鏈上投票流程尚未完成。 目前,Edge & Node 的索引器(升級索引器)是唯一支持所有 Kaia 子圖的索引器。
- 儘管您的子圖正在索引來自 Kaia、以太坊或任何其他支持鏈的數據,但該圖的智能合約都在 Arbitrum One 上。
3. 查詢子圖
祝賀你 現在,您可以在分散式網絡上查詢您的子圖!
對於去中心化網絡上的任何子圖,只要將 GraphQL 查詢傳遞到子圖的查詢 URL(可在資源管理器頁面頂部找到),就可以開始對其進行查詢。
下面是 Messari 在 CryptoPunks Ethereum 子圖 中的一個例子:

該子圖的查詢 URL 為
https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/HdVdERFUe8h61vm2fDyycgxjsde5PbB832NHgJfZNqK
現在,您只需填寫自己的 API 密鑰,即可開始向該端點發送 GraphQL 查詢。
獲取自己的應用程序接口密鑰

在 Subgraph Studio 中,您會看到頁面頂部的 "API 密鑰 "菜單。 您可以在此創建 API 密鑰。
附錄
查詢示例
該查詢顯示了售價最昂貴的 CryptoPunks。
{ trades(orderBy: priceETH, orderDirection: desc) { priceETH tokenId }}
將其輸入查詢 URL 會返回此結果:
{ "數據":{ "trades":[ { "priceETH":"124457.067524886018255505", "tokenId":"9998" }, { "priceETH":"8000", "tokenId":"5822" },// ...
代碼示例
const axios = require('axios');const graphqlQuery = `{ trades(orderBy: priceETH, orderDirection: desc) { priceETH tokenId }}`;const queryUrl = 'https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/HdVdERFUe8h61vm2fDyycHgxjsde5PbB832NHgJfZNqK'const graphQLRequest = { method: 'post', url: queryUrl, data: { query: graphqlQuery, },};// Send the GraphQL queryaxios(graphQLRequest) .then((response) => { // Handle the response here const data = response.data.data console.log(data) }) .catch((error) => { // Handle any errors console.error(error); });