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

> Source: https://docs.blockvectra.com/th/guides/coinbase-agentkit/

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 วัน ตรวจสอบเมื่อ 2026-10-11

```typescript
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](https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md)ของ AgentKit ส่งให้ `createAgent({ model, tools })`; คีย์กระเป๋าเงินอยู่ในสภาพแวดล้อมของคุณ

## ใช้ API key

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

```typescript
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 อาจไปอยู่ในบันทึกการเข้าถึง จึงควรใช้ส่วนหัว

สร้างคีย์โดยไม่ใช้เบราว์เซอร์ด้วยสี่ขั้นตอนใน[คู่มือการลงทะเบียนแบบเป็นโปรแกรม](https://docs.blockvectra.com/th/guides/programmatic-signup/?ref=docs-agentkit): challenge, ลายเซ็น, login แล้ว `POST /keys` นักพัฒนายัง[สร้างคีย์ในคอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-agentkit)ได้ด้วย คีย์เดียวใช้ได้กับทุกเชน ดังนั้นการสลับ agent ไปยังเครือข่ายอื่นเปลี่ยนเพียง slug ของเชนและออบเจกต์เชนของ viem

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

แพ็กเกจ TypeScript ของ AgentKit เปิดเผยการดำเนินการเป็นเครื่องมือ LangChain ดังนั้นเครื่องมือ MCP จากอะแดปเตอร์ของ LangChain จึงอยู่ในอาร์เรย์ `tools` เดียวกันได้ ทำตาม[คู่มือ LangChain](https://docs.blockvectra.com/th/guides/langchain/#add-the-docs-mcp-server)เพื่อโหลด `https://docs.blockvectra.com/mcp` แล้วรวมกัน:

```typescript
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](https://docs.blockvectra.com/th/guides/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`; รายการทั้งหมดอยู่ใน[หน้าข้อผิดพลาด](https://docs.blockvectra.com/th/errors/)

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

* [coinbase/agentkit บน GitHub](https://github.com/coinbase/agentkit)
* [viem HTTP transport](https://viem.sh/docs/clients/transports/http.html)

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

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

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

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

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

* [ภาพรวมเฟรมเวิร์ก agent](https://docs.blockvectra.com/th/guides/agent-frameworks/) สำหรับ LangChain, ElizaOS, viem และ wagmi
* [เชื่อมต่อ AI Agent](https://docs.blockvectra.com/th/guides/ai-agents/) เพื่อค้นหา endpoint ด้วย MCP, llms.txt และ OpenAPI
* [กฎการเรียกเก็บเงิน](https://docs.blockvectra.com/th/guides/billing-rules/) สำหรับการวัด CU ขีดจำกัดอัตรา และข้อผิดพลาดที่ไม่คิดค่าบริการ
