# Use RPC de blockchain em agentes ElizaOS com a BlockVectra

> Source: https://docs.blockvectra.com/pt-br/guides/elizaos/

Os agentes ElizaOS acessam redes EVM por meio do `@elizaos/plugin-evm`, que lê suas URLs de RPC do ambiente. Defina `EVM_PROVIDER_URL` como `https://api.blockvectra.com/v1/eth_mainnet/public` e o plugin usa a BlockVectra para a mainnet da Ethereum sem API key. O Plano Gratuito acrescenta métodos autenticados com 30,000,000 CU por janela de 30 dias. Verificado em 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"] } }
}
```

Instale o plugin com `bun add @elizaos/plugin-evm`. A mainnet da Ethereum vem habilitada por padrão; toda outra rede listada em `settings.chains.evm` deve usar o nome de exportação de `viem/chains`, e a variável de URL correspondente é `ETHEREUM_PROVIDER_<CHAIN_NAME>` em maiúsculas, como no [README do plugin no npm](https://www.npmjs.com/package/@elizaos/plugin-evm).

## Use uma API key

Os endpoints públicos cobrem apenas os métodos em `public.methods` de cada rede. Para o restante, coloque a chave no caminho da URL (`/v1/{chain}/{api_key}`). O plugin aceita apenas uma URL, então este é o único lugar em que a chave trafega no caminho. Exporte as variáveis no shell que inicia o agente para que a chave nunca vá parar em um arquivo que você faz commit:

```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}
```

URLs podem aparecer em logs, proxies e mensagens de erro; por isso, use uma chave separada com um `cu_cap` baixo para o agente e revogue-a no console se ela vazar.

Para criar a chave sem navegador, siga as quatro etapas do [guia de cadastro programático](https://docs.blockvectra.com/pt-br/guides/programmatic-signup/?ref=docs-elizaos): desafio, assinatura, login e, depois, `POST /keys`. Desenvolvedores também podem [criar uma chave no console](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-elizaos). A mesma chave funciona em todas as redes, então uma só chave atende cada variável `ETHEREUM_PROVIDER_*`.

## Adicione o servidor MCP de documentação

O `@elizaos/plugin-mcp` permite que um personagem use servidores MCP remotos via Streamable HTTP. Instale-o com `bun add @elizaos/plugin-mcp` e registre o servidor de documentação da BlockVectra nas configurações do personagem:

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

O agente passa então a poder chamar `list_chains`, `get_status`, `rpc_call`, `read_doc` e as demais ferramentas listadas na [página do servidor MCP](https://docs.blockvectra.com/pt-br/guides/mcp-server/), sem chave. As opções HTTP documentadas do plugin são `type`, `url` e `timeout`; ele não documenta nenhuma opção de cabeçalho, então as ferramentas MCP autenticadas ficam fora de alcance com esta configuração. Mantenha as leituras autenticadas no `plugin-evm`, como acima.

## Erros que você pode ver

| Resposta                              | Significado                                                                | O que fazer                                                                   |
| ------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| HTTP 401, `-32024`, `missing_api_key` | Uma URL autenticada foi chamada sem chave                                  | Colocar a chave no caminho ou no cabeçalho `x-api-key`                        |
| HTTP 401, `-32024`, `invalid_api_key` | Chave desconhecida, desativada ou revogada                                 | Verificar a chave no console; uma chave nova leva alguns segundos para ativar |
| `-32601`, `method_not_public`         | O método não está em `public.methods` da rede                              | Trocar a URL dessa rede de `/public` para a forma autenticada                 |
| Rede não reconhecida                  | O nome em `settings.chains.evm` não corresponde a um nome de `viem/chains` | Usar o nome exato de `viem/chains`                                            |

Cada erro da BlockVectra inclui `data.reason` e um `docs_url`; a lista completa está na [página de erros](https://docs.blockvectra.com/pt-br/errors/).

## Documentação oficial

* [Documentação do ElizaOS](https://elizaos.github.io/eliza/)
* [elizaos/eliza no GitHub](https://github.com/elizaos/eliza)
* [`@elizaos/plugin-evm` no npm](https://www.npmjs.com/package/@elizaos/plugin-evm)
* [`@elizaos/plugin-mcp` no npm](https://www.npmjs.com/package/@elizaos/plugin-mcp)

## Perguntas frequentes

**`EVM_PROVIDER_URL` vale para a Base?** Não. Ela define apenas a mainnet da Ethereum; as outras redes usam `ETHEREUM_PROVIDER_<CHAIN_NAME>`.

**Um agente pode assinar e enviar transações pelo endpoint público?** `eth_sendRawTransaction` está em `public.methods` nas redes que o listam, com um limite de taxa por IP próprio e mais baixo em `public.send_raw_rate_limit` de `GET /v1/chains`. Leia o limite ali antes de construir sobre ele.

**Preciso de uma chave para o servidor MCP?** Não. Conectar e usar as ferramentas de documentação, de redes e de preços não exige chave.

## Próximos passos

* [Visão geral dos frameworks de agentes](https://docs.blockvectra.com/pt-br/guides/agent-frameworks/) para LangChain, viem, wagmi e Coinbase AgentKit.
* [Conecte um agente de IA](https://docs.blockvectra.com/pt-br/guides/ai-agents/) para descobrir endpoints com MCP, llms.txt e OpenAPI.
* [Regras de cobrança](https://docs.blockvectra.com/pt-br/guides/billing-rules/) para a medição de CU, limites de taxa e erros não cobrados.
