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

Направьте plugin-evm из ElizaOS на BlockVectra двумя переменными окружения, начните без ключа на публичном эндпоинте и добавьте MCP-сервер документации через plugin-mcp.

Агенты 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 дн. Проверено .

# .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
{
  "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.

Использование API key

Публичные эндпоинты покрывают только методы из public.methods каждой сети. Для остальных укажите ключ в пути URL (/v1/{chain}/{api_key}). Плагин принимает только URL, поэтому это единственное место, где ключ передается в пути. Экспортируйте переменные в оболочке, из которой запускается агент, чтобы ключ не попал в файл, который вы коммитите:

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 и отзовите его в консоли, если он утечет.

Чтобы создать ключ без браузера, выполните четыре шага из руководства по программной регистрации: challenge, подпись, login, затем POST /keys. Разработчики также могут создать ключ в консоли. Один и тот же ключ работает во всех сетях, поэтому одного ключа хватает для каждой переменной ETHEREUM_PROVIDER_*.

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

@elizaos/plugin-mcp позволяет персонажу использовать удаленные MCP-серверы по Streamable HTTP. Установите его командой bun add @elizaos/plugin-mcp, затем зарегистрируйте MCP-сервер документации BlockVectra в настройках персонажа:

{
  "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-сервера, без ключа. В документации плагина для HTTP описаны параметры type, url и timeout; параметра для заголовков там нет, поэтому инструменты MCP, требующие ключ, из этой конфигурации недоступны. Чтения с ключом оставьте в plugin-evm, как показано выше.

Ошибки, которые вы можете увидеть

ОтветЗначениеЧто делать
HTTP 401, -32024, missing_api_keyURL с ключом вызван без ключаУкажите ключ в пути или в заголовке 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; полный список приведен на странице ошибок.

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

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

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

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

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

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

Последнее обновление:

На этой странице