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

ViemWalletProvider'a anahtarsız genel uç noktadaki bir viem istemcisi vererek bir Coinbase AgentKit agent'ının okumalarını ve işlemlerini BlockVectra üzerinden yönlendirin, ardından bir API key ve MCP araçları ekleyin.

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 .

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 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:

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 dört adımla oluşturun: challenge, imza, oturum açma, ardından POST /keys. Geliştiriciler ayrıca konsolda bir anahtar oluşturabilir. 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 izleyin, ardından birleştirin:

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

Agent, AgentKit'in cüzdan eylemlerini ve MCP sunucusu sayfasında 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ıtAnlamıNe yapmalı
HTTP 401, -32024, missing_api_keyAnahtar gerektiren istek anahtarsız gönderildiAnahtarı x-api-key başlığında (veya URL yolunda) gönderin
HTTP 401, -32024, invalid_api_keyAnahtar bilinmiyor, devre dışı veya iptal edilmişAnahtarı konsolda kontrol edin; yeni bir anahtarın etkinleşmesi birkaç saniye sürer
-32601, method_not_publicYöntem zincirin public.methods listesinde değilO 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.

Resmî belgeler

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

Son güncelleme:

Bu sayfada