BlockVectra
JSON-RPC

JSON-RPC

eth_* / net_* / web3_* / debug_trace* methods, CU weights, and error codes.

Overview

Robinhood Chain uses a JSON-RPC 2.0 gateway (rpc-gateway) for paid API access. All requests are metered in Computation Units (CU) and rate-limited per key.

  • Endpoint: /v1/ (nginx) → network gateway (direct) or via POST /v1/{api_key}
  • Protocol: HTTP POST, single call or batch (max 100 calls)
  • Metering: The request's total CU cost is pre-deducted from the key's rate-limit bucket on arrival; billing against the account's CU balance only happens after the gateway receives the node's response, settled hourly
  • Availability: Methods matching eth_*, net_*, web3_*, debug_trace* (with exceptions; see below)

See the full specification for endpoint details and live examples.

Integration

1. Get an API Key

See Quickstart → Get an API key.

2. Call JSON-RPC

curl -X POST https://dev-api.blockvectra.network/v1/YOUR_API_KEY \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

Key passing (priority order):

  • URL path: POST /v1/{api_key}
  • Header: x-api-key: {api_key} (overrides Bearer if non-empty)
  • Header: Authorization: Bearer {api_key}

3. Handle CU Costs

Every method carries a CU (Computation Unit) weight; the cost of a request is the sum of the weights of all calls it contains. See the CU weight table below for per-method weights and the cache-hit/default values, and the Billed column of the error codes table for which error conditions are billed.

CU Metering Rules

Computation Unit (CU) weight for each JSON-RPC method.

Resolution Strategy

Exact match > Longest prefix pattern (ending in *) > Default

Cache Hit: 1 CU

Default: 10 CU

MethodWeight (CU)
eth_blockNumber1
eth_call20
eth_chainId1
eth_createAccessList20
eth_estimateGas20
eth_getBlockByNumber5
eth_getBlockReceipts10
eth_getLogs50
eth_getProof10
eth_sendRawTransaction30
eth_simulateV120
debug_trace*200

Method Policy

Only methods matching an allowed pattern are reachable; a handful of methods are explicitly blocked even though they match one (they return -32601 method not available).

Allowed patterns

  • eth_*
  • net_*
  • web3_*
  • debug_trace*

Blocked methods

  • eth_newFilter
  • eth_newBlockFilter
  • eth_newPendingTransactionFilter
  • eth_getFilterLogs
  • eth_getFilterChanges
  • eth_uninstallFilter
  • eth_subscribe
  • eth_unsubscribe

Limits:

  • Batch: max 100 calls per request
  • Request body: max 2 MiB
  • CU burst: a request's total CU cost must not exceed the key's bucket capacity (request cost <N> CU exceeds burst capacity <M> CU)

Error Codes

Complete catalog of JSON-RPC error codes and their billing implications.

CodeSourceHTTP StatusMessageBilled
-32700gateway200parse errorNo
-32600gateway200invalid requestNo
-32600gateway200batch too large: max <N> callsNo
-32600gateway200invalid request: ambiguous member nameNo
-32601gateway200method not available: <method>No
-32602gateway200eth_getLogs block range too large: max <N> blocksNo
-32010gateway200node is syncing; latest-state calls are temporarily unavailableNo
-32011gateway200historical state is not available beyond the most recent <N> blocksNo
-32000gateway200transaction not foundNo
-32000gateway200block not foundNo
-32000gateway200upstream unavailableNo
-32000gateway200upstream response too largeNo
-32005gateway200gateway overloaded, retry laterNo
-32005gateway429rate limit exceededNo
-32005gateway429request cost <N> CU exceeds burst capacity <M> CUNo
-32603gateway200no response from upstreamNo
-32603gateway200malformed upstream responseNo
-32603gateway200internal gateway errorNo
-32020gateway402insufficient balanceNo
-32021gateway503billing data temporarily unavailableNo
-32030nginx502rpc gateway unreachableNo
-32030nginx503rpc gateway unavailableNo
-32030nginx504rpc gateway timed outPossible
4444node200pruned history unavailableNo
-32000node200historical state ... is not availableNo
-32002node200<node message>No
-32003node200<node message>No
-32600node200<node message>No
*node200<node message>Yes

Full Specification

See the complete JSON-RPC reference for all paths, request/response schemas, and live examples.

On this page