Utiliser le RPC blockchain dans les agents Coinbase AgentKit avec BlockVectra
Acheminez les lectures et les transactions d'un agent Coinbase AgentKit via BlockVectra en donnant à ViemWalletProvider un client viem sur le point de terminaison public sans clé, puis ajoutez une API key et des outils MCP.
Coinbase AgentKit envoie ses actions on-chain via un fournisseur de portefeuille, et ViemWalletProvider accepte n'importe quel WalletClient viem. Donnez à ce client https://api.blockvectra.com/v1/base_mainnet/public comme transport et le trafic RPC d'AgentKit passe par BlockVectra sans API key. Une clé ajoute le reste ; le forfait gratuit offre 30,000,000 CU par fenêtre de 30 jours. Vérifié le .
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);Installez avec npm install @coinbase/agentkit @coinbase/agentkit-langchain viem. tools est la liste que l'intégration LangChain d'AgentKit transmet à createAgent({ model, tools }) ; la clé du portefeuille reste dans votre environnement.
Utiliser une API key
Le point de terminaison public ne sert que les méthodes de public.methods de chaque chaîne. Pour les autres, envoyez la clé dans l'en-tête x-api-key et conservez-la dans l'environnement, afin qu'elle n'apparaisse jamais dans l'URL :
const transport = http("https://api.blockvectra.com/v1/base_mainnet", {
fetchOptions: { headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! } },
});Si un client ne peut pas définir d'en-têtes, la clé peut être placée à la place dans le chemin de l'URL (/v1/{chain}/{api_key}) ; les URL peuvent se retrouver dans les journaux d'accès, donc préférez l'en-tête.
Créez la clé sans navigateur avec les quatre étapes du guide d'inscription programmatique : challenge, signature, connexion, puis POST /keys. Les développeurs peuvent aussi créer une clé dans la console. Une seule clé fonctionne sur toutes les chaînes ; passer l'agent sur un autre réseau ne change donc que le slug de la chaîne et l'objet chaîne de viem.
Combiner les actions AgentKit avec le serveur MCP de documentation
Le paquet TypeScript d'AgentKit expose ses actions sous forme d'outils LangChain ; les outils MCP issus de l'adaptateur de LangChain peuvent donc aller dans le même tableau tools. Suivez le guide LangChain pour charger https://docs.blockvectra.com/mcp, puis fusionnez :
const agent = createAgent({ model: "claude-sonnet-5", tools: [...tools, ...(await adapter.listTools())] });L'agent obtient les actions de portefeuille d'AgentKit ainsi que list_chains, get_status, rpc_call et read_doc de BlockVectra, listés sur la page du serveur MCP. La connexion ne nécessite aucune clé.
Erreurs que vous pouvez rencontrer
| Réponse | Signification | Que faire |
|---|---|---|
HTTP 401, -32024, missing_api_key | Une requête avec clé a été envoyée sans clé | Envoyer la clé dans l'en-tête x-api-key (ou dans le chemin de l'URL) |
HTTP 401, -32024, invalid_api_key | Clé inconnue, désactivée ou révoquée | Vérifier la clé dans la console ; une nouvelle clé met quelques secondes à s'activer |
-32601, method_not_public | La méthode ne figure pas dans public.methods de la chaîne | Passer ce transport de /public à l'URL avec clé |
Chaque erreur BlockVectra comporte data.reason et un docs_url ; la liste complète se trouve sur la page des erreurs.
Documentation officielle
Questions fréquentes
BlockVectra voit-il la clé privée du portefeuille ? Non. Le compte viem signe en local ; le point de terminaison reçoit des lectures et des transactions brutes déjà signées.
L'agent peut-il lire les logs via le point de terminaison public ? Non. eth_getLogs et la Data API nécessitent une API key.
La clé passe-t-elle dans les arguments des outils MCP ? Non. Conservez-la dans l'environnement ou dans les en-têtes du client MCP.
Prochaines étapes
- Vue d'ensemble des frameworks d'agents pour LangChain, ElizaOS, viem et wagmi.
- Connecter un agent IA pour découvrir les points de terminaison avec MCP, llms.txt et OpenAPI.
- Règles de facturation pour la mesure en CU, les limites de débit et les erreurs non facturées.
Dernière mise à jour :
Choisir un fournisseur RPC
Évaluez les coûts des méthodes RPC, les plages de logs, les crédits gratuits, les limites de débit, la couverture des chaînes, les API push et de données, l'authentification et l'accès des agents avec des auto-tests de charge de travail.
Déploiement de contrat
Déployez Hello.sol sur un réseau EVM avec Foundry ou Hardhat 2, vérifiez le Chain ID, et inspectez le reçu de transaction et la réponse du contrat.