Блокчейн 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_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; полный список приведен на странице ошибок.
Официальная документация
Частые вопросы
Действует ли EVM_PROVIDER_URL для Base? Нет. Он задает только основную сеть Ethereum; другие сети используют ETHEREUM_PROVIDER_<CHAIN_NAME>.
Может ли агент подписывать и отправлять транзакции через публичный эндпоинт? eth_sendRawTransaction входит в public.methods для сетей, где он указан, и имеет собственный, более низкий лимит запросов на IP в public.send_raw_rate_limit в GET /v1/chains. Прочитайте этот лимит там, прежде чем на него опираться.
Нужен ли ключ для MCP-сервера? Нет. Подключение, а также инструменты документации, сетей и цен работают без ключа.
Дальнейшие шаги
- Обзор фреймворков для агентов: LangChain, viem, wagmi и Coinbase AgentKit.
- Подключение ИИ-агента: поиск эндпоинтов через MCP, llms.txt и OpenAPI.
- Правила тарификации: учет CU, лимиты запросов и ошибки, которые не тарифицируются.
Последнее обновление:
Дневные цены DEX
Запрашивайте дневные цены DEX OHLC и VWAP из Data API, обрабатывайте точные рациональные дроби в TypeScript и Python и эффективно дозагружайте исторические данные.
Историческое состояние EVM
Различие между аутентифицированными окнами состояния, историей без ключа и диапазонами логов. Выбор фиксированного блока для eth_call и диагностика ошибок state_window.