Dùng RPC blockchain trong Agent Coinbase AgentKit với BlockVectra

Chuyển các lệnh đọc và giao dịch của Agent Coinbase AgentKit qua BlockVectra bằng cách cấp cho ViemWalletProvider một viem client trên endpoint công khai không cần key, rồi thêm API key và công cụ MCP.

Coinbase AgentKit gửi các hành động onchain qua một wallet provider, và ViemWalletProvider chấp nhận bất kỳ viem WalletClient nào. Cấp cho client đó https://api.blockvectra.com/v1/base_mainnet/public làm transport và lưu lượng RPC của AgentKit sẽ dùng BlockVectra mà không cần API key. API key bổ sung phần còn lại; Gói miễn phí cung cấp 30,000,000 CU cho mỗi cửa sổ 30 ngày. Kiểm tra ngày .

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);

Cài đặt bằng npm install @coinbase/agentkit @coinbase/agentkit-langchain viem. tools là danh sách mà tích hợp LangChain của AgentKit truyền cho createAgent({ model, tools }); khóa ví nằm trong môi trường của bạn.

Dùng API key

Endpoint công khai chỉ phục vụ các phương thức trong public.methods của từng chuỗi. Với các phương thức khác, gửi key trong header x-api-key và giữ key trong biến môi trường để nó không bao giờ xuất hiện trong URL:

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

Nếu client không thể đặt header, có thể đặt key vào đường dẫn URL (/v1/{chain}/{api_key}); URL có thể nằm lại trong log truy cập, nên ưu tiên dùng header.

Tạo key mà không cần trình duyệt bằng bốn bước trong hướng dẫn đăng ký bằng chương trình: challenge, chữ ký, đăng nhập, rồi POST /keys. Nhà phát triển cũng có thể tạo key trong console. Một key dùng được trên mọi chuỗi, nên khi chuyển Agent sang mạng khác chỉ cần đổi chain slug và đối tượng chain của viem.

Kết hợp hành động AgentKit với máy chủ MCP tài liệu

Gói TypeScript của AgentKit cung cấp các hành động của nó dưới dạng công cụ LangChain, nên công cụ MCP từ adapter của LangChain được đưa vào cùng mảng tools. Làm theo hướng dẫn LangChain để nạp https://docs.blockvectra.com/mcp, rồi gộp lại:

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

Agent nhận các hành động ví của AgentKit cùng list_chains, get_status, rpc_call và read_doc của BlockVectra, được liệt kê trên trang máy chủ MCP. Kết nối không cần key.

Các lỗi bạn có thể gặp

Phản hồiÝ nghĩaCần làm
HTTP 401, -32024, missing_api_keyYêu cầu cần key được gửi mà không có keyGửi key trong header x-api-key (hoặc đường dẫn URL)
HTTP 401, -32024, invalid_api_keyKey không tồn tại, đã bị vô hiệu hóa hoặc đã bị thu hồiKiểm tra key trong console; key mới cần vài giây để kích hoạt
-32601, method_not_publicPhương thức không nằm trong public.methods của chuỗiChuyển transport đó từ /public sang URL dùng key

Mỗi lỗi của BlockVectra có data.reason và docs_url; danh sách đầy đủ nằm trên trang lỗi.

Tài liệu chính thức

Câu hỏi thường gặp

BlockVectra có thấy khóa riêng tư của ví không? Không. Tài khoản viem ký cục bộ; endpoint chỉ nhận các lệnh đọc và giao dịch thô đã ký.

Agent có thể đọc log qua endpoint công khai không? Không. eth_getLogs và Data API cần API key.

Key có nằm trong tham số của công cụ MCP không? Không. Giữ key trong biến môi trường hoặc header của MCP client.

Bước tiếp theo

Cập nhật lần cuối:

Trên trang này