# BlockVectra で ElizaOS エージェントからブロックチェーン RPC を使う

> Source: https://docs.blockvectra.com/ja/guides/elizaos/

ElizaOS エージェントは、RPC URL を環境変数から読み取る `@elizaos/plugin-evm` を通じて EVM チェーンにアクセスします。`EVM_PROVIDER_URL` に `https://api.blockvectra.com/v1/eth_mainnet/public` を設定すると、プラグインは API key なしで Ethereum メインネットに BlockVectra を使います。無料プランではキーが必要なメソッドも使え、30 日間の期間ごとに 30,000,000 CU が含まれます。確認日 2026-10-11。

```bash
# .env (the plugin also needs the wallet key; keep it in your secret store)
EVM_PRIVATE_KEY=your-wallet-private-key
EVM_PROVIDER_URL=https://api.blockvectra.com/v1/eth_mainnet/public
ETHEREUM_PROVIDER_BASE=https://api.blockvectra.com/v1/base_mainnet/public
```

```json
{
  "name": "DeFiAgent",
  "plugins": ["@elizaos/plugin-evm"],
  "settings": { "chains": { "evm": ["base"] } }
}
```

プラグインのインストールは `bun add @elizaos/plugin-evm` で行います。Ethereum メインネットはデフォルトで有効です。`settings.chains.evm` に追加する他のチェーンは `viem/chains` のエクスポート名を使う必要があり、その URL 変数は大文字の `ETHEREUM_PROVIDER_<CHAIN_NAME>` です。詳細はプラグインの [npm 上の README](https://www.npmjs.com/package/@elizaos/plugin-evm) を参照してください。

## API key を使う

公開エンドポイントが対応するのは、各チェーンの `public.methods` にあるメソッドだけです。それ以外のメソッドには、キーを URL のパス（`/v1/{chain}/{api_key}`）に含めます。プラグインは URL しか受け取らないため、キーがパスで送られるのはここだけです。エージェントを起動するシェルで変数をエクスポートすれば、コミットするファイルにキーが残りません：

```bash
export EVM_PROVIDER_URL=https://api.blockvectra.com/v1/eth_mainnet/${BLOCKVECTRA_API_KEY}
export ETHEREUM_PROVIDER_BASE=https://api.blockvectra.com/v1/base_mainnet/${BLOCKVECTRA_API_KEY}
```

URL はログ、プロキシ、エラーメッセージに現れることがあります。そのため、エージェント専用に `cu_cap` を低く設定した別のキーを使い、漏えいした場合はコンソールで失効させてください。

ブラウザーを使わずにキーを作成するには、[プログラムによる登録ガイド](https://docs.blockvectra.com/ja/guides/programmatic-signup/?ref=docs-elizaos)の 4 ステップ（チャレンジ、署名、ログイン、`POST /keys`）に従います。開発者は[コンソールでキーを作成](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-elizaos)することもできます。同じキーがすべてのチェーンで使えるため、1 つのキーですべての `ETHEREUM_PROVIDER_*` 変数をまかなえます。

## ドキュメント MCP サーバーを追加する

`@elizaos/plugin-mcp` を使うと、キャラクターが Streamable HTTP 経由でリモート MCP サーバーを利用できます。`bun add @elizaos/plugin-mcp` でインストールし、キャラクター設定に BlockVectra のドキュメントサーバーを登録します：

```json
{
  "plugins": ["@elizaos/plugin-evm", "@elizaos/plugin-mcp"],
  "settings": {
    "mcp": {
      "servers": {
        "blockvectra": { "type": "streamable-http", "url": "https://docs.blockvectra.com/mcp" }
      }
    }
  }
}
```

これでエージェントは、`list_chains`、`get_status`、`rpc_call`、`read_doc`、および [MCP サーバーのページ](https://docs.blockvectra.com/ja/guides/mcp-server/)に一覧されている他のツールを、キーなしで呼び出せます。プラグインがドキュメント化している HTTP オプションは `type`、`url`、`timeout` で、ヘッダーのオプションはドキュメントにないため、この設定ではキーが必要な MCP ツールは使えません。キーが必要な読み取りは、上記のとおり `plugin-evm` で行ってください。

## 遭遇するエラー

| レスポンス                               | 意味                                                 | 対応                                      |
| ----------------------------------- | -------------------------------------------------- | --------------------------------------- |
| HTTP 401、`-32024`、`missing_api_key` | キーが必要な URL をキーなしで呼び出した                             | キーをパスまたは `x-api-key` ヘッダーに入れる           |
| HTTP 401、`-32024`、`invalid_api_key` | キーが不明、無効化済み、または失効済み                                | コンソールでキーを確認する。新しいキーが有効になるまで数秒かかる        |
| `-32601`、`method_not_public`        | メソッドがそのチェーンの `public.methods` にない                  | そのチェーンの URL を `/public` からキー付きの形式に切り替える |
| Chain not recognised                | `settings.chains.evm` の名前が `viem/chains` の名前と一致しない | `viem/chains` の正確な名前を使う                 |

BlockVectra の各エラーには `data.reason` と `docs_url` が含まれます。全一覧は[エラーのページ](https://docs.blockvectra.com/ja/errors/)にあります。

## 公式ドキュメント

* [ElizaOS ドキュメント](https://elizaos.github.io/eliza/)
* [GitHub の elizaos/eliza](https://github.com/elizaos/eliza)
* [npm の `@elizaos/plugin-evm`](https://www.npmjs.com/package/@elizaos/plugin-evm)
* [npm の `@elizaos/plugin-mcp`](https://www.npmjs.com/package/@elizaos/plugin-mcp)

## よくある質問

**`EVM_PROVIDER_URL` は Base にも適用されますか？** いいえ。設定されるのは Ethereum メインネットだけで、他のチェーンには `ETHEREUM_PROVIDER_<CHAIN_NAME>` を使います。

**エージェントは公開エンドポイント経由でトランザクションに署名して送信できますか？** `eth_sendRawTransaction` は、これを掲載しているチェーンの `public.methods` に含まれており、`GET /v1/chains` の `public.send_raw_rate_limit` に、IP あたりのより低い専用レート制限があります。利用を前提にする前に、そこで制限を確認してください。

**MCP サーバーにキーは必要ですか？** いいえ。接続と、ドキュメント、チェーン、料金のツールはキー不要です。

## 次のステップ

* [エージェントフレームワークの概要](https://docs.blockvectra.com/ja/guides/agent-frameworks/)：LangChain、viem、wagmi、Coinbase AgentKit。
* [AI エージェントを接続する](https://docs.blockvectra.com/ja/guides/ai-agents/)：MCP、llms.txt、OpenAPI でエンドポイントを見つけます。
* [課金ルール](https://docs.blockvectra.com/ja/guides/billing-rules/)：CU の計測、レート制限、課金されないエラー。
