在 Coinbase AgentKit Agent 中用 BlockVectra 呼叫區塊鏈 RPC
讓 ViemWalletProvider 使用免 key 公共端點的 viem 用戶端,把 Coinbase AgentKit 的讀取與交易經 BlockVectra 送出,再設定 API key 與 MCP 工具。
Coinbase AgentKit 透過錢包提供者執行鏈上操作,ViemWalletProvider 接受任意 viem WalletClient。把該用戶端的傳輸層設為 https://api.blockvectra.com/v1/base_mainnet/public,AgentKit 的 RPC 流量不需要 API key 即走 BlockVectra。加上 key 可使用其餘方法,免費方案每個 30 天視窗含 30,000,000 CU。核對於 。
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);以 npm install @coinbase/agentkit @coinbase/agentkit-langchain viem 安裝。tools 即 AgentKit 的 LangChain 整合傳給 createAgent({ model, tools }) 的工具清單;錢包金鑰留在你的環境變數中。
使用 API key
公共端點只提供各鏈 public.methods 中的方法。其餘方法請透過 x-api-key 標頭送出 key,並保存在環境變數中,這樣 key 不會出現在 URL 裡:
const transport = http("https://api.blockvectra.com/v1/base_mainnet", {
fetchOptions: { headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! } },
});如果用戶端無法設定標頭,也可以改把 key 放進 URL 路徑(/v1/{chain}/{api_key});URL 可能出現在存取日誌中,因此優先使用標頭。
不用瀏覽器建立 key,請依程式化建立帳戶指南的四個步驟操作:challenge、簽章、login,再 POST /keys。開發者也可以在控制台建立 key。同一把 key 適用於所有鏈,因此把 Agent 切到其他網路只需改鏈識別碼與 viem 的 chain 物件。
把 AgentKit 動作與文件 MCP 伺服器合用
AgentKit 的 TypeScript 套件把動作公開為 LangChain 工具,因此 LangChain 轉接器提供的 MCP 工具可以放進同一個 tools 陣列。依 LangChain 指南載入 https://docs.blockvectra.com/mcp,再合併:
const agent = createAgent({ model: "claude-sonnet-5", tools: [...tools, ...(await adapter.listTools())] });Agent 因此同時擁有 AgentKit 的錢包動作與 BlockVectra 的 list_chains、get_status、rpc_call、read_doc,工具清單見 MCP 伺服器頁面。連線不需要 key。
可能遇到的錯誤
| 回應 | 含義 | 處理方式 |
|---|---|---|
HTTP 401,-32024,missing_api_key | 送出需要 key 的請求時沒帶 key | 用 x-api-key 標頭(或 URL 路徑)送出 key |
HTTP 401,-32024,invalid_api_key | key 不存在、已停用或已撤銷 | 在控制台核對 key;新 key 需要幾秒鐘生效 |
-32601,method_not_public | 該方法不在該鏈的 public.methods 中 | 把該傳輸層從 /public 換成需要 key 的網址 |
BlockVectra 的每個錯誤都帶有 data.reason 與 docs_url;完整清單見錯誤碼頁面。
官方文件
常見問題
BlockVectra 看得到錢包私鑰嗎? 看不到。viem 帳戶在本機簽章;端點收到的是讀取請求與已簽章的原始交易。
Agent 能透過公共端點讀取日誌嗎? 不能。eth_getLogs 與 Data API 需要 API key。
key 要放進 MCP 工具參數嗎? 不要。把它放在環境變數或 MCP 用戶端標頭中。
下一步
- Agent 框架總覽:LangChain、ElizaOS、viem 與 wagmi。
- 連線 AI Agent:透過 MCP、llms.txt 與 OpenAPI 探索端點。
- 計費規則:CU 計量、速率限制與不計費的錯誤。
最後更新: