Utiliser le RPC blockchain dans les agents ElizaOS avec BlockVectra

Pointez le plugin-evm d'ElizaOS vers BlockVectra avec deux variables d'environnement, démarrez sans clé sur le point de terminaison public, puis ajoutez le serveur MCP de documentation via plugin-mcp.

Les agents ElizaOS accèdent aux chaînes EVM via @elizaos/plugin-evm, qui lit ses URL RPC dans l'environnement. Définissez EVM_PROVIDER_URL sur https://api.blockvectra.com/v1/eth_mainnet/public et le plugin utilise BlockVectra pour Ethereum mainnet sans API key. Le forfait gratuit ajoute les méthodes avec clé, avec 30,000,000 CU par fenêtre de 30 jours. Vérifié le .

# .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
{
  "name": "DeFiAgent",
  "plugins": ["@elizaos/plugin-evm"],
  "settings": { "chains": { "evm": ["base"] } }
}

Installez le plugin avec bun add @elizaos/plugin-evm. Ethereum mainnet est activé par défaut ; toute autre chaîne listée dans settings.chains.evm doit utiliser le nom de son export viem/chains, et sa variable d'URL est ETHEREUM_PROVIDER_<CHAIN_NAME> en majuscules, comme dans le README du plugin sur npm.

Utiliser une API key

Les points de terminaison publics ne couvrent que les méthodes de public.methods de chaque chaîne. Pour les autres, placez la clé dans le chemin de l'URL (/v1/{chain}/{api_key}). Le plugin n'accepte qu'une URL ; c'est donc le seul cas où la clé transite dans le chemin. Exportez les variables dans le shell qui démarre l'agent afin que la clé n'atterrisse jamais dans un fichier que vous commitez :

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}

Les URL peuvent apparaître dans les journaux, les proxys et les messages d'erreur ; utilisez donc une clé distincte avec un cu_cap bas pour l'agent, et révoquez-la dans la console en cas de fuite.

Pour créer la clé sans navigateur, suivez 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. La même clé fonctionne sur toutes les chaînes, donc une seule clé sert chaque variable ETHEREUM_PROVIDER_*.

Ajouter le serveur MCP de documentation

@elizaos/plugin-mcp permet à un personnage d'utiliser des serveurs MCP distants via Streamable HTTP. Installez-le avec bun add @elizaos/plugin-mcp, puis enregistrez le serveur de documentation BlockVectra dans les paramètres du personnage :

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

L'agent peut alors appeler, sans clé, list_chains, get_status, rpc_call, read_doc et les autres outils listés sur la page du serveur MCP. Les options HTTP documentées du plugin sont type, url et timeout ; il ne documente aucune option d'en-tête, donc les outils MCP avec clé sont hors de portée avec cette configuration. Conservez les lectures avec clé dans plugin-evm comme ci-dessus.

Erreurs que vous pouvez rencontrer

RéponseSignificationQue faire
HTTP 401, -32024, missing_api_keyUne URL avec clé a été appelée sans cléPlacer la clé dans le chemin ou dans l'en-tête x-api-key
HTTP 401, -32024, invalid_api_keyClé inconnue, désactivée ou révoquéeVérifier la clé dans la console ; une nouvelle clé met quelques secondes à s'activer
-32601, method_not_publicLa méthode ne figure pas dans public.methods de la chaînePasser l'URL de cette chaîne de /public à la forme avec clé
Chaîne non reconnueLe nom dans settings.chains.evm ne correspond à aucun nom de viem/chainsUtiliser le nom exact de viem/chains

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

EVM_PROVIDER_URL s'applique-t-il à Base ? Non. Elle ne définit qu'Ethereum mainnet ; les autres chaînes utilisent ETHEREUM_PROVIDER_<CHAIN_NAME>.

Un agent peut-il signer et envoyer des transactions via le point de terminaison public ? eth_sendRawTransaction figure dans public.methods pour les chaînes qui le listent, avec sa propre limite de débit par IP plus basse sous public.send_raw_rate_limit dans GET /v1/chains. Lisez la limite à cet endroit avant de bâtir dessus.

Ai-je besoin d'une clé pour le serveur MCP ? Non. La connexion ainsi que les outils de documentation, de chaînes et de tarifs fonctionnent sans clé.

Prochaines étapes

Dernière mise à jour :

Sur cette page