# BlockVectra ile Coinbase AgentKit agent'larında blokzincir RPC kullanın

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

Coinbase AgentKit zincir üstü eylemlerini bir cüzdan sağlayıcısı üzerinden gönderir ve `ViemWalletProvider` herhangi bir viem `WalletClient` kabul eder. Bu istemciye taşıma olarak `https://api.blockvectra.com/v1/base_mainnet/public` adresini verin; AgentKit'in RPC trafiği API key olmadan BlockVectra'yı kullanır. Bir anahtar gerisini ekler; Ücretsiz Plan 30 günlük pencere başına 30,000,000 CU verir. Kontrol tarihi 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` ile kurun. `tools`, AgentKit'in [LangChain entegrasyonunun](https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md) `createAgent({ model, tools })` çağrısına ilettiği listedir; cüzdan anahtarı ortamınızda kalır.

## Bir API key kullanın

Genel uç nokta yalnızca her zincirin `public.methods` listesindeki yöntemleri sunar. Diğerleri için anahtarı `x-api-key` başlığında gönderin ve ortamda tutun; böylece URL'de hiç görünmez:

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

Bir istemci başlık ayarlayamıyorsa anahtar bunun yerine URL yoluna konabilir (`/v1/{chain}/{api_key}`); URL'ler erişim günlüklerine düşebileceği için başlığı tercih edin.

Anahtarı tarayıcı olmadan [programatik kayıt rehberindeki](https://docs.blockvectra.com/tr/guides/programmatic-signup/?ref=docs-agentkit) dört adımla oluşturun: challenge, imza, oturum açma, ardından `POST /keys`. Geliştiriciler ayrıca [konsolda bir anahtar oluşturabilir](https://console.blockvectra.com/login/?next=%2Fkeys%2F\&ref=docs-agentkit). Tek bir anahtar her zincirde çalışır; bu nedenle agent'ı başka bir ağa geçirmek yalnızca zincir slug'ını ve viem zincir nesnesini değiştirir.

## AgentKit eylemlerini belge MCP sunucusuyla birleştirin

AgentKit'in TypeScript paketi eylemlerini LangChain araçları olarak sunar; bu nedenle LangChain'in adaptöründen gelen MCP araçları aynı `tools` dizisine girer. `https://docs.blockvectra.com/mcp` adresini yüklemek için [LangChain rehberini](https://docs.blockvectra.com/tr/guides/langchain/#add-the-docs-mcp-server) izleyin, ardından birleştirin:

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

Agent, AgentKit'in cüzdan eylemlerini ve [MCP sunucusu sayfasında](https://docs.blockvectra.com/tr/guides/mcp-server/) listelenen BlockVectra `list_chains`, `get_status`, `rpc_call` ve `read_doc` araçlarını alır. Bağlanmak için anahtar gerekmez.

## Görebileceğiniz hatalar

| Yanıt                                 | Anlamı                                            | Ne yapmalı                                                                          |
| ------------------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------- |
| HTTP 401, `-32024`, `missing_api_key` | Anahtar gerektiren istek anahtarsız gönderildi    | Anahtarı `x-api-key` başlığında (veya URL yolunda) gönderin                         |
| HTTP 401, `-32024`, `invalid_api_key` | Anahtar bilinmiyor, devre dışı veya iptal edilmiş | Anahtarı konsolda kontrol edin; yeni bir anahtarın etkinleşmesi birkaç saniye sürer |
| `-32601`, `method_not_public`         | Yöntem zincirin `public.methods` listesinde değil | O taşımayı `/public` yerine anahtarlı URL'ye geçirin                                |

Her BlockVectra hatası `data.reason` ve bir `docs_url` içerir; tam liste [hatalar sayfasındadır](https://docs.blockvectra.com/tr/errors/).

## Resmî belgeler

* [GitHub'da coinbase/agentkit](https://github.com/coinbase/agentkit)
* [viem HTTP taşıması](https://viem.sh/docs/clients/transports/http.html)

## Sık sorulan sorular

**BlockVectra cüzdanın özel anahtarını görür mü?** Hayır. viem hesabı yerelde imzalar; uç nokta okumaları ve imzalanmış ham işlemleri alır.

**Agent genel uç nokta üzerinden logları okuyabilir mi?** Hayır. `eth_getLogs` ve Data API bir API key gerektirir.

**Anahtar MCP araç argümanlarına girer mi?** Hayır. Anahtarı ortamda veya MCP istemcisinin başlıklarında tutun.

## Sonraki adımlar

* LangChain, ElizaOS, viem ve wagmi için [Agent çerçevesi genel bakışı](https://docs.blockvectra.com/tr/guides/agent-frameworks/).
* MCP, llms.txt ve OpenAPI ile uç noktaları keşfetmek için [bir AI Agent'ı bağlayın](https://docs.blockvectra.com/tr/guides/ai-agents/).
* CU ölçümü, hız sınırları ve faturalandırılmayan hatalar için [faturalandırma kuralları](https://docs.blockvectra.com/tr/guides/billing-rules/).
