# Usar RPC blockchain en agentes de Coinbase AgentKit con BlockVectra

> Source: https://docs.blockvectra.com/es/guides/coinbase-agentkit/

Coinbase AgentKit envía sus acciones onchain mediante un proveedor de billetera, y `ViemWalletProvider` acepta cualquier `WalletClient` de viem. Dé a ese cliente `https://api.blockvectra.com/v1/base_mainnet/public` como transporte y el tráfico RPC de AgentKit usará BlockVectra sin API key. Una clave añade el resto; el plan gratuito ofrece 30,000,000 CU por ventana de 30 días. Verificado el 2026-10-11.

```typescript
import { AgentKit, ViemWalletProvider } from "@coinbase/agentkit";
import { getLangChainTools } from "@coinbase/agentkit-langchain";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";

const client = createWalletClient({
  account: privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`),
  chain: base,
  transport: http("https://api.blockvectra.com/v1/base_mainnet/public"),
});

const agentKit = await AgentKit.from({ walletProvider: new ViemWalletProvider(client) });
const tools = await getLangChainTools(agentKit);
```

Instale con `npm install @coinbase/agentkit @coinbase/agentkit-langchain viem`. `tools` es la lista que la [integración con LangChain](https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md) de AgentKit pasa a `createAgent({ model, tools })`; la clave de la billetera permanece en su entorno.

## Usar una API key

El endpoint público solo atiende los métodos de `public.methods` de cada cadena. Para los demás, envíe la clave en el encabezado `x-api-key` y manténgala en el entorno, de modo que nunca aparezca en la URL:

```typescript
const transport = http("https://api.blockvectra.com/v1/base_mainnet", {
  fetchOptions: { headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! } },
});
```

Si un cliente no puede fijar encabezados, la clave puede ir en la ruta de la URL (`/v1/{chain}/{api_key}`); las URL pueden acabar en registros de acceso, así que prefiera el encabezado.

Cree la clave sin navegador con los cuatro pasos de la [guía de registro programático](https://docs.blockvectra.com/es/guides/programmatic-signup/?ref=docs-agentkit): desafío, firma, inicio de sesión y después `POST /keys`. Los desarrolladores también pueden [crear una clave en la consola](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-agentkit). Una sola clave funciona en todas las cadenas, así que cambiar el agente a otra red solo cambia el slug de la cadena y el objeto de cadena de viem.

## Combinar las acciones de AgentKit con el servidor MCP de documentación

El paquete TypeScript de AgentKit expone sus acciones como herramientas de LangChain, por lo que las herramientas MCP del adaptador de LangChain van en el mismo array `tools`. Siga la [guía de LangChain](https://docs.blockvectra.com/es/guides/langchain/#add-the-docs-mcp-server) para cargar `https://docs.blockvectra.com/mcp` y después combine:

```typescript
const agent = createAgent({ model: "claude-sonnet-5", tools: [...tools, ...(await adapter.listTools())] });
```

El agente obtiene las acciones de billetera de AgentKit más `list_chains`, `get_status`, `rpc_call` y `read_doc` de BlockVectra, listadas en la [página del servidor MCP](https://docs.blockvectra.com/es/guides/mcp-server/). Conectarse no requiere clave.

## Errores que puede encontrar

| Respuesta                             | Significado                                        | Qué hacer                                                                          |
| ------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
| HTTP 401, `-32024`, `missing_api_key` | Se envió una solicitud con clave sin clave         | Enviar la clave en el encabezado `x-api-key` (o en la ruta de la URL)              |
| HTTP 401, `-32024`, `invalid_api_key` | Clave desconocida, desactivada o revocada          | Comprobar la clave en la consola; una clave nueva tarda unos segundos en activarse |
| `-32601`, `method_not_public`         | El método no está en `public.methods` de la cadena | Cambiar ese transporte de `/public` a la URL con clave                             |

Cada error de BlockVectra incluye `data.reason` y un `docs_url`; la lista completa está en la [página de errores](https://docs.blockvectra.com/es/errors/).

## Documentación oficial

* [coinbase/agentkit en GitHub](https://github.com/coinbase/agentkit)
* [Transporte HTTP de viem](https://viem.sh/docs/clients/transports/http.html)

## Preguntas frecuentes

**¿Ve BlockVectra la clave privada de la billetera?** No. La cuenta de viem firma localmente; el endpoint recibe lecturas y transacciones raw ya firmadas.

**¿Puede el agente leer logs a través del endpoint público?** No. `eth_getLogs` y la Data API necesitan una API key.

**¿Va la clave en los argumentos de las herramientas MCP?** No. Manténgala en el entorno o en los encabezados del cliente MCP.

## Próximos pasos

* [Resumen de frameworks de agentes](https://docs.blockvectra.com/es/guides/agent-frameworks/) para LangChain, ElizaOS, viem y wagmi.
* [Conectar un agente de IA](https://docs.blockvectra.com/es/guides/ai-agents/) para descubrir endpoints con MCP, llms.txt y OpenAPI.
* [Reglas de facturación](https://docs.blockvectra.com/es/guides/billing-rules/) para la medición de CU, los límites de velocidad y los errores no facturados.
