整理加密市場資料有一種很熟悉的痛苦。
你週一下載 ETH 收入,週二複製 Solana 交易量,週三再把 ETF 流入貼進試算表。等到月底準備更新報告,才發現其中一個網站改了欄位名稱,另一個資料源補回了三天前的數字,原本看起來很完整的儀表板,瞬間變成沒有人敢動的 Excel 古蹟。
Blockworks Data API 想解決的,正是這種「資料明明公開,整理起來卻像在拼失散多年的族譜」的問題。
它讓使用者透過程式直接取得 Blockworks Research 使用的鏈上指標、資產資料與圖表底層數據,接進 Python、Excel、BI 儀表板、排程工作或內部分析工具。
但我想先把期待調整到正確位置:API 解決的是資料存取與標準化,不會自動替你產生正確的投資結論。
我做數據分析時最怕的,不是 API 回傳錯誤,而是它每天都穩定回傳一個你誤解的數字。前者很快會被發現,後者可能安靜地躺在儀表板裡半年,直到有人根據它做了一個很貴的決策。
Blockworks Data API 是什麼?
Blockworks Data API 是一套以 REST API 形式提供的加密市場數據服務,主要輸出已經過整理的資產資料、鏈上指標、ETF、企業加密資產儲備及研究圖表資料。
按照 Blockworks 的說法,API 連接的是其研究平台使用的資料倉庫,資料已經經過索引、指標設計、清理與驗證,可以直接接入模型、儀表板及自動化報告。Blockworks API 官方介紹
目前官方支援清單約涵蓋305個項目,其中包括:
- 29條區塊鏈
- 136個DeFi協議與加密應用
- 97個ETF或相關資產管理產品
- 43家加密資產儲備公司
實際數量仍會隨官方新增項目而改變,最新狀態應以 Blockworks Projects Supported 頁面為準。
它不是區塊鏈節點 API
Blockworks Data API 與 Ethereum RPC、Solana RPC 或區塊瀏覽器 API 的用途不同。
節點 API 比較適合查詢:
- 某一筆交易是否成功
- 某個地址的資產餘額
- 特定區塊內容
- 智能合約事件
- 即時鏈上狀態
Blockworks Data API 則比較適合取得:
- 每日活躍地址
- 每日交易筆數
- 網路手續費與收入
- 穩定幣供應量
- DEX交易量
- 質押比率與收益
- ETF資產規模與流量
- 企業加密資產儲備
- 協議存款、借款與收入
簡單來說,節點 API 給你原始零件;Blockworks Data API 比較像已經整理好的分析材料。
它也不是高頻行情 API
Blockworks 的鏈上指標多數採用日頻資料,適合基本面追蹤、研究報告、週報、回測與長期監控,但不適合直接拿來做秒級或分鐘級交易。
如果策略需要即時成交價、訂單簿深度、資金費率或逐筆成交資料,仍應使用交易所 WebSocket 或專業市場行情服務。
把日頻鏈上資料接進高頻策略,就像拿每月財報判斷下一分鐘股價。資料本身沒有錯,只是時間尺度完全不對。
Blockworks API 可以取得哪些資料?
Blockworks API 目前大致分成資產、指標、圖表、市場統計及代幣透明度幾個層級。
資產資料:價格、市值、供應量與 OHLCV
Assets 相關端點可以取得加密資產基本資訊,並透過獨立端點或 expand 參數展開:
- 即時或最新價格
- 市值
- 流通與總供應量
- 市場交易資訊
- OHLCV價格資料
- Sparkline簡易走勢
這一層比較適合建立資產清單、價格看板或投資組合監控。
不過價格資料與鏈上基本面最好分開保存。如果把價格、市值、收入與活躍地址全部塞進同一張寬表,之後只要其中一個來源改版,整條資料管道就可能一起壞掉。
鏈上指標:API 最有價值的部分
Metrics 是 Blockworks Data API 的核心。
官方將指標整理成具有固定 identifier 的時間序列,例如:
- active-address-total:活躍地址
- transaction-total:交易總數
- transaction-fee-total-usd:美元計價手續費
- rev-usd:美元計價 REV
- stablecoin-supply-total-usd:穩定幣供應量
- dex-spot-volume:DEX現貨交易量
- staking-rate:質押比例
- lending-tvl:借貸協議TVL
指標資料通常包含名稱、說明、資料來源、頻率、幣別、資料型別、聚合方式及最後更新時間。Blockworks Metrics Catalog
這些 metadata 不是可有可無的附註。
例如,同樣是收入,Revenue、REV、Application Revenue 與 Trading Revenue 可能代表不同經濟活動;同樣是每日數字,SUM 與 LAST 的意義也完全不同。
在把指標放進模型前,我一定先確認三件事:
- 這個數字到底在衡量什麼?
- 它用SUM、AVERAGE還是LAST聚合?
- 單位是美元、原生代幣、比例還是筆數?
如果這三件事沒有確認,後面的機器學習只是在高速處理語意錯誤。
圖表資料:直接取得研究圖表的底層數字
Blockworks API 也提供 Charts 端點。
使用者可以先透過 /v1/charts 搜尋圖表,再使用圖表 ID 取得底層資料。目前官方文件範例顯示,可搜尋的圖表數量超過3,200張,內容包括:
- BTC與ETH區塊補貼
- L1使用狀況
- ETH質押收益
- MEV小費
- Arbitrum交易費用
- 協議收入與競爭比較
API 支援分頁、搜尋、排序與條件篩選,適合把研究平台上的既有圖表接進內部儀表板。Blockworks List Charts、Get Chart Data
這項功能對研究團隊很實用,因為不必重新撰寫每張圖的計算邏輯。
但我會保留圖表 ID、圖表名稱與擷取日期,而不是只保存數值。否則半年後看到一欄 btc_profit,你可能已經不記得它是礦工毛利、網路收入,還是某張圖自行計算的衍生指標。
ETF 與企業儲備資料
Blockworks 的支援項目還包括全球加密ETF及企業加密資產儲備。
可用資料涵蓋:
- ETF每日資金流
- ETF資產管理規模
- 30日滾動資金流
- 不同產品的市場占比
- 企業持有BTC、ETH、SOL等資產的數量
- 企業加密資產NAV
- 股票市值相對加密資產NAV的倍數
- 流通股數與企業價值
這一組資料適合研究ETF需求、企業財庫溢價,以及加密資產如何透過傳統證券市場傳遞。
我不會只因某家公司增持BTC就判定市場看多。還要一起看它是用現金、可轉債還是增發股票融資,以及公司相對資產淨值的溢價是否已經過高。
API 可以把資料送到你面前,但風險判斷還是需要人做。
如何取得 Blockworks API Key?
使用者需要先登入 Blockworks Research 帳戶,進入 Account Management,再到 API 頁面建立金鑰。
所有請求都必須在HTTP Header中加入:
x-api-key: YOUR_API_KEY
API 的基礎網址為:
https://api.blockworks.com
如果沒有提供金鑰或金鑰失效,通常會收到401 Unauthorized;如果帳戶方案沒有相應權限,則可能收到403 Forbidden。Blockworks API Authentication
官方文件仍保留分階段開放的說明,因此不同帳戶能取得的端點與資料範圍可能不完全相同。即使成功建立金鑰,也應實際測試需要的資產與指標是否包含在目前方案中。
不要把 API Key 寫進程式碼
最常見的錯誤是直接把金鑰貼進 Python 檔案,再把整個專案上傳到 GitHub。
即使後來把那一行刪除,金鑰仍可能留在 Git 歷史紀錄中。
比較安全的方式是存入環境變數:
BLOCKWORKS_API_KEY=你的金鑰
程式執行時再讀取:
import os
api_key = os.environ["BLOCKWORKS_API_KEY"]
正式環境則可以放在AWS Secrets Manager、Google Secret Manager、1Password或CI/CD的秘密變數中。
官方也建議開發、測試與正式環境使用不同金鑰,並定期輪替。如果某個服務出現異常請求,才不需要一次撤銷所有系統的權限。
Blockworks API 的使用額度是多少?
官方文件目前顯示,Standard Blockworks Research方案每月包含2,500次API請求,而且是以團隊為單位計算。
也就是說:
- 同一團隊建立多組API Key,不會增加總額度
- 團隊內不同成員的請求會合併計算
- 超過2,500次後,需要聯絡銷售或支援團隊
- 專用API方案的正式價格仍可能調整
完整規則可查看 Blockworks Usage & Rate Limits。
2,500次看起來不少,但如果每五分鐘抓一次資料,一個端點一個月就會使用超過8,000次。
由於多數鏈上指標是每日更新,通常沒有必要每分鐘輪詢。對我來說,比較合理的做法是每天固定抓取一至兩次,並將結果存進自己的資料庫。
另外,部分端點允許一次查詢多個項目。例如同一個收入指標,可以在一個請求中同時取得Ethereum、Arbitrum與Optimism資料,這比為每條鏈各打一個API請求節省很多額度。
使用 Python 取得 Blockworks 鏈上數據
一個比較實際的流程,不是直接猜指標名稱,而是先查詢指標目錄。
第一步:搜尋可用指標
import os
import requests
API_KEY = os.environ["BLOCKWORKS_API_KEY"]
response = requests.get(
"https://api.blockworks.com/v1/metrics",
headers={"x-api-key": API_KEY},
params={
"project": "ethereum",
"limit": 100
},
timeout=30
)
response.raise_for_status()
metrics = response.json()
for metric in metrics["data"]:
print(
metric["identifier"],
metric["name"],
metric["interval"],
metric["denomination"]
)
這段程式的目的不是取得指標數值,而是確認官方使用的identifier與資料定義。
Blockworks 官方也建議先使用List Metrics端點尋找穩定的指標識別碼,再呼叫單一指標資料。Blockworks List Metrics
第二步:取得多條鏈的時間序列
假設我們想比較Ethereum、Solana與Base的美元計價REV:
import os
import requests
import pandas as pd
API_KEY = os.environ["BLOCKWORKS_API_KEY"]
response = requests.get(
"https://api.blockworks.com/v1/metrics/rev-usd",
headers={"x-api-key": API_KEY},
params={
"project": "ethereum,solana,base",
"start_date": "2026-01-01",
"end_date": "2026-08-20"
},
timeout=30
)
response.raise_for_status()
payload = response.json()
frames = []
for project, rows in payload.items():
frame = pd.DataFrame(rows)
frame["project"] = project
frames.append(frame)
data = pd.concat(frames, ignore_index=True)
data["date"] = pd.to_datetime(data["date"], utc=True)
data["value"] = pd.to_numeric(data["value"], errors="coerce")
print(data.tail())
Blockworks 的時間序列回應通常以項目名稱作為第一層Key,每個項目底下再放置date與value。Blockworks Get Single Metric
這種結構對單一指標很清楚,但如果你要同時處理二十個指標,最好先轉換成自己的標準格式:
date | project | metric | value | unit | source | pulled_at
否則每個API回應都使用不同寬度的資料表,後面會很難維護。
從 API 到儀表板:完整數據管道怎麼設計?
真正穩定的系統不會讓儀表板直接呼叫外部API。
如果每次開啟頁面才即時向Blockworks請求資料,使用者一多,很快就會消耗額度;外部服務短暫異常時,整個儀表板也會一起壞掉。
比較可靠的架構可以拆成六層。
第一層:排程抓取
使用GitHub Actions、Airflow、Prefect、n8n或雲端排程器,每天固定呼叫API。
日頻資料通常一天更新一至兩次就夠了。除非官方明確標示更高頻率,否則不需要把抓取間隔設成五分鐘。
第二層:保留原始回應
API回傳的JSON不要立刻覆蓋。
我會保存:
- 請求網址
- 查詢參數
- 擷取時間
- HTTP狀態
- API回應內容
- 指標identifier
- 專案slug
這樣資料出現異常時,才能確認是來源修正、轉換程式錯誤,還是分析模型出了問題。
第三層:資料驗證
進入正式資料庫前,至少檢查:
- 日期是否重複
- value是否為空值
- 單位是否突然改變
- 最新日期是否落後
- 數值是否超出合理範圍
- 歷史資料是否被大幅修正
API資料仍可能因延遲事件、重新索引或方法更新而修訂。官方部分指標文件也明確提醒,日頻資料可能在延遲資料抵達後更新。
因此,我通常不只抓昨天,而是每天重新抓取最近三至七天,再使用date、project及metric作為唯一鍵進行upsert。
第四層:標準化與衍生指標
原始資料清理後,再計算:
- 7日與30日變化率
- 7日移動平均
- 30日Z-score
- 收入相對市值
- 手續費相對交易量
- 穩定幣供應成長率
- 活躍地址相對交易量
- ETF流入相對資產規模
這些衍生指標應由程式確定性計算,不要交給語言模型心算。
第五層:儲存與視覺化
資料量不大時,PostgreSQL或BigQuery已經足夠。個人研究也可以先使用DuckDB與Parquet,不一定要一開始就建立昂貴的雲端架構。
Power BI、Tableau、Looker Studio、Metabase或內部網站,都應讀取自己的資料庫,而不是直接連向外部API。
第六層:AI 解讀與警報
最後才輪到AI。
AI可以讀取已經整理好的異常指標、統計摘要與事件資料,產出週報、風險提示或待研究清單。
這個順序不能倒過來。先讓AI自己決定抓什麼、怎麼算、該相信哪個欄位,結果通常很有創意,但不一定很有用。
如何把 Blockworks 資料接進 AI 智能分析?
我比較推薦「程式負責計算,AI負責解釋」的分工。
例如系統每天取得ETH的REV、穩定幣供應、活躍地址與ETF流量後,先由Python計算:
- REV七日平均下降18%
- 穩定幣供應七日增加2.4%
- 活躍地址與30日平均相近
- ETF連續三日淨流入
再把這些結構化結果交給AI,要求它回答:
- 哪些指標方向一致?
- 哪些指標出現背離?
- 可能有哪些合理解釋?
- 還缺少哪些資料才能驗證?
- 哪些結論目前不能成立?
這比直接丟一整份CSV,然後問「ETH會不會漲」可靠得多。
AI 適合處理的工作
Blockworks Data API與AI結合後,適合自動化:
- 每日鏈上數據摘要
- 多條公鏈營運比較
- 協議收入異常偵測
- ETF與鏈上資金流交叉分析
- 企業加密資產儲備監控
- 研究報告初稿
- 指標背離提醒
- DAO治理與基本面資料彙整
AI 不應該直接負責的工作
AI不適合自行決定:
- 指標定義
- 財務比率公式
- 缺值填補方式
- 異常值是否刪除
- 不同公鏈是否能直接比較
- 真實交易下單
- 槓桿與部位大小
語言模型很擅長替數字組織故事。危險也正在這裡:只要給它兩條同時上升的曲線,它很容易替你補出一段聽起來合理的因果關係。
所以我會要求AI在每個結論旁附上:
- 使用的指標
- 觀察期間
- 起始值與結束值
- 變化幅度
- 資料來源
- 資料擷取時間
- 信心水準
- 可能的替代解釋
沒有這些資訊的「智能分析」,通常只是寫得比較流暢的市場評論。
一個實用的 AI 分析範例
假設系統發現Solana的DEX交易量大幅成長,可以先產生以下結構:
{
"project": "solana",
"observation_date": "2026-08-20",
"signals": {
"dex_volume_7d_change": 42.3,
"active_addresses_7d_change": 8.1,
"stablecoin_supply_7d_change": 1.7,
"revenue_7d_change": 13.4
}
}
接著再讓AI分析。
比較好的輸出應該是:
「Solana DEX交易量七日增加42.3%,但穩定幣供應只增加1.7%,代表交易活動增幅明顯高於鏈上資金存量。這可能來自既有資金周轉加快、短期投機或機器人活動,尚不足以證明有大規模新資金進入。」
比較危險的輸出則是:
「Solana生態全面爆發,大量資金正在進場,SOL可能即將大漲。」
兩段話都能由同一組資料產生。差別不在AI是否聰明,而在工作流程有沒有要求它區分觀察、解釋與預測。
使用 Blockworks Data API 最常見的五個錯誤
錯誤一:直接比較不同鏈的活躍地址
Ethereum、Bitcoin、Solana與各種Layer 2的帳戶及交易模型不同。
一個地址可能代表一名使用者,也可能是機器人、交易路由器、交易所熱錢包或智能合約。Solana高頻交易產生的地址與交易數,不能直接拿來和Ethereum L1判斷誰的「真實用戶」比較多。
錯誤二:把美元收入成長當成使用量成長
如果原生代幣價格上漲,即使使用者支付的代幣數量不變,美元計價收入也會增加。
研究收入時,最好同時觀察原生代幣與美元計價版本,避免把價格效果誤認成業務成長。
錯誤三:忽略 SUM 與 LAST
交易量通常適合使用SUM,TVL、供應量與持倉則通常使用期間最後一個數值。
如果把每日TVL加總成月度TVL,最後會得到一個很大的數字,但那個數字沒有實際經濟意義。
Blockworks API的aggregation欄位會標示指標聚合方式,建立資料管道時應保留下來。
錯誤四:沒有處理歷史修訂
鏈上資料可能因區塊重組、標籤更新、延遲資料或方法調整而被修正。
不要假設昨天存下來的歷史值永遠不會改。可以定期重新抓取短期窗口,並針對大幅修訂發出資料品質警報。
錯誤五:讓每個使用者直接呼叫 API
這不只會快速消耗額度,也可能讓API Key暴露在瀏覽器或手機App中。
正確方式是由後端統一呼叫Blockworks API,再把必要結果提供給前端。官方也明確建議不要把Key嵌入客戶端應用程式。
Blockworks Data API、Dune與DefiLlama怎麼選?
這三種工具的定位並不完全相同。
Blockworks Data API 適合需要標準化指標、研究圖表、ETF、協議收入與企業儲備資料的團隊。優點是資料已經整理好,接入速度快;限制則是只能使用平台提供的指標與項目。
Dune 適合需要自訂SQL、深入分析合約事件與建立特殊鏈上指標的研究者。自由度比較高,但也需要自行負責查詢邏輯、資料建模與驗證。Blockworks 本身也公開表示,其部分內部資料管道會使用Dune的索引與分析基礎設施。Dune Blockworks 案例
DefiLlama 適合快速取得TVL、穩定幣、收益、DEX交易量與協議費用等廣泛DeFi資料,而且提供免費API與付費Pro API。DefiLlama API官方文件
如果需要單筆交易、地址或即時合約狀態,則應直接使用RPC、區塊瀏覽器或鏈上索引服務。
我不會把它們看成四選一。比較成熟的資料管道通常會使用Blockworks取得標準化研究指標、Dune處理自訂鏈上查詢,再用RPC或其他來源做關鍵數字驗證。
Blockworks Data API 常見問題
以下問題是以「Blockworks API怎麼用」、「Blockworks Data API Python」、「Blockworks API rate limit」及「onchain data API for AI analysis」等中英文自然問句測試搜尋與AI答案頁後,反覆出現的實際需求。
Blockworks Data API 是免費的嗎?
目前官方文件顯示,Standard Blockworks Research方案每月包含2,500次API請求。這不是完全公開、無須登入的免費API,使用者需要Blockworks Research帳戶及具備相應權限的API Key。
Blockworks Data API 如何驗證身分?
所有請求都要在HTTP Header中加入x-api-key。金鑰可從Blockworks Research的Account Management頁面建立,並且與帳戶的團隊及方案綁定。
Blockworks API 可以取得即時價格嗎?
Assets端點可以取得資產價格及市場資訊,但大部分鏈上Metrics採用日頻資料。若需要秒級成交、訂單簿或即時資金費率,應使用交易所行情API。
Blockworks API 可以用Python串接嗎?
可以。使用requests送出GET請求,再將JSON轉換成Pandas DataFrame即可。官方文件也提供Python、cURL與TypeScript範例。
Blockworks Data API 可以直接接入 ChatGPT 或其他 AI 嗎?
可以透過自己的後端、函式工具或AI Agent呼叫API,但不建議讓語言模型直接處理未驗證的原始回應。較穩定的方式是先完成資料清理、統計計算與異常檢查,再把結構化摘要交給AI解讀。
Blockworks API 適合量化交易嗎?
適合研究日頻基本面因子、回測及市場狀態分類,但不適合作為高頻交易的唯一資料源。正式回測還必須處理資料發布時間、歷史修訂與前視偏誤。
每月2,500次請求夠用嗎?
對每日更新的個人研究或小型儀表板通常足夠,但前提是使用快取、批次查詢與增量更新。如果每次開啟頁面都重新呼叫API,額度很快就會耗盡。
結語:API 讓資料流動,判斷仍然需要人
Blockworks Data API最實際的價值,不是讓我們取得更多數字,而是讓同一套數字可以穩定、重複地進入分析流程。
當資料管道建立完成,研究人員不必每天下載CSV,可以把時間用在更重要的問題上:協議收入為什麼增加、穩定幣是否真的流入、ETF買盤能否持續,以及鏈上活動背後究竟是使用者還是機器人。
AI則可以協助整理異常、生成摘要與提出驗證方向,但它不應該代替指標定義、資料品質檢查與風險管理。
對我來說,一套真正有用的智能分析系統,不是每天告訴我哪個幣會漲,而是在市場出現一張漂亮圖表時,先提醒我確認樣本、時間尺度、資料來源,以及還有哪些合理解釋。
資料越容易取得,懷疑反而越不能省略。
立即體驗安全可靠的交易平台,點擊加入: https://www.okx.com/join?channelId=42974376