Blockchain Data API 接口参考
用 Data API 查询区块、交易、地址、代币等已公开链上数据,在请求头传入 API key,按调用量计量与计费;请求超出所选数据集覆盖范围时返回 422 no_coverage 且不计费,可先核对覆盖率。
概述
用这份 Blockchain Data API 参考构造 REST 请求,查询已索引的区块、交易、地址、代币、NFT、DEX 活动、代币化股票与数据集新鲜度。选择数据集、检查链支持情况时先看数据集目录;查询钱包代币余额与转账历史时参考钱包资产教程。
- 基础 URL:
https://api.blockvectra.com/v1/data——除/chains外,所有路由都以链标识为前缀(如https://api.blockvectra.com/v1/data/{chain}/…) - 协议:HTTP
GET(批量查代币元数据/{chain}/tokens:batch用POST),JSON 响应 - 认证:需要 API key——在请求头
x-api-key中传入你的 key。请求按 CU 计量与计费,仅对 2xx 成功响应计费 - 以太坊:数据覆盖以
GET /v1/data/chains的coverage.from_block为准,可用数据集也更少,见支持的链 → 以太坊 - TypeScript SDK (GitHub) · DEX 日价示例 · npm · WETH/USDG · robinhood_mainnet · 2026-10-01 UTC · JSON
npm install @blockvectra/data-api需要按游标续传历史?带检查点的 ERC-20 转账示例每次运行保存一页及该页原始 meta;用相同的固定查询和状态文件重跑,即从原来的 opaque cursor 继续。分页耗尽不等于历史完整,请另行核对 coverage。仅支持 ERC-20。安装预构建包即可直接运行,无需本地生成 schema 或从源码编译。
Data API 各操作的 CU 权重列于定价页,也可通过 GET /v1/plans 接口获取。具体请求与响应示例请参考快速上手 → 调用 Data API。关于路径版本、向后兼容规则与对接建议,请参阅 API 版本与兼容性。
链
Data API 按链提供索引数据:https://api.blockvectra.com/v1/data/{chain}/…。
各链支持的数据集与特性因链而异,完整支持矩阵见支持的链。GET https://api.blockvectra.com/v1/data/chains 会返回每条链的 features、coverage、finality 与 limits。请求超出数据集覆盖范围时返回 HTTP 422 no_coverage(不计费);请求未知或未公开的链名返回 HTTP 404,error.code 为 not_found(不计费;链名必须为全小写 slug)。
错误
每个错误响应都是 {"error":{"code","message"}};只有 409 not_indexed_yet 可能额外带 indexed_through(该链已索引到的最高区块);当整条链尚无任何索引数据时该字段不存在。客户最常遇到的错误码:
| 状态码 | error.code | 含义 | 建议操作 |
|---|---|---|---|
402 | insufficient_balance | 付费余额或免费额度已耗尽;余额已知时 error.data 附带 balance_units 与 balance_cu(不计费) | 在控制台账单页进行链上充值,或等待免费额度补足 |
404 | not_found | {chain} 未知或未公开,或对象不存在 | 修正请求 |
409 | not_indexed_yet | 请求超过最新已写入区块 as_of_block(附带 indexed_through)、哈希解析出的区块高于 as_of_block,或整条链尚无任何索引数据(不带 indexed_through) | 带 indexed_through 时轮询等待,直到区块号或 to_block 不高于它;不带时等待该链开始索引(GET /v1/data/chains 的 coverage.has_data 显示当前状态) |
422 | no_coverage | 永久性缺口:该链不支持此能力,或区块早于索引/trace 覆盖范围 | 修改请求;重试不会成功 |
429 | rate_limited | key 的 CU 速率超限(响应带 Retry-After)或账户调用速率超限(不带 Retry-After);不计费 | 等待 Retry-After 秒后重试 |
429 | cost_exceeds_burst | 单个请求的 CU 超过该 key 的突发容量;不带 Retry-After(不计费) | 拆小请求;按原样重试永远不会成功 |
503 | unavailable | 暂时不可用;响应带 Retry-After。当某条链的 coverage.from_block 暂为 null 时,对它的历史请求也返回此错误 | 等待 Retry-After 秒后重试 |
503 | gateway_overloaded | 账户跨所有 key、所有链的并发请求达到上限,或服务暂时繁忙;带 Retry-After: 1(不计费) | 降低本账户的并发请求数,按 Retry-After 等待后重试 |
接口一览
Chain
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /chains | 列出支持的链 |
| GET | /{chain}/blocks/{number} | 按区块号获取区块 |
| GET | /{chain}/blocks/hash/{hash} | 按哈希获取区块 |
| GET | /{chain}/blocks/{number}/transactions | 列出区块的交易 |
| GET | /{chain}/transactions/{hash} | 按哈希获取交易 |
Status
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/status/freshness | 各数据集的新鲜度与延迟 |
Addresses
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/addresses/{address}/transactions | 列出地址的交易 |
| GET | /{chain}/addresses/{address}/transfers | 列出地址的代币转账 |
| GET | /{chain}/addresses/{address}/balances | 列出地址的 ERC-20 余额 |
Tokens
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/tokens/{token}/transfers | 列出代币合约的转账 |
| GET | /{chain}/tokens/{token}/holders | 列出代币的持有者 |
| GET | /{chain}/tokens/{token} | 获取代币元数据 |
| POST | /{chain}/tokens:batch | 批量获取代币元数据 |
NFTs
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/nfts/{contract}/{token_id} | 获取单个 NFT 的所有者/持有者 |
| GET | /{chain}/nfts | 列出地址拥有的 NFT |
DEX
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/dex/swaps | 按资金池或代币列出 DEX 兑换 |
| GET | /{chain}/dex/prices | DEX 代币每日价格 |
Stocks
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/stocks | 代币化股票每日排行榜 |
| GET | /{chain}/stocks/{token} | 获取单个代币化股票 |
Traces
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /{chain}/blocks/{number}/traces | 整个区块的历史 callTracer 追踪树 |
| GET | /{chain}/transactions/{hash}/trace | 单笔交易的历史 callTracer 追踪树 |
最后更新: