# Blockchain RPC และ docs MCP สำหรับ Agent Framework

> Source: https://docs.blockvectra.com/th/guides/agent-frameworks/

กำหนดค่า Blockchain RPC ใน ElizaOS, viem, wagmi หรือ Coinbase AgentKit โดยใช้สูตรการตั้งค่าด้านล่างนี้ ทั้งนี้ นักพัฒนาและ AI Agent สามารถใช้ [docs MCP](https://docs.blockvectra.com/en/guides/ai-agents/#connecting-from-mcp-clients) ก่อนเป็นอันดับแรกเพื่อค้นหาเมธอดและเอกสาร จากนั้นทำตาม [ขั้นตอนการสมัครผ่าน HTTP](https://docs.blockvectra.com/en/guides/programmatic-signup/) ที่แยกต่างหากเพื่อสร้าง API key แล้วใช้คีย์ดังกล่าวในคำขอ RPC และ Data API หรือในส่วนหัว `x-api-key` ของ MCP client สำหรับเครื่องมือที่ต้องใช้คีย์ การเข้าถึง RPC แบบไม่ใช้คีย์จะจำกัดอยู่เฉพาะ `public.methods` ของแต่ละเชน

## ElizaOS

* เอกสารอย่างเป็นทางการ: [elizaOS Documentation](https://elizaos.github.io/eliza/)
* เรโปอย่างเป็นทางการ: [elizaos/eliza](https://github.com/elizaos/eliza)

ใน elizaOS นั้น การโต้ตอบกับ EVM จะได้รับการจัดการโดยปลั๊กอิน `@elizaos/plugin-evm` โดยปลั๊กอินจะอ่าน RPC provider endpoint จากตัวแปรสภาพแวดล้อมที่ตั้งชื่อตามรูปแบบ `ETHEREUM_PROVIDER_<NETWORK>` หรือตัวแปรสำรอง `EVM_PROVIDER_URL`

กำหนดค่าไฟล์ `.env` ของคุณด้วย private key ของกระเป๋าเงินและ RPC endpoint:

```bash
# 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` ในการกำหนดค่า character ของ agent ของคุณ:

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

## viem

* เอกสารอย่างเป็นทางการ: [viem Documentation](https://viem.sh/docs/clients/public.html)
* ข้อมูลอ้างอิง transport: [viem HTTP Transport](https://viem.sh/docs/clients/transports/http.html) และ [viem WebSocket Transport](https://viem.sh/docs/clients/transports/websocket.html)
* เรโปอย่างเป็นทางการ: [wevm/viem](https://github.com/wevm/viem)

ใน viem ให้กำหนดค่า client transport โดยใช้ `http()` หรือ `webSocket()`

### HTTP transport พร้อม API key

```typescript
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 transport พร้อม public endpoint แบบไม่ใช้คีย์

สำหรับคำขออ่านบนเมธอดสาธารณะที่อนุญาตโดยไม่ต้องใช้ API key:

```typescript
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 transport

WebSocket transport (`webSocket(...)`) รองรับในเชนที่มี `ws: true` ใน `GET /v1/chains` เช่น บน Robinhood Chain (`robinhood_mainnet`):

```typescript
import { createPublicClient, webSocket } from "viem";

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

สำหรับพารามิเตอร์การเชื่อมต่อและประเภทการสมัครรับข้อมูล โปรดดู [คู่มือการสมัครรับข้อมูลผ่าน WebSocket](https://docs.blockvectra.com/en/guides/websocket-subscriptions/)

## wagmi

* เอกสารอย่างเป็นทางการ: [wagmi createConfig](https://wagmi.sh/core/api/createConfig) และ [wagmi HTTP Transport](https://wagmi.sh/core/api/transports/http)
* เรโปอย่างเป็นทางการ: [wevm/wagmi](https://github.com/wevm/wagmi)

ใน wagmi ให้ส่ง BlockVectra RPC URL ไปยังแมป `transports` ภายใน `createConfig`

### การกำหนดค่าพร้อม API key

```typescript
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}`),
  },
});
```

### การกำหนดค่าพร้อม public endpoint แบบไม่ใช้คีย์

```typescript
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 Documentation](https://docs.cdp.coinbase.com/agentkit/docs/welcome)
* เรโปอย่างเป็นทางการ: [coinbase/agentkit](https://github.com/coinbase/agentkit)

Coinbase AgentKit ใช้ wallet provider ในการดำเนินการคำสั่ง on-chain โดยใน TypeScript นั้น `ViemWalletProvider` จาก `@coinbase/agentkit` จะทำหน้าที่ครอบ (wrap) viem `WalletClient` มาตรฐาน ทำให้คุณสามารถกำหนดเส้นทางการส่งธุรกรรมและการสืบค้น RPC ผ่าน BlockVectra endpoint ได้

### การกำหนดค่าด้วย ViemWalletProvider

```typescript
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")`

## Remote MCP

หาก agent ของคุณเชื่อมต่อผ่าน Model Context Protocol (Streamable HTTP MCP) ให้เชื่อมต่อกับ BlockVectra MCP server endpoint:

`https://docs.blockvectra.com/mcp`

สำหรับคำแนะนำในการกำหนดค่า client บน Claude Code, Cursor, VS Code, Codex, Gemini CLI, OpenAI Responses API และ Windsurf โปรดดู [การเชื่อมต่อจาก MCP client](https://docs.blockvectra.com/en/guides/ai-agents/#connecting-from-mcp-clients) ในคู่มือ AI agent

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

* [เชื่อมต่อ AI agent](https://docs.blockvectra.com/en/guides/ai-agents/) เพื่อค้นหา endpoint ด้วย MCP, llms.txt และ OpenAPI
* [ทำตามคู่มือการสมัครผ่านโปรแกรม](https://docs.blockvectra.com/en/guides/programmatic-signup/) เพื่อสมัครและสร้าง API key ด้วยลายเซ็นกระเป๋าเงิน หรือ [เข้าสู่ระบบคอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F) เพื่อสร้างคีย์
* [กฎการคิดค่าบริการ](https://docs.blockvectra.com/en/guides/billing-rules/) เพื่อตรวจสอบการวัดปริมาณ Compute Unit (CU), ขีดจำกัดอัตรา และข้อผิดพลาดที่ไม่คิดค่าบริการ
