---
title: "Вызывайте методы RPC и отправляйте события на свой URL с ERPC CLI"
description: "erpc rpc call шлёт один JSON-RPC-запрос в mainnet Solana или Ethereum, x402 оплачивает каждый вызов без аккаунта, а erpc webhook шлёт события RPC на ваш URL."
canonical: "https://erpc.global/ru/doc/erpc-cli/rpc-call-and-webhooks/"
locale: "ru"
---

# Вызывайте методы RPC и отправляйте события на свой URL с ERPC CLI

`erpc rpc call` отправляет из терминала один JSON-RPC-запрос с аккаунтом ERPC, в который вы вошли, или оплачивает каждый вызов через x402. `erpc webhook` отправляет события RPC POST-запросами на ваш URL.

Эта страница описывает ERPC CLI `v0.1.0-rc.4` — пререлиз.

## Вызов метода RPC

Обращайтесь к mainnet Solana или Ethereum с аккаунтом ERPC, в который вы вошли. CLI выбирает общий endpoint по методу, либо вы можете выбрать сеть сами.

```sh
erpc login
erpc rpc call getSlot
erpc --json rpc call eth_getBlockByNumber '["latest", false]' --network ethereum-mainnet
erpc rpc call eth_call --params-file params.json
printf '%s' '["finalized", false]' | erpc rpc call eth_getBlockByNumber -
erpc rpc call getHealth --endpoint-url http://127.0.0.1:8899
```

- **Параметры** — это JSON-массив или объект, файл с `--params-file` или `-` для стандартного ввода. Без них вызов отправляет `[]`.
- **Сети** — `solana-mainnet` и `ethereum-mainnet` (также `eth-mainnet`). `erpc rpc list-networks` выводит список сетей, где есть общий RPC ERPC и RPC через x402.
- **Собственный endpoint:** `--endpoint-url` использует только учётные данные из этого URL. Это должен быть защищённый URL или loopback, без данных пользователя.

### Какие ключи аккаунта использует вызов

У аккаунта может быть несколько RPC-ключей. `erpc rpc call` и `erpc webhook run` перебирают их по порядку, начиная с основного, и перед собственным вызовом делают по одному вызову `getHealth` для каждого ключа. Ключ проверяется на общем RPC Solana, какой бы блокчейн ни вызывался после этого.

Если RPC не принимает ни одного ключа, а об одном из них спросить не удалось, команда продолжает работу с первым ключом, о котором спросить не удалось, и результат покажет её собственный вызов. Если отклонены все ключи, команда завершается ошибкой `the shared RPC takes none of the account's API keys from this machine (<n> tried)`: см. [Если произошёл сбой](https://erpc.global/ru/doc/erpc-cli/worker-troubleshooting/).

## Оплата каждого вызова через x402

Чтобы платить за каждый вызов без аккаунта, запросите котировку x402. `--quote` выводит котировку, не читая кошелёк и не выполняя платёж.

Чтобы заплатить, выполните команду без `--quote` в терминале. CLI показывает сумму, запрашивает подтверждение и подписывает указанный в котировке платёж в EURC в сети Base кошельком, который настроила команда `erpc wallet create`. Держите EURC в сети Base на этом кошельке ([Оплата из кошелька](https://erpc.global/ru/doc/erpc-cli/ai/#оплата-из-кошелька)).

```sh
erpc rpc call getSlot --network solana-mainnet --x402 --quote
erpc rpc call eth_blockNumber --x402
```

## Отправка событий на ваш URL

Локальный вебхук подписывается на WebSocket RPC и отправляет события POST-запросами на ваш URL. Запустите приёмник, создайте подписку, затем запустите её по ID, который вернула команда `create`, — в терминале или под вашим супервизором процессов.

```sh
erpc webhook create --name slots --network solana-mainnet \
  --url http://127.0.0.1:8080/events --method slotSubscribe
erpc webhook create --name heads --network ethereum-mainnet \
  --url http://127.0.0.1:8080/events --method eth_subscribe --params '["newHeads"]'
erpc webhook list
erpc webhook run 1
```

Для активности кошелька в Solana используйте `--template solana-wallet --wallet ADDRESS` вместо `--method`. Для логов контрактов Ethereum используйте `--template evm-contract-events --address CONTRACT`. URL обратного вызова — это HTTPS или HTTP на loopback, а сети те же, что у `erpc rpc call`.

### Что получает ваш приёмник

- Каждый POST-запрос содержит `webhook_id`, `network` и исходное JSON-RPC-уведомление `notification`. Чтобы принять его, верните HTTP 2xx.
- Доставка начинается с текущей подписки в реальном времени. При перезапуске раннер подписывается на новые события.
- Обрыв соединения или неудачный обратный вызов завершает раннер с ненулевым кодом завершения.
- `erpc webhook run` принимает `--once`, чтобы проверить одну доставку, и `--endpoint-url`, чтобы использовать собственный WebSocket RPC.

## Управление вебхуками

| Команда | Что делает |
| --- | --- |
| `erpc webhook list` | Выводит список сохранённых подписок |
| `erpc webhook show ID` | Показывает подписку. Учётные данные обратного вызова не выводятся |
| `erpc webhook enabled-count` | Считает подписки, включённые на этой машине |
| `erpc webhook pause ID` | Отключает доставку. Работающий раннер завершается |
| `erpc webhook activate ID` | Разрешает последующий `run` |
| `erpc webhook delete ID` | Удаляет определение подписки |

Эти команды просматривают и изменяют только локальную конфигурацию. В скриптах передавайте `--yes` командам `pause`, `activate` и `delete`.
