在 ElizaOS Agent 中用 BlockVectra 调用区块链 RPC

用两个环境变量把 ElizaOS 的 plugin-evm 指向 BlockVectra,先用免 key 公共端点,再通过 plugin-mcp 接入文档 MCP 服务。

ElizaOS Agent 通过 @elizaos/plugin-evm 访问 EVM 链,插件从环境变量读取 RPC 地址。把 EVM_PROVIDER_URL 设为 https://api.blockvectra.com/v1/eth_mainnet/public,插件即可无需 API key 使用 BlockVectra 的以太坊主网。加上 key 可使用其余方法,免费套餐每个 30 天窗口含 30,000,000 CU,核对于 。

# .env(插件还需要钱包密钥;请放在你的密钥库里)
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 安装插件。以太坊主网默认启用;settings.chains.evm 中列出的其他链必须使用其 viem/chains 导出名,对应的地址变量为大写的 ETHEREUM_PROVIDER_<CHAIN_NAME>,见插件在 npm 上的 README。

使用 API key

公共端点只覆盖各链 public.methods 中的方法。其余方法把 key 放进 URL 路径(/v1/{chain}/{api_key})。该插件只接受 URL,所以这里 key 只能放在路径里。在启动 Agent 的 shell 中导出变量,key 就不会落进会提交的文件:

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 可能出现在日志、代理和错误信息里,建议为 Agent 单独创建一个 cu_cap 较低的 key,泄露后在控制台吊销即可。

无需浏览器创建 key,按程序化开户指南的四步操作:challenge、签名、login,再 POST /keys。开发者也可以在控制台创建 key。同一个 key 适用于所有链,因此每个 ETHEREUM_PROVIDER_* 变量用同一个 key 即可。

接入文档 MCP 服务

@elizaos/plugin-mcp 让角色通过 Streamable HTTP 使用远程 MCP 服务。用 bun add @elizaos/plugin-mcp 安装,然后在角色配置中登记 BlockVectra 文档服务:

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

之后 Agent 即可免 key 调用 list_chains、get_status、rpc_call、read_doc 等 MCP 服务页列出的工具。插件文档中的 HTTP 选项只有 type、url 与 timeout,没有请求头选项,因此这种配置下无法使用带 key 的 MCP 工具。带 key 的读取请按上文交给 plugin-evm。

可能遇到的错误

响应含义处理方式
HTTP 401,-32024,missing_api_key调用带 key 的地址时没带 key把 key 放进路径或 x-api-key 请求头
HTTP 401,-32024,invalid_api_keykey 不存在、已停用或已撤销在控制台核对 key;新 key 需要几秒钟生效
-32601,method_not_public该方法不在该链的 public.methods 中把该链的地址从 /public 换成带 key 的形式
链未被识别settings.chains.evm 中的名称与 viem/chains 名称不一致使用准确的 viem/chains 名称

BlockVectra 的每个错误都带有 data.reason 与 docs_url;完整列表见错误码页。

官方文档

常见问题

EVM_PROVIDER_URL 对 Base 生效吗? 不生效。它只设置以太坊主网;其他链使用 ETHEREUM_PROVIDER_<CHAIN_NAME>。

Agent 能通过公共端点签名并发送交易吗? 列出 eth_sendRawTransaction 的链,其 public.methods 中包含该方法,并在 GET /v1/chains 的 public.send_raw_rate_limit 中有单独且更低的单 IP 速率限制。构建前请先在那里确认限额。

使用 MCP 服务需要 key 吗? 不需要。连接以及文档、链与定价工具均免 key。

下一步

最后更新:

本页目录