Supported Chains

Supported blockchain networks, chain IDs, URL structures, and feature availability.

BlockVectra is a multi-chain blockchain data provider. With a single API key, you can call JSON-RPC on every chain we support, and the Data API where it is available, through one unified gateway.

One key, all chains

  • Universal key: the same API key works on every blockchain network BlockVectra supports — no separate keys per chain.
  • Chain in the URL: every request names its chain explicitly through the {chain} path segment.
  • Aggregated usage: account balance, Compute Unit (CU) rate-limit buckets, and free-tier per-second request limits are shared across all chains.
  • Plan-based pricing: the exact prices and limits come from your active plan configuration. See Pricing.

URL templates

Standard URL structures for calling JSON-RPC and the Data API:

ServiceModeURL templateNotes
JSON-RPCKey in the pathPOST /v1/{chain}/{api_key}Simplest form; recommended for curl and HTTP clients
JSON-RPCKey in a headerPOST /v1/{chain}Pass the key in the x-api-key: {api_key} request header
Data APIREST endpointsGET /v1/data/{chain}/…Pass the key in the x-api-key request header
StatusPublic statusGET /v1/statusNo key required; returns each public chain's status and head

Note: the legacy path POST /v1/{api_key} returns HTTP 404 with error.data.reason: "unknown_chain", while a request without a chain segment (e.g. POST /v1 or POST /v1/) returns HTTP 404 with an empty body. See Quickstart for setup details.

Supported chains matrix

The blockchain networks currently available on BlockVectra, with their service capabilities:

Chain{chain}Chain IDJSON-RPCData APIChain-Specific Data
Robinhood Chainrobinhood_mainnet4663Live, debug_trace*LiveTraces (coverage gaps), DEX, Tokenized stocks
Ethereumeth_mainnet1BetaBeta (last ~30 days)—
HyperEVM (Unavailable)hyperevm_mainnet999Open (Unavailable)Open (Unavailable)—

HyperEVM

Native token HYPE · Blocks ~1 s · instant finality

HyperEVM blocks include HyperCore system transactions (from address 0x2222…2222 or 0x20…, gasPrice 0).

Need another chain? Tell us →

Robinhood Chain

Robinhood Chain is the first blockchain network live on BlockVectra.

  • Chain ID: 4663
  • Chain name ({chain} in URLs): robinhood_mainnet
  • JSON-RPC: standard EVM methods plus debug_trace* execution tracing.
  • Data API datasets: blocks, transactions, ERC-20 transfers and balances, NFTs, DEX trades and prices, and tokenized stocks.
  • Trace coverage: trace data is available from a certain block onward (none before it), with a small number of scattered gaps after that. A request that falls before the start block or inside a gap returns 422 no_coverage (not billed).
  • L2-specific fields: blocks and transactions include L2-specific fields.

Ethereum

Ethereum is in Beta on both JSON-RPC and the Data API.

  • Chain ID: 1
  • Chain name ({chain} in URLs): eth_mainnet, e.g. POST /v1/eth_mainnet/{api_key} or GET /v1/data/eth_mainnet/…. Same API key and balance as every other chain.

JSON-RPC

  • Methods: only the methods listed for Ethereum under Method Policy are open. Any other method, including debug_trace*, returns -32601.
  • Recent data only: state and blocks cover about the last 36 days. Historical state queries outside the window return -32011 (not billed); block, receipt and log queries outside the window return -32000 old data not available due to pruning (not billed); a transaction looked up by hash outside the window returns result: null.
  • eth_getLogs: at most 1000 blocks per request.

Data API

  • Recent data only: Ethereum provides roughly the last 30 days of data; the start block is coverage.from_block in GET /v1/data/chains. The window moves forward about once a week, and the span is at least 30 days (currently 30–38 days). A block number or window below the start returns 422 no_coverage; a transaction hash that has left the window returns 404.
  • When from_block is null: the start is temporarily unknown. Do not treat it as 0 or as full history, and do not send historical requests (by block number, window or hash) for Ethereum until it is an integer again; they return 503 unavailable. Other chains are not affected.
  • Concurrency: Ethereum's Data API currently handles a small number of concurrent requests; when busy it returns 503 gateway_overloaded with Retry-After: 1 — retry with backoff.
  • Available: blocks, transactions, address transactions, token transfers, token metadata, and data freshness. Address transactions and transfers only cover that window: a response that crosses its start is marked meta.coverage: "partial".
  • Not available: balances, token holders, NFT holdings, DEX trades and prices, tokenized stocks, and traces return 422 no_coverage (not billed).

Discovering chains programmatically

Use these public endpoints to discover supported chains and their status:

1. Gateway status (GET /v1/status)

A public endpoint that requires no API key (CORS *). It lists only publicly available chains and returns their status and indexed head:

curl -s "https://dev-api.blockvectra.network/v1/status"

Example response:

{
  "checked_at": "2026-09-28T07:40:00Z",
  "gateway": { "status": "ok" },
  "chains": [
    {
      "chain": "robinhood_mainnet",
      "name": "Robinhood Chain",
      "chain_id": 4663,
      "jsonrpc": true,
      "data": true,
      "status": "ok",
      "head": {
        "block": 74600000,
        "time": "2026-09-28T07:39:58Z",
        "lag_seconds": 3
      }
    },
    {
      "chain": "eth_mainnet",
      "name": "Ethereum",
      "chain_id": 1,
      "jsonrpc": true,
      "data": true,
      "status": "ok",
      "head": {
        "block": 26010000,
        "time": "2026-09-28T07:39:59Z",
        "lag_seconds": 1
      }
    }
  ]
}

Each entry's name is always the chain's English display name. jsonrpc and data report whether that chain is open for JSON-RPC and the Data API respectively; status is "ok" or "unavailable". If a chain is syncing, calls to that chain return -32010; other chains are unaffected. On /v1/status, status reports whether JSON-RPC is healthy and data_status reports whether the Data API is healthy ("ok" or "unavailable"); in /v1/data/chains, a coverage.has_data of false means the chain has no indexed data yet.

2. Data API chains (GET /v1/data/chains)

Requires an API key in the x-api-key header (billed at 1 CU). Returns the public chains the Data API serves, each with what it serves (features), the blocks its data covers (coverage), how finalized_block is derived (finality) and its per-request caps (limits):

curl -s "https://dev-api.blockvectra.network/v1/data/chains" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"

Example response:

{
  "data": [
    {
      "chain": "robinhood_mainnet",
      "chain_slug": "ROBINHOOD_MAINNET",
      "name": "Robinhood Chain",
      "chain_id": 4663,
      "chain_external_id": "eip155:4663",
      "features": [
        "blocks", "transactions", "address_transactions", "transfers", "token_metadata",
        "balances", "holders", "nfts", "dex_swaps", "dex_prices", "stocks", "traces", "freshness"
      ],
      "coverage": { "history_mode": "full", "from_block": 0, "traces_from_block": 72050949 },
      "finality": { "model": "block_lag", "lag_blocks": 256 },
      "limits": { "max_page_size": 500, "max_window_blocks": 100000, "max_pools_for_token": 200, "max_batch_addresses": 100 }
    },
    {
      "chain": "eth_mainnet",
      "chain_slug": "ETH_MAINNET",
      "name": "Ethereum",
      "chain_id": 1,
      "chain_external_id": "eip155:1",
      "features": ["blocks", "transactions", "address_transactions", "transfers", "token_metadata", "freshness"],
      "coverage": { "history_mode": "window", "from_block": 26000000, "retention_days": 30, "traces_from_block": null },
      "finality": { "model": "block_lag", "lag_blocks": 64 },
      "limits": { "max_page_size": 500, "max_window_blocks": 100000, "max_pools_for_token": 200, "max_batch_addresses": 100 }
    }
  ]
}

On a window chain such as eth_mainnet, coverage.from_block is the lowest block currently indexed; it moves forward about once a week as old data is pruned (from_block above is only a snapshot). It can be null while the start is temporarily unknown; then do not send historical requests for that chain (they return 503 unavailable), and never treat null as 0 or full history. Full-history chains always return an integer. Always read it from this endpoint rather than hard-coding it.

Calling /v1/data/{chain}/… with an unknown or not-public chain returns HTTP 404 with error.code not_found (decided before the key check, not billed, and not rate-limited; the chain name must be the exact lowercase slug).

On this page