# Gunakan RPC blockchain di Agent Coinbase AgentKit dengan BlockVectra

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

Coinbase AgentKit mengirim aksi onchain-nya melalui wallet provider, dan `ViemWalletProvider` menerima `WalletClient` viem apa pun. Berikan `https://api.blockvectra.com/v1/base_mainnet/public` sebagai transport klien tersebut dan lalu lintas RPC AgentKit memakai BlockVectra tanpa API key. API key menambahkan metode lainnya; Paket Gratis memberi 30,000,000 CU per jendela 30 hari. Diperiksa pada 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);
```

Instal dengan `npm install @coinbase/agentkit @coinbase/agentkit-langchain viem`. `tools` adalah daftar yang diberikan [integrasi LangChain](https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md) AgentKit ke `createAgent({ model, tools })`; private key dompet tetap berada di lingkungan Anda.

## Gunakan API key

Endpoint publik hanya melayani metode dalam `public.methods` setiap chain. Untuk metode lainnya, kirim API key dalam header `x-api-key` dan simpan di lingkungan, sehingga tidak pernah muncul di URL:

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

Jika klien tidak dapat mengatur header, API key dapat diletakkan di path URL (`/v1/{chain}/{api_key}`); URL dapat berakhir di log akses, jadi utamakan header.

Buat API key tanpa browser dengan empat langkah dalam [panduan pendaftaran terprogram](https://docs.blockvectra.com/id/guides/programmatic-signup/?ref=docs-agentkit): challenge, tanda tangan, login, lalu `POST /keys`. Pengembang juga dapat [membuat API key di konsol](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-agentkit). Satu API key berlaku di semua chain, sehingga memindahkan Agent ke jaringan lain hanya mengubah slug chain dan objek chain viem.

## Gabungkan aksi AgentKit dengan server MCP dokumentasi

Paket TypeScript AgentKit menyediakan aksinya sebagai alat LangChain, sehingga alat MCP dari adapter LangChain masuk ke array `tools` yang sama. Ikuti [panduan LangChain](https://docs.blockvectra.com/id/guides/langchain/#add-the-docs-mcp-server) untuk memuat `https://docs.blockvectra.com/mcp`, lalu gabungkan:

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

Agent mendapatkan aksi dompet AgentKit ditambah `list_chains`, `get_status`, `rpc_call`, dan `read_doc` dari BlockVectra, yang tercantum di [halaman server MCP](https://docs.blockvectra.com/id/guides/mcp-server/). Untuk terhubung tidak diperlukan API key.

## Error yang mungkin Anda lihat

| Respons                               | Arti                                                     | Yang harus dilakukan                                                          |
| ------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------- |
| HTTP 401, `-32024`, `missing_api_key` | Permintaan yang memerlukan API key dikirim tanpa API key | Kirim API key dalam header `x-api-key` (atau path URL)                        |
| HTTP 401, `-32024`, `invalid_api_key` | API key tidak dikenal, dinonaktifkan, atau dicabut       | Periksa API key di konsol; API key baru memerlukan beberapa detik untuk aktif |
| `-32601`, `method_not_public`         | Metode tidak ada di `public.methods` chain               | Ganti transport tersebut dari `/public` ke URL dengan API key                 |

Setiap error BlockVectra memuat `data.reason` dan `docs_url`; daftar lengkapnya ada di [halaman error](https://docs.blockvectra.com/id/errors/).

## Dokumentasi resmi

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

## Pertanyaan umum

**Apakah BlockVectra melihat private key dompet?** Tidak. Akun viem menandatangani secara lokal; endpoint hanya menerima pembacaan dan transaksi mentah yang sudah ditandatangani.

**Dapatkah Agent membaca log melalui endpoint publik?** Tidak. `eth_getLogs` dan Data API memerlukan API key.

**Apakah API key diletakkan di argumen alat MCP?** Tidak. Simpan di lingkungan atau header klien MCP.

## Langkah selanjutnya

* [Ikhtisar framework Agent](https://docs.blockvectra.com/id/guides/agent-frameworks/) untuk LangChain, ElizaOS, viem, dan wagmi.
* [Hubungkan AI Agent](https://docs.blockvectra.com/id/guides/ai-agents/) untuk menemukan endpoint dengan MCP, llms.txt, dan OpenAPI.
* [Aturan penagihan](https://docs.blockvectra.com/id/guides/billing-rules/) untuk pengukuran CU, batas laju, dan error yang tidak ditagih.
