---
title: "ERPC CLI で RPC メソッドを呼び出し、イベントを自分の URL へ送る"
description: "erpc rpc call は Solana か Ethereum のメインネットに JSON-RPC リクエストを 1 回送り、x402 ならアカウントなしで 1 回ごとに支払えます。erpc webhook は RPC のイベントをあなたの URL へ POST します。"
canonical: "https://erpc.global/ja/doc/erpc-cli/rpc-call-and-webhooks/"
locale: "ja"
---

# ERPC CLI で RPC メソッドを呼び出し、イベントを自分の URL へ送る

`erpc rpc call` は、ログイン中の ERPC アカウントでターミナルから JSON-RPC リクエストを 1 回送ります。x402 で 1 回ごとに支払うこともできます。`erpc webhook` は、RPC のイベントをあなたの URL へ POST します。

このページは、プレリリースの ERPC CLI `v0.1.0-rc.4` について説明しています。

## RPC メソッドを呼び出す

ログイン中の ERPC アカウントで、Solana か Ethereum のメインネットを呼び出します。共有エンドポイントは CLI がメソッドから選びます。ネットワークを指定することもできます。

```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` は、ERPC の共有 RPC と x402 の RPC があるネットワークを一覧にします。
- **自分のエンドポイント:** `--endpoint-url` は、その URL に含まれる認証情報だけを使います。URL は安全な URL かループバックで、ユーザー情報を含まないものにします。

### アカウントのどのキーで呼び出すか

アカウントには RPC キーが複数あることがあります。`erpc rpc call` と `erpc webhook run` は、プライマリのキーから順にキーを試します。本来の呼び出しの前に、キーごとに `getHealth` を 1 回呼びます。キーの可否は、その後どのチェーンを呼ぶかにかかわらず、共有の Solana RPC で判定されます。

RPC がキーを受け付けず、かつキーのどれかについて問い合わせられなかったときは、問い合わせられなかった最初のキーで続け、本来の呼び出しの結果でわかります。すべてのキーが断られると、コマンドは `the shared RPC takes none of the account's API keys from this machine (<n> tried)` で失敗します。[失敗したとき](https://erpc.global/ja/doc/erpc-cli/worker-troubleshooting/)を見てください。

## x402 で 1 回ごとに支払う

アカウントなしで 1 回ごとに支払って使うには、x402 の見積もりを取ります。`--quote` は、ウォレットを読まず、支払いもせずに見積もりを表示します。

支払うには、`--quote` を付けずにターミナルでコマンドを実行します。CLI は金額を表示して確認を求め、`erpc wallet create` で設定したウォレットで、見積もった Base の EURC の支払いに署名します。そのウォレットには Base の EURC を入れておいてください（[ウォレットから支払う](https://erpc.global/ja/doc/erpc-cli/ai/#ウォレットから支払う)）。

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

## イベントを自分の URL へ送る

ローカルの Webhook は、RPC の WebSocket を購読し、イベントをあなたの URL へ POST します。受け手を起動し、購読を作り、`create` が返す ID を、ターミナルかプロセス監視ツールのもとで実行します。

```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 のウォレットの動きを受け取るには、`--method` の代わりに `--template solana-wallet --wallet ADDRESS` を使います。Ethereum のコントラクトのログには、`--template evm-contract-events --address CONTRACT` を使います。コールバックの URL は HTTPS かループバックの HTTP で、ネットワークは `erpc rpc call` と同じです。

### 受け手に届くもの

- POST にはそれぞれ、`webhook_id`、`network`、元の JSON-RPC の `notification` が入ります。受け取ったら HTTP 2xx を返します。
- 配信は、今ある購読の時点から始まります。ランナーを再起動すると、新しいイベントから購読し直します。
- 接続が切れるかコールバックが失敗すると、ランナーは 0 以外のステータスで終わります。
- `erpc webhook run` には、1 回だけ配信を試す `--once` と、自分の WebSocket の RPC を使う `--endpoint-url` があります。

## Webhook を管理する

| コマンド | すること |
| --- | --- |
| `erpc webhook list` | 保存した購読を一覧にする |
| `erpc webhook show ID` | 購読を表示する。コールバックの認証情報は表示しない |
| `erpc webhook enabled-count` | このマシンで有効な購読を数える |
| `erpc webhook pause ID` | 配信を無効にする。動いているランナーは終了する |
| `erpc webhook activate ID` | 後の `run` を有効にする |
| `erpc webhook delete ID` | 定義を削除する |

これらが見たり変えたりするのは、ローカルの設定だけです。スクリプトでは、`pause`、`activate`、`delete` に `--yes` を付けます。
