Agent フレームワーク向けのブロックチェーン RPC とドキュメント MCP

ElizaOS、viem、wagmi、Coinbase AgentKit のブロックチェーン RPC を設定し、ドキュメント MCP 経由で機能を見つけます。

以下のレシピを使用して、ElizaOS、viem、wagmi、Coinbase AgentKit でブロックチェーン RPC を設定します。開発者や AI エージェントは、まず ドキュメント MCP を使ってメソッドとドキュメントを検出し、その後に独立した HTTP サインアップフロー に従って API key を作成できます。そのキーを RPC や Data API リクエスト、またはキーが必要なツール向けの MCP クライアントの x-api-key ヘッダーで使用します。キーなしの RPC アクセスは各チェーンの public.methods に制限されます。

ElizaOS

elizaOS では、EVM とのやり取りは @elizaos/plugin-evm プラグインによって処理されます。このプラグインは、ETHEREUM_PROVIDER_<NETWORK> パターンで命名された環境変数、またはフォールバック変数 EVM_PROVIDER_URL から RPC プロバイダーのエンドポイントを読み取ります。

ウォレットの秘密鍵と RPC エンドポイントを .env ファイルに設定します:

# EVM wallet private key for signing transactions
export EVM_PRIVATE_KEY=0x...

# Dedicated endpoints with API key
export ETHEREUM_PROVIDER_ETHEREUM=https://api.blockvectra.com/v1/eth_mainnet/${BLOCKVECTRA_API_KEY}
export ETHEREUM_PROVIDER_BASE=https://api.blockvectra.com/v1/base_mainnet/${BLOCKVECTRA_API_KEY}

# Keyless public RPC endpoint
# export ETHEREUM_PROVIDER_ETHEREUM=https://api.blockvectra.com/v1/eth_mainnet/public

エージェントのキャラクター設定に @elizaos/plugin-evm を含めます:

{
  "name": "DeFiAgent",
  "plugins": ["@elizaos/plugin-evm"]
}

viem

viem では、http() または webSocket() を使用してクライアントトランスポートを設定します。

API key を使用する HTTP トランスポート

import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";

export const client = createPublicClient({
  chain: mainnet,
  transport: http(`https://api.blockvectra.com/v1/eth_mainnet/${process.env.BLOCKVECTRA_API_KEY}`),
});

キー不要の公開エンドポイントによる HTTP トランスポート

API key なしで許可された公開メソッドに対する読み取りリクエストを行う場合:

import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";

export const publicClient = createPublicClient({
  chain: mainnet,
  transport: http("https://api.blockvectra.com/v1/eth_mainnet/public"),
});

WebSocket トランスポート

WebSocket トランスポート(webSocket(...))は、Robinhood Chain(robinhood_mainnet)など、GET /v1/chains で ws: true となっているチェーンでサポートされています:

import { createPublicClient, webSocket } from "viem";

export const wsClient = createPublicClient({
  transport: webSocket(`wss://api.blockvectra.com/v1/robinhood_mainnet/${process.env.BLOCKVECTRA_API_KEY}`),
});

接続パラメータとサブスクリプションの種類については、WebSocket サブスクリプションガイドを参照してください。

wagmi

wagmi では、createConfig 内の transports マップに BlockVectra の RPC URL を渡します。

API key を使用する設定

import { createConfig, http } from "wagmi";
import { mainnet } from "wagmi/chains";

export const config = createConfig({
  chains: [mainnet],
  transports: {
    [mainnet.id]: http(`https://api.blockvectra.com/v1/eth_mainnet/${process.env.BLOCKVECTRA_API_KEY}`),
  },
});

キー不要の公開エンドポイントによる設定

import { createConfig, http } from "wagmi";
import { mainnet } from "wagmi/chains";

export const config = createConfig({
  chains: [mainnet],
  transports: {
    [mainnet.id]: http("https://api.blockvectra.com/v1/eth_mainnet/public"),
  },
});

Coinbase AgentKit

Coinbase AgentKit は、オンチェーンアクションを実行するためにウォレットプロバイダーを使用します。TypeScript では、@coinbase/agentkit の ViemWalletProvider が標準の viem WalletClient をラップし、トランザクションの実行と RPC クエリを BlockVectra のエンドポイント経由でルーティングできるようにします。

ViemWalletProvider を使用する設定

import { AgentKit, ViemWalletProvider } from "@coinbase/agentkit";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { mainnet } from "viem/chains";

const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`);

const client = createWalletClient({
  account,
  chain: mainnet,
  transport: http(`https://api.blockvectra.com/v1/eth_mainnet/${process.env.BLOCKVECTRA_API_KEY}`),
});

const walletProvider = new ViemWalletProvider(client);

export const agentKit = await AgentKit.from({
  walletProvider,
});

許可されたメソッドでの読み取り操作には、http("https://api.blockvectra.com/v1/eth_mainnet/public") を設定します。

リモート MCP

エージェントが Model Context Protocol(Streamable HTTP MCP)経由で接続する場合は、BlockVectra MCP サーバーエンドポイントに接続します:

https://docs.blockvectra.com/mcp

Claude Code、Cursor、VS Code、Codex、Gemini CLI、OpenAI Responses API、Windsurf におけるクライアント設定手順については、AI エージェントガイドの MCP クライアントからの接続 を参照してください。

次のステップ

最終更新:

このページの目次