Skip to content

JSON-RPC API

Все API узлов VIZ используют JSON-RPC 2.0 через HTTP POST или WebSocket.


Формат запроса

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "api_name.method_name",
  "params": [arg1, arg2]
}
  • id может быть любым числом или строкой; передаётся в ответе без изменений.
  • params может быть массивом или объектом в зависимости от метода.
  • Поддерживаются HTTP POST и WebSocket. Подписки требуют WebSocket.

Формат ответа

Успех:

json
{ "jsonrpc": "2.0", "id": 1, "result": { ... } }

Ошибка:

json
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32602, "message": "Invalid params" } }

Коды ошибок

КодЗначение
-32700Ошибка разбора — некорректный JSON
-32600Некорректный запрос
-32601Метод не найден
-32602Некорректные параметры
-32603Внутренняя ошибка
от -32099 до -32000Ошибка сервера (исключение из обработчика)

Пространства имён плагинов

Пространство имёнСтатусОписание
database_apiАктивенЗапросы блоков, аккаунтов, состояния цепочки
network_broadcast_apiАктивенТрансляция транзакций и блоков
validator_apiАктивенЗапросы валидаторов
account_by_keyАктивенОбратный поиск по ключу
account_historyАктивенИстория операций аккаунта
operation_historyАктивенЗапросы операций блока
committee_apiАктивенЗапросы заявок комитета
invite_apiАктивенЗапросы инвайтов
paid_subscription_apiАктивенЗапросы подписок
custom_protocol_apiАктивенМетаданные пользовательского протокола
auth_utilАктивенПроверка авторизации
block_infoАктивенРасширенная информация о блоке
raw_blockАктивенЭкспорт сырых блоков

Методы database_api

МетодОписание
get_block_header(block_num)Заголовок блока для данной высоты
get_block(block_num)Полный подписанный блок
get_irreversible_block_header(block_num)Заголовок блока, если он необратимый
get_irreversible_block(block_num)Полный блок, если он необратимый
set_block_applied_callback(callback)WebSocket: подписка на новые блоки
get_config()Компайл-тайм константы цепочки
get_dynamic_global_properties()Текущее состояние цепочки
get_chain_properties()Медианные параметры цепочки валидаторов
get_hardfork_version()Строка текущей версии хардфорка
get_next_scheduled_hardfork()Информация о следующем запланированном хардфорке
get_accounts(names[])Полные объекты аккаунтов
lookup_account_names(names[])Аналог get_accounts, но с поддержкой null
lookup_accounts(lower_bound, limit)Постраничный список имён аккаунтов
get_account_count()Общее количество зарегистрированных аккаунтов
get_master_history(account)История смены мастер-ключей
get_recovery_request(account)Ожидающий запрос восстановления аккаунта
get_escrow(from, escrow_id)Объект эскроу
get_withdraw_routes(account, type)Маршруты вывода из вестинга ("incoming" / "outgoing" / "all")
get_vesting_delegations(account, from, limit, type)Делегирования ("delegated" / "received")
get_expiring_vesting_delegations(account, from, limit)Делегирования в окне возврата
get_transaction_hex(trx)Hex-кодированная сериализованная транзакция
get_required_signatures(trx, available_keys[])Минимальный набор ключей для подписания
get_potential_signatures(trx)Все ключи, которые могут подписать
verify_authority(trx)true, если полностью подписана
verify_account_authority(name, keys[])true, если ключи удовлетворяют авторизации
get_database_info()Статистика использования памяти chainbase
get_proposed_transactions(account, from, limit)Предложения, требующие одобрения аккаунта
get_accounts_on_sale(from, limit)Аккаунты, выставленные на прямую продажу
get_accounts_on_auction(from, limit)Аккаунты, выставленные на аукцион
get_subaccounts_on_sale(from, limit)Права создания субаккаунтов на продажу

Методы network_broadcast_api

МетодОписание
broadcast_transaction(trx)Трансляция (асинхронная)
broadcast_transaction_synchronous(trx)Трансляция с ожиданием включения в блок
broadcast_transaction_with_callback(callback, trx)Трансляция с обратным вызовом WebSocket
broadcast_block(block)Трансляция подписанного блока (валидаторы)

Методы validator_api

МетодОписание
get_active_validators()Текущий активный набор валидаторов (21 аккаунт)
get_validator_schedule()Полный объект расписания валидаторов
get_validators(ids[])Валидаторы по внутренним ID
get_validator_by_account(account)Объект валидатора для аккаунта
get_validators_by_vote(lower_bound, limit)Валидаторы по убыванию веса голосов
get_validators_by_counted_vote(lower_bound, limit)Валидаторы по числу голосов
get_validator_count()Общее количество зарегистрированных валидаторов
lookup_validator_accounts(lower_bound, limit)Список имён аккаунтов валидаторов

Методы account_history

get_account_history(account, from, limit)

Возвращает операции, связанные с account. from = -1 начинает с самой последней.

json
{
  "method": "account_history.get_account_history",
  "params": ["alice", -1, 100]
}

Возвращает словарь { sequence: { trx_id, block, op: [type_id, data] } }.


Методы operation_history

МетодОписание
get_ops_in_block(block_num, only_virtual)Операции в блоке
get_transaction(trx_id)Транзакция по ID

Методы committee_api

МетодОписание
get_committee_request(request_id)Детали и статус заявки
get_committee_request_votes(request_id)Голоса по заявке
get_committee_requests_list(from, limit)Список ID заявок

Методы invite_api

МетодОписание
get_invites_list(from, limit)Все активные ID инвайтов
get_invite_by_id(id)Инвайт по внутреннему ID
get_invite_by_key(public_key)Инвайт по публичному ключу

Методы paid_subscription_api

МетодОписание
get_paid_subscriptions(from, limit)Все предложения подписок
get_paid_subscription_options(account)Конфигурация подписок для аккаунта
get_paid_subscription_status(subscriber, account)Статус подписки
get_active_paid_subscriptions(subscriber, from, limit)Активные подписки
get_inactive_paid_subscriptions(subscriber, from, limit)Истёкшие подписки

WebSocket-подписки

Доступны только через постоянное WebSocket-соединение.

МетодДанные обратного вызова
database_api.set_block_applied_callbackЗаголовок блока при каждом применённом блоке
database_api.set_pending_transaction_callbackТранзакция при входе в пул ожидания
database_api.cancel_all_subscriptionsОтписаться от всего

Рекомендуемые наборы плагинов

Минимальный API-узел:

ini
plugin = chain json_rpc webserver p2p
plugin = database_api network_broadcast_api

Полный API-узел (добавить):

ini
plugin = validator_api account_by_key account_history operation_history
plugin = committee_api invite_api paid_subscription_api

Узел-валидатор (добавить):

ini
plugin = validator snapshot

См. также: Database API, Плагин веб-сервера, Обзор операций.