# Блокчейн-RPC в агентах Coinbase AgentKit з BlockVectra

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

Coinbase AgentKit надсилає свої ончейн-дії через провайдер гаманця, а `ViemWalletProvider` приймає будь-який viem `WalletClient`. Вкажіть цьому клієнту `https://api.blockvectra.com/v1/base_mainnet/public` як транспорт, і 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

Публічний ендпоінт обслуговує лише методи з `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/uk/guides/programmatic-signup/?ref=docs-agentkit): challenge, підпис, вхід, потім `POST /keys`. Розробники також можуть [створити ключ у консолі](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-agentkit). Один ключ працює в кожній мережі, тож перемикання агента на іншу мережу змінює лише ідентифікатор мережі та об'єкт мережі viem.

## Поєднайте дії AgentKit із docs MCP-сервером

TypeScript-пакет AgentKit надає свої дії як інструменти LangChain, тож інструменти MCP з адаптера LangChain потрапляють у той самий масив `tools`. Дотримуйтесь [посібника LangChain](https://docs.blockvectra.com/uk/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())] });
```

Агент отримує дії гаманця AgentKit разом з `list_chains`, `get_status`, `rpc_call` і `read_doc` від BlockVectra, перелічені на [сторінці MCP-сервера](https://docs.blockvectra.com/uk/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` мережі        | Перемкніть цей транспорт із `/public` на URL із ключем            |

Кожна помилка BlockVectra містить `data.reason` і `docs_url`; повний список — на [сторінці помилок](https://docs.blockvectra.com/uk/errors/).

## Офіційна документація

* [coinbase/agentkit на GitHub](https://github.com/coinbase/agentkit)
* [HTTP-транспорт viem](https://viem.sh/docs/clients/transports/http.html)

## Поширені запитання

**Чи бачить BlockVectra приватний ключ гаманця?** Ні. Акаунт viem підписує локально; ендпоінт отримує читання та підписані сирі транзакції.

**Чи може агент читати логи через публічний ендпоінт?** Ні. `eth_getLogs` і Data API потребують API key.

**Чи передається ключ в аргументах інструментів MCP?** Ні. Тримайте його в середовищі або в заголовках MCP-клієнта.

## Наступні кроки

* [Огляд фреймворків агентів](https://docs.blockvectra.com/uk/guides/agent-frameworks/) для LangChain, ElizaOS, viem і wagmi.
* [Підключення AI-агента](https://docs.blockvectra.com/uk/guides/ai-agents/) для виявлення ендпоінтів через MCP, llms.txt і OpenAPI.
* [Правила тарифікації](https://docs.blockvectra.com/uk/guides/billing-rules/) щодо обліку CU, лімітів швидкості та помилок, що не тарифікуються.
