JSON-RPC
Поддерживаемые методы JSON-RPC, веса CU и коды ошибок. Настройка эндпоинта, выбор сети, проверка доступности методов, цен и правил тарификации.
Обзор
Все запросы учитываются в Compute Units (CU) и имеют лимиты частоты на каждый ключ.
- Эндпоинт:
POST /v1/{chain}/{api_key}(ключ в пути) илиPOST /v1/{chain}(ключ в заголовке). Для Robinhood Chain значение{chain}равноrobinhood_mainnet:https://api.blockvectra.com/v1/robinhood_mainnet. Один и тот же API key работает во всех поддерживаемых сетях - Протокол: HTTP
POST, одиночный вызов или пакет - Учет: общая стоимость запроса в CU списывается из емкости burst ключа сразу при поступлении. За каждый принятый вызов, получивший ответ, взимается плата по опубликованному весу метода в CU; в Справочнике ошибок перечислены случаи, которые не тарифицируются. Биллинг рассчитывается ежечасно (с округлением в меньшую сторону до целых единиц, остаток переносится, расчет выполняется примерно через 15 минут после окончания периода)
- Ethereum: собственный список методов и окно состояния, определяемое параметром
state_window_blocks— см. Поддерживаемые сети → Ethereum.
Полные схемы параметров, сигнатуры методов и интерактивное тестирование запросов по всем методам представлены в Полном справочнике. Информацию о версионировании путей, правилах обратной совместимости и рекомендациях по SDK см. в разделе Версионирование и совместимость API.
Инструкции по получению API key и отправке первого запроса приведены в разделе Быстрый старт; там также рассматриваются способы передачи ключа и пакетные запросы.
Распространенные запросы
Практические примеры распространенных запросов.
Запрос логов (eth_getLogs)
Фильтрация логов контракта за недавний диапазон блоков — в данном случае событие Transfer стандарта ERC-20 (топик 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef). См. таблицу Правила учета CU ниже для уточнения текущего веса eth_getLogs в CU; диапазон шире, чем max_logs_block_range сети (из GET /v1/chains), отклоняется с кодом -32602.
export BLOCKVECTRA_API_KEY=rgw_your_api_key
curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H 'Content-Type: application/json' \
-H "x-api-key: $BLOCKVECTRA_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"fromBlock": "0x45a2409",
"toBlock": "0x45a2609",
"address": "0x1111111111111111111111111111111111111111",
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}],
"id": 1
}'Трассировка транзакции (debug_traceTransaction)
Трассировка внутренних вызовов транзакции с помощью callTracer. См. таблицу Правила учета CU ниже для уточнения текущего веса debug_traceTransaction в CU. Как и другие методы чтения состояния, он отклоняется, если целевой блок выходит за пределы окна недавнего состояния сети (-32011). Размер окна определяется параметром state_window_blocks сети (из GET /v1/chains). В сетях, предоставляющих трассировки, используйте Data API для доступа к историческим трассировкам.
export BLOCKVECTRA_API_KEY=rgw_your_api_key
curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H 'Content-Type: application/json' \
-H "x-api-key: $BLOCKVECTRA_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": ["0xYOUR_TRANSACTION_HASH", {"tracer": "callTracer"}],
"id": 1
}'Правила учета Compute Units (CU)
Вес Compute Unit (CU) для каждого метода JSON-RPC.
| Метод | Вес (CU) |
|---|---|
eth_blockNumber | 1 |
eth_chainId | 1 |
eth_getBlockByNumber | 5 |
eth_blobBaseFee | 10 |
eth_feeHistory | 10 |
eth_gasPrice | 10 |
eth_getBalance | 10 |
eth_getBlockByHash | 10 |
eth_getBlockReceipts | 10 |
eth_getBlockTransactionCountByHash | 10 |
eth_getBlockTransactionCountByNumber | 10 |
eth_getCode | 10 |
eth_getHeaderByHash | 10 |
eth_getHeaderByNumber | 10 |
eth_getProof | 10 |
eth_getRawTransactionByBlockHashAndIndex | 10 |
eth_getRawTransactionByBlockNumberAndIndex | 10 |
eth_getRawTransactionByHash | 10 |
eth_getStorageAt | 10 |
eth_getTransactionByBlockHashAndIndex | 10 |
eth_getTransactionByBlockNumberAndIndex | 10 |
eth_getTransactionByHash | 10 |
eth_getTransactionCount | 10 |
eth_getTransactionReceipt | 10 |
eth_getUncleByBlockHashAndIndex | 10 |
eth_getUncleByBlockNumberAndIndex | 10 |
eth_getUncleCountByBlockHash | 10 |
eth_getUncleCountByBlockNumber | 10 |
eth_maxPriorityFeePerGas | 10 |
eth_syncing | 10 |
net_version | 10 |
web3_clientVersion | 10 |
web3_sha3 | 10 |
eth_call | 15 |
eth_createAccessList | 20 |
eth_estimateGas | 20 |
eth_simulateV1 | 20 |
eth_getLogs | 30 |
eth_sendRawTransaction | 30 |
debug_traceBlockByHash | 100 |
debug_traceBlockByNumber | 100 |
debug_traceCall | 100 |
debug_traceTransaction | 100 |
trace_block | 100 |
trace_call | 100 |
trace_get | 100 |
trace_replayTransaction | 100 |
trace_transaction | 100 |
Политика методов
Доступные методы зависят от сети; список для каждой сети приведен ниже, а остальные сведения описаны в разделе Поддерживаемые сети. Доступны только методы, соответствующие разрешенному имени или шаблону; любой другой метод возвращает -32601 method not available.
Разрешено во всех сетях ниже
eth_blockNumbereth_calleth_chainIdeth_estimateGaseth_feeHistoryeth_gasPriceeth_getBalanceeth_getBlockByHasheth_getBlockByNumbereth_getBlockReceiptseth_getBlockTransactionCountByHasheth_getBlockTransactionCountByNumbereth_getCodeeth_getLogseth_getStorageAteth_getTransactionByBlockHashAndIndexeth_getTransactionByBlockNumberAndIndexeth_getTransactionByHasheth_getTransactionCounteth_getTransactionReceipteth_maxPriorityFeePerGaseth_syncingnet_versionweb3_clientVersion
Arbitrum One
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 6,000 блоков
Также разрешено
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Base
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 10,000 блоков
Также разрешено
eth_blobBaseFeeeth_createAccessListeth_getProofeth_simulateV1eth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHasheth_sendRawTransactionweb3_sha3
BNB Smart Chain
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 100 блоков
Также разрешено
eth_sendRawTransaction
Ethereum
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 250,000 блоков
Также разрешено
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getProofeth_sendRawTransactiontrace_blocktrace_calltrace_gettrace_replayTransactiontrace_transactionweb3_sha3
Ethereum Sepolia
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: —
Также разрешено
eth_blobBaseFeeeth_createAccessListeth_getProofeth_sendRawTransactionweb3_sha3
HyperEVM
Отправка транзакций в этой сети пока не поддерживается (eth_sendRawTransaction возвращает -32601 method_not_allowed); методы чтения работают в обычном режиме.
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: —
Polygon
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 126 блоков
Также разрешено
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Robinhood Chain
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 900 блоков
Также разрешено
eth_blobBaseFeeeth_createAccessListeth_getProofeth_simulateV1eth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHasheth_sendRawTransactionweb3_sha3debug_traceTransactiondebug_traceCalldebug_traceBlockByNumberdebug_traceBlockByHash
Robinhood Chain Testnet
Максимальный диапазон блоков eth_getLogs: 1,000 блоков; Окно состояния: 1,023 блоков
Также разрешено
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Лимиты:
- Пакеты: не более 100 вызовов в одном запросе; также ограничено burst-емкостью CU ключа (см. ниже).
- Тело запроса: не более 2 МиБ
- Burst CU: каждый API key имеет корзину CU (пополнение
cu_per_sec, емкостьburst_cu— по умолчанию 400 CU/s и всплеск (burst) 1,600 CU; отображается для каждого ключа в таблице Keys в консоли). Отдельный запрос (включая весь пакет JSON-RPC), суммарный объем CU которого превышает емкость burst ключа, отклоняется с ошибкой-32022 request_exceeds_burst(request cost <N> CU exceeds burst capacity <M> CU); разделите его на более мелкие пакеты.
Коды ошибок
См. Справочник ошибок с описанием каждого кода ошибки, признаком тарификации и рекомендациями по действиям.
Полный справочник OpenAPI
См. Полный справочник OpenAPI для доступа к полной машиночитаемой спецификации со всеми сигнатурами методов, схемами запросов и ответов и подробным интерактивным описанием параметров.
Последнее обновление:
Data API
Справочник запросов Blockchain Data API: REST-эндпоинты, аутентификация по API key, параметры, схемы ответов, ошибки и веса CU для индексированных данных блокчейна.
Полный справочник
Полная спецификация API JSON-RPC 2.0 и список эндпоинтов. Просматривайте все поддерживаемые методы, форматы запросов и ответов, типы схем и коды ошибок.