# Блокчейн RPC в агентах ElizaOS с BlockVectra

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

Агенты ElizaOS обращаются к сетям EVM через `@elizaos/plugin-evm`, который читает URL RPC из окружения. Задайте `EVM_PROVIDER_URL` равным `https://api.blockvectra.com/v1/eth_mainnet/public`, и плагин будет использовать BlockVectra для основной сети Ethereum без API key. Free Plan добавляет методы, требующие ключ, и дает 30,000,000 CU за каждое окно в 30 дн. Проверено 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>` (имя в верхнем регистре), как описано в [README плагина на npm](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/ru/guides/programmatic-signup/?ref=docs-elizaos): challenge, подпись, login, затем `POST /keys`. Разработчики также могут [создать ключ в консоли](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-elizaos). Один и тот же ключ работает во всех сетях, поэтому одного ключа хватает для каждой переменной `ETHEREUM_PROVIDER_*`.

## Добавьте MCP-сервер документации

`@elizaos/plugin-mcp` позволяет персонажу использовать удаленные MCP-серверы по Streamable HTTP. Установите его командой `bun add @elizaos/plugin-mcp`, затем зарегистрируйте 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/ru/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/ru/errors/).

## Официальная документация

* [Документация ElizaOS](https://elizaos.github.io/eliza/)
* [elizaos/eliza на GitHub](https://github.com/elizaos/eliza)
* [`@elizaos/plugin-evm` на npm](https://www.npmjs.com/package/@elizaos/plugin-evm)
* [`@elizaos/plugin-mcp` на npm](https://www.npmjs.com/package/@elizaos/plugin-mcp)

## Частые вопросы

**Действует ли `EVM_PROVIDER_URL` для Base?** Нет. Он задает только основную сеть Ethereum; другие сети используют `ETHEREUM_PROVIDER_<CHAIN_NAME>`.

**Может ли агент подписывать и отправлять транзакции через публичный эндпоинт?** `eth_sendRawTransaction` входит в `public.methods` для сетей, где он указан, и имеет собственный, более низкий лимит запросов на IP в `public.send_raw_rate_limit` в `GET /v1/chains`. Прочитайте этот лимит там, прежде чем на него опираться.

**Нужен ли ключ для MCP-сервера?** Нет. Подключение, а также инструменты документации, сетей и цен работают без ключа.

## Дальнейшие шаги

* [Обзор фреймворков для агентов](https://docs.blockvectra.com/ru/guides/agent-frameworks/): LangChain, viem, wagmi и Coinbase AgentKit.
* [Подключение ИИ-агента](https://docs.blockvectra.com/ru/guides/ai-agents/): поиск эндпоинтов через MCP, llms.txt и OpenAPI.
* [Правила тарификации](https://docs.blockvectra.com/ru/guides/billing-rules/): учет CU, лимиты запросов и ошибки, которые не тарифицируются.
