Usar RPC blockchain en agentes de Coinbase AgentKit con BlockVectra

Dirija las lecturas y transacciones de un agente de Coinbase AgentKit a través de BlockVectra dando a ViemWalletProvider un cliente viem en el endpoint público sin clave; después añada una API key y herramientas MCP.

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 .

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 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:

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: desafío, firma, inicio de sesión y después POST /keys. Los desarrolladores también pueden crear una clave en la consola. 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 para cargar https://docs.blockvectra.com/mcp y después combine:

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. Conectarse no requiere clave.

Errores que puede encontrar

RespuestaSignificadoQué hacer
HTTP 401, -32024, missing_api_keySe envió una solicitud con clave sin claveEnviar la clave en el encabezado x-api-key (o en la ruta de la URL)
HTTP 401, -32024, invalid_api_keyClave desconocida, desactivada o revocadaComprobar la clave en la consola; una clave nueva tarda unos segundos en activarse
-32601, method_not_publicEl método no está en public.methods de la cadenaCambiar 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.

Documentación oficial

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

Última actualización:

En esta página