ใช้ blockchain RPC ใน Coinbase AgentKit agent ด้วย BlockVectra

ส่งการอ่านและธุรกรรมของ Coinbase AgentKit agent ผ่าน BlockVectra โดยให้ ViemWalletProvider ใช้ viem client บน endpoint สาธารณะที่ไม่ต้องใช้คีย์ แล้วเพิ่ม API key และเครื่องมือ MCP

Coinbase AgentKit ส่งการดำเนินการออนเชนผ่าน wallet provider และ ViemWalletProvider รับ viem WalletClient ใดก็ได้ ให้ client นั้นใช้ https://api.blockvectra.com/v1/base_mainnet/public เป็น transport แล้วทราฟฟิก RPC ของ AgentKit จะใช้ BlockVectra โดยไม่ต้องใช้ API key คีย์ช่วยเพิ่มเมธอดที่เหลือ; แผนบริการฟรีให้ 30,000,000 CU ต่อช่วงเวลา 30 วัน ตรวจสอบเมื่อ

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 คือรายการที่การเชื่อมต่อ LangChainของ AgentKit ส่งให้ createAgent({ model, tools }); คีย์กระเป๋าเงินอยู่ในสภาพแวดล้อมของคุณ

ใช้ API key

endpoint สาธารณะให้บริการเฉพาะเมธอดใน public.methods ของแต่ละเชน สำหรับเมธอดอื่น ให้ส่งคีย์ในส่วนหัว x-api-key และเก็บไว้ในสภาพแวดล้อม เพื่อไม่ให้คีย์ปรากฏใน URL:

const transport = http("https://api.blockvectra.com/v1/base_mainnet", {
  fetchOptions: { headers: { "x-api-key": process.env.BLOCKVECTRA_API_KEY! } },
});

หากไคลเอนต์ตั้งส่วนหัวไม่ได้ สามารถใส่คีย์ในพาธของ URL (/v1/{chain}/{api_key}) แทนได้; URL อาจไปอยู่ในบันทึกการเข้าถึง จึงควรใช้ส่วนหัว

สร้างคีย์โดยไม่ใช้เบราว์เซอร์ด้วยสี่ขั้นตอนในคู่มือการลงทะเบียนแบบเป็นโปรแกรม: challenge, ลายเซ็น, login แล้ว POST /keys นักพัฒนายังสร้างคีย์ในคอนโซลได้ด้วย คีย์เดียวใช้ได้กับทุกเชน ดังนั้นการสลับ agent ไปยังเครือข่ายอื่นเปลี่ยนเพียง slug ของเชนและออบเจกต์เชนของ viem

ใช้การดำเนินการของ AgentKit ร่วมกับ docs MCP server

แพ็กเกจ TypeScript ของ AgentKit เปิดเผยการดำเนินการเป็นเครื่องมือ LangChain ดังนั้นเครื่องมือ MCP จากอะแดปเตอร์ของ LangChain จึงอยู่ในอาร์เรย์ tools เดียวกันได้ ทำตามคู่มือ LangChainเพื่อโหลด https://docs.blockvectra.com/mcp แล้วรวมกัน:

const agent = createAgent({ model: "claude-sonnet-5", tools: [...tools, ...(await adapter.listTools())] });

agent จะได้การดำเนินการกระเป๋าเงินของ AgentKit พร้อม list_chains, get_status, rpc_call และ read_doc ของ BlockVectra ที่ระบุไว้ในหน้า MCP server การเชื่อมต่อไม่ต้องใช้คีย์

ข้อผิดพลาดที่คุณอาจพบ

การตอบกลับความหมายสิ่งที่ต้องทำ
HTTP 401, -32024, missing_api_keyส่งคำขอที่ต้องใช้คีย์โดยไม่มีคีย์ส่งคีย์ในส่วนหัว x-api-key (หรือพาธของ URL)
HTTP 401, -32024, invalid_api_keyไม่รู้จักคีย์ ถูกปิดใช้งาน หรือถูกเพิกถอนตรวจสอบคีย์ในคอนโซล; คีย์ใหม่ใช้เวลาไม่กี่วินาทีจึงจะเปิดใช้งาน
-32601, method_not_publicเมธอดไม่อยู่ใน public.methods ของเชนเปลี่ยน transport นั้นจาก /public เป็น URL ที่ใช้คีย์

ทุกข้อผิดพลาดของ BlockVectra มี data.reason และ docs_url; รายการทั้งหมดอยู่ในหน้าข้อผิดพลาด

เอกสารทางการ

คำถามที่พบบ่อย

BlockVectra เห็น private key ของกระเป๋าเงินหรือไม่ ไม่เห็น บัญชี viem ลงนามในเครื่อง; endpoint ได้รับเฉพาะการอ่านและธุรกรรมดิบที่ลงนามแล้ว

agent อ่าน log ผ่าน endpoint สาธารณะได้หรือไม่ ไม่ได้ eth_getLogs และ Data API ต้องใช้ API key

คีย์อยู่ในอาร์กิวเมนต์ของเครื่องมือ MCP ได้หรือไม่ ไม่ได้ เก็บไว้ในสภาพแวดล้อมหรือส่วนหัวของไคลเอนต์ MCP

ขั้นตอนถัดไป

อัปเดตล่าสุด:

ในหน้านี้