# Agent 프레임워크를 위한 블록체인 RPC 및 문서 MCP

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

아래 안내에 따라 ElizaOS, viem, wagmi 또는 Coinbase AgentKit에서 블록체인 RPC를 설정하세요. 개발자와 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 요청이나 MCP 클라이언트의 `x-api-key` 헤더(키가 필요한 도구용)에 사용하세요. 키가 없는 공개 RPC 접근은 각 체인의 `public.methods`로 제한됩니다.

## ElizaOS

* 공식 문서: [elizaOS Documentation](https://elizaos.github.io/eliza/)
* 공식 저장소: [elizaos/eliza](https://github.com/elizaos/eliza)

elizaOS에서 EVM 상호작용은 `@elizaos/plugin-evm` 플러그인이 처리합니다. 이 플러그인은 `ETHEREUM_PROVIDER_<NETWORK>` 패턴의 환경 변수 또는 대체 변수인 `EVM_PROVIDER_URL`에서 RPC 공급자 엔드포인트를 읽어옵니다.

지갑 프라이빗 키와 RPC 엔드포인트를 `.env` 파일에 설정하세요:

```bash
# 트랜잭션 서명용 EVM 지갑 프라이빗 키
export EVM_PRIVATE_KEY=0x...

# 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}

# 키가 필요 없는 공개 RPC 엔드포인트
# export ETHEREUM_PROVIDER_ETHEREUM=https://api.blockvectra.com/v1/eth_mainnet/public
```

Agent 캐릭터 설정에 `@elizaos/plugin-evm`을 포함하세요:

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

## viem

* 공식 문서: [viem Documentation](https://viem.sh/docs/clients/public.html)
* 전송 계층 레퍼런스: [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에서는 `http()` 또는 `webSocket()`을 사용하여 클라이언트 전송 계층을 설정합니다.

### API key를 사용하는 HTTP 전송

```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 전송

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 전송

WebSocket 전송(`webSocket(...)`)은 Robinhood Chain(`robinhood_mainnet`)과 같이 `GET /v1/chains`에서 `ws: true`로 표시된 체인에서 지원됩니다:

```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에서는 `createConfig` 내부의 `transports` 맵에 BlockVectra RPC URL을 전달합니다.

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

### 키가 필요 없는 공개 엔드포인트 설정

```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)를 사용합니다. TypeScript의 경우 `@coinbase/agentkit`의 `ViemWalletProvider`가 표준 viem `WalletClient`를 감싸서 트랜잭션 실행 및 RPC 쿼리를 BlockVectra 엔드포인트를 통해 라우팅할 수 있도록 지원합니다.

### 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")`로 구성하세요.

## 원격 MCP

에이전트가 모델 컨텍스트 프로토콜(Model Context Protocol, Streamable HTTP MCP)을 통해 연결하는 경우 BlockVectra MCP 서버 엔드포인트에 연결하세요:

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

Claude Code, Cursor, VS Code, Codex, Gemini CLI, OpenAI Responses API, Windsurf에 걸친 클라이언트 설정 지침은 AI 에이전트 가이드의 [MCP 클라이언트에서 연결](https://docs.blockvectra.com/en/guides/ai-agents/#connecting-from-mcp-clients)을 참조하세요.

## 다음 단계

* [AI 에이전트 연결](https://docs.blockvectra.com/en/guides/ai-agents/): 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) 측정, 속도 제한 및 비과금 오류를 확인하세요.
