Data API

基于各支持链索引数据的 REST 接口。

概述

Data API 提供了 REST 端点来查询区块链索引数据——区块、交易、地址、代币、NFT、DEX 活动、代币化股票和数据集新鲜度。

  • 基础 URL:https://dev-api.blockvectra.network/v1/data——除 /chains 外,所有路由都以链标识为前缀(如 https://dev-api.blockvectra.network/v1/data/{chain}/…)
  • 协议:HTTP GET(批量查代币元数据 /{chain}/tokens:batch 用 POST),JSON 响应
  • 认证:需要 API key——在请求头 x-api-key 中传入你的 key。请求按 CU 计量与计费,仅对 2xx 成功响应计费
  • 以太坊(Beta):只提供最近约 30 天的数据,可用数据集也更少,见支持的链 → 以太坊

Data API 各操作的 CU 权重列于定价页,也可通过 GET /v1/plans 接口获取。具体请求与响应示例请参考快速上手 → 调用 Data API。

链

Data API 按链提供索引数据:https://dev-api.blockvectra.network/v1/data/{chain}/…。

各链支持的数据集与特性因链而异,完整支持矩阵见支持的链。GET https://dev-api.blockvectra.network/v1/data/chains 会返回每条链的 features、coverage、finality 与 limits。请求超出数据集覆盖范围时返回 HTTP 422 no_coverage(不计费);请求未知或未公开的链名返回 HTTP 404,error.code 为 not_found(在检查 key 之前判定且不计费,不占限流;链名必须为全小写 slug)。

错误

每个错误响应都是 {"error":{"code","message"}};只有 409 not_indexed_yet 可能额外带 indexed_through(该链已索引到的最高区块);当整条链尚无任何索引数据时该字段不存在。客户最常遇到的错误码:

状态码error.code含义建议操作
402insufficient_balance付费余额或免费额度已耗尽(不计费)前往控制台充值或等待免费额度补足
404not_found{chain} 未知或未公开,或对象不存在修正请求
409not_indexed_yet区块号高于已索引链头(indexed_through 给出已索引到的最高区块),或整条链尚无任何索引数据(不带 indexed_through)带 indexed_through 时轮询等待,直到你的区块号不高于它;不带时等待该链开始索引
409finality_exceeded区块已索引但高于 finalized_block(尚未达到重组安全水位)等待最终性,或改读更早的区块
422no_coverage永久性缺口:该链不支持此能力,或区块早于索引/trace 覆盖范围修改请求;重试不会成功
429rate_limitedkey 的 CU 速率超限(响应带 Retry-After)或账户调用速率超限(不带 Retry-After);不计费等待 Retry-After 秒后重试
429cost_exceeds_burst单个请求的 CU 超过该 key 的突发容量;不带 Retry-After(不计费)拆小请求;按原样重试永远不会成功
503unavailable暂时不可用;响应带 Retry-After。当某条链的 coverage.from_block 暂为 null 时,对它的历史请求也返回此错误等待 Retry-After 秒后重试
503gateway_overloaded该链当前繁忙(以太坊 Data API 并发能力较小);带 Retry-After: 1退避后重试

409 not_indexed_yet 覆盖两种情况。区块高于已索引链头:请求的区块号高于该链已索引的高度,响应带 indexed_through,数据之后可能到位,稍后重试即可。尚无任何索引数据:刚上线的链没有任何已索引数据,响应不带 indexed_through,且 GET /v1/data/chains 中该链的 coverage.has_data 为 false。此时等待该链开始索引即可;可通过 /v1/status 的 data_status 或 /v1/data/chains 的 coverage.has_data 查看当前状态,开始索引后这些值会自动变化。

仅 2xx 响应计费,错误响应一律不计费。

Chain

方法路径说明
GET/chainsList supported chains
GET/{chain}/blocks/{number}Get a block by number
GET/{chain}/blocks/hash/{hash}Get a block by hash
GET/{chain}/blocks/{number}/transactionsList a block's transactions
GET/{chain}/transactions/{hash}Get a transaction by hash

Status

方法路径说明
GET/{chain}/status/freshnessFreshness and lag per dataset

Addresses

方法路径说明
GET/{chain}/addresses/{address}/transactionsList an address's transactions
GET/{chain}/addresses/{address}/transfersList an address's token transfers
GET/{chain}/addresses/{address}/balancesList an address's ERC-20 balances

Tokens

方法路径说明
GET/{chain}/tokens/{token}/transfersList a token contract's transfers
GET/{chain}/tokens/{token}/holdersList a token's holders
GET/{chain}/tokens/{token}Get token metadata
POST/{chain}/tokens:batchBatch get token metadata

NFTs

方法路径说明
GET/{chain}/nfts/{contract}/{token_id}Get one NFT's owner/holders
GET/{chain}/nftsList NFTs owned by an address

DEX

方法路径说明
GET/{chain}/dex/swapsList DEX swaps by pool or token
GET/{chain}/dex/pricesDaily DEX token prices

Stocks

方法路径说明
GET/{chain}/stocksDaily leaderboard of tokenized stocks
GET/{chain}/stocks/{token}Get one tokenized stock

Traces

方法路径说明
GET/{chain}/blocks/{number}/tracesHistorical callTracer trace tree for a whole block
GET/{chain}/transactions/{hash}/traceHistorical callTracer trace tree for one transaction

本页目录