Robinhood Chain entegrasyon rehberi: RPC istemcileri, dağıtım ve olaylar

viem veya ethers ile Robinhood Chain'e bağlanın, Foundry veya Hardhat ile dağıtım yapın, WebSocket loglarını veya webhook olaylarını dinleyin ve hisse senedi token aktivitesini sorgulayın.

Kamusal bağlantı kontrolleri ve kimlik doğrulamalı okumalar için Robinhood Chain RPC'yi veya desteklenen mainnet veri kümeleri için Data API'yi kullanın. Geliştiriciler ve AI Agent'lar aynı uç noktaları kullanır; mainnet ve testnet isteklerini ayrı tutun.

  • İlk adım: Çalıştırmadan önce network.mjs ve bir istemci örneğini kaydederek viem veya ethers ile bağlanın.
  • Tamamlanma kriteri: İstemci, RPC zincir kimliğinin katalogdaki chain_id ile eşleştiğini doğrular ve bir RPC chain ID mismatch hatası olmadan en son blok numarasını yazdırır.

Mainnet parametreleri ve erişim seçenekleri.

Bu rehberin tamamlamanıza yardımcı olduğu görevler

RPC ve WebSocket erişimi

Ağ bilgileri ve uç noktalar

Robinhood Chain'e yapılan her istek, URL yolunda robinhood_mainnet slug'ını kullanarak hedef ağını açıkça tanımlar. JSON-RPC hem yol tabanlı anahtar kimlik doğrulamasını hem de istek başlığı kimlik doğrulamasını (x-api-key) desteklerken, Data API /v1/data/robinhood_mainnet/ altında REST uç noktaları sunar.

Aşağıdaki parametreler ve uç noktalar aktif ağ parametrelerini yansıtır:

Parametre / Uç NoktaDeğer / ŞablonKimlik Doğrulama
Chain ID (EIP-155)4663—
JSON-RPC (yol anahtarı)POST https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}URL yolunda API key
JSON-RPC (başlık anahtarı)POST https://api.blockvectra.com/v1/robinhood_mainnetHeader x-api-key: {api_key}
WebSocket (yol anahtarı)wss://api.blockvectra.com/v1/robinhood_mainnet/{api_key}URL yolunda API key
WebSocket (başlık anahtarı)wss://api.blockvectra.com/v1/robinhood_mainnetHeader x-api-key: {api_key} veya Authorization: Bearer {api_key}
WebSocket aboneliklerinewHeads, logs—
Data API tabanıGET https://api.blockvectra.com/v1/data/robinhood_mainnet/…Header x-api-key: {api_key}
Genel durumGET https://api.blockvectra.com/v1/statusKimlik doğrulamasız (genel)

viem veya ethers ile bağlanın

Geliştiriciler ve AI Agent'lar aynı sunucu tarafı ayarlarını kullanabilir. Node.js 24 veya sonraki bir sürümünü, viem 2 veya ethers 6 kullanın ve genel okumalarla başlayın. Anahtar gerektiren yöntemler ve WebSocket için ortamda BLOCKVECTRA_API_KEY değerini güvenli bir şekilde ayarlayın. Anahtarları ve anahtar içeren RPC URL'lerini tarayıcı kodundan, loglardan ve sürüm kontrolünden uzak tutun.

Bunu network.mjs olarak kaydedin. Testnet ile başlayın; mainnet'e geçmek için BLOCKVECTRA_CHAIN=robinhood_mainnet olarak ayarlayın. Bu dosya, chain_id ve yöntem politikasını GET /v1/chains üzerinden okur. Anahtarsız okumalar için kataloğun public.url adresini ve yalnızca public.methods içinde listelenen yöntemleri kullanın; genel HTTP kullanılabilirliği WebSocket erişimi anlamına gelmez.

const chainSlug = process.env.BLOCKVECTRA_CHAIN ?? 'robinhood_testnet';
const key = process.env.BLOCKVECTRA_API_KEY;
const catalogUrl = 'https://api.blockvectra.com/v1/chains';
const response = await fetch(catalogUrl, { signal: AbortSignal.timeout(15_000) });
if (!response.ok) throw new Error(`Chains HTTP ${response.status}`);
const catalog = await response.json();
export const chainInfo = catalog.chains.find(item => item.chain === chainSlug);
if (!chainInfo || !Number.isSafeInteger(chainInfo.chain_id) || chainInfo.chain_id <= 0) {
  throw new Error('Missing chain or chain_id');
}
export function allows(method) {
  const matches = pattern => pattern.endsWith('*')
    ? method.startsWith(pattern.slice(0, -1)) : pattern === method;
  if (!key) return (chainInfo.public?.methods ?? []).some(matches);
  return (chainInfo.methods?.allow ?? []).some(matches)
    && !(chainInfo.methods?.deny ?? []).some(matches);
}
if (!allows('eth_chainId')) throw new Error('eth_chainId is unavailable');
export const rpcUrl = key
  ? new URL(`./${chainSlug}/${encodeURIComponent(key)}`, catalogUrl).href
  : chainInfo.public?.url;
if (!rpcUrl) throw new Error('Public RPC is unavailable; set BLOCKVECTRA_API_KEY');

viem-client.mjs olarak kaydedin, npm install viem@2 ile kurun, ardından node viem-client.mjs çalıştırın.

import { createPublicClient, defineChain, http } from 'viem';
import { chainInfo, rpcUrl } from './network.mjs';

export const chain = defineChain({
  id: chainInfo.chain_id,
  name: chainInfo.name,
  nativeCurrency: { name: 'ETH', symbol: 'ETH', decimals: 18 },
  rpcUrls: { default: { http: [rpcUrl] } },
});
export const client = createPublicClient({ chain, transport: http(rpcUrl) });
if (await client.getChainId() !== chain.id) throw new Error('RPC chain ID mismatch');
console.log(await client.getBlockNumber());

ethers için ethers-client.mjs olarak kaydedin, npm install ethers@6 ile kurun, ardından node ethers-client.mjs çalıştırın.

import { JsonRpcProvider } from 'ethers';
import { chainInfo, rpcUrl } from './network.mjs';

const provider = new JsonRpcProvider(rpcUrl, chainInfo.chain_id, { batchMaxCount: 1 });
const network = await provider.getNetwork();
if (network.chainId !== BigInt(chainInfo.chain_id)) throw new Error('RPC chain ID mismatch');
console.log(await provider.getBlockNumber());
provider.destroy();

Foundry veya Hardhat ile dağıtım yapın

Önce testnet faucet'i aracılığıyla dağıtıcıyı test ETH ile fonlayın; mainnet işlemleri mainnet ETH gerektirir. Resmi ağ ve dağıtım rehberi mainnet ve testnet zincir kimliklerini listeler (erişim tarihi: 2026-10-07). Bu sayfadaki uç nokta tabloları /v1/chains kullanır.

Seçilen URL'yi ve zincir kimliğini network.mjs dosyasından dışa aktarın. Yayınlamadan önce methods.allow ve methods.deny üzerinden eth_sendRawTransaction yöntemini kontrol edin:

export RPC_URL="$(node --input-type=module -e "import { rpcUrl, allows } from './network.mjs'; if (!allows('eth_sendRawTransaction')) throw new Error('Broadcast unavailable'); console.log(rpcUrl)")"
export CHAIN_ID="$(node --input-type=module -e "import { chainInfo } from './network.mjs'; console.log(chainInfo.chain_id)")"

Hello.sol, araç ayarları, yayınlama ve makbuz kontrolleri için paylaşılan Foundry veya Hardhat dağıtım eğitimine devam edin.

WebSocket üzerinden sözleşme olaylarını dinleyin

watch-logs.mjs olarak kaydedin ve LOG_ADDRESS değerini izlediğiniz dağıtılmış sözleşmeye veya token sözleşmesine ayarlayın. node watch-logs.mjs komutunu çalıştırın. Kod, logs aboneliğine başlamadan önce /v1/chains üzerinden ws ve subscriptions alanlarını kontrol eder.

import { createPublicClient, webSocket, isAddress } from 'viem';
import { chain } from './viem-client.mjs';
import { chainInfo, rpcUrl } from './network.mjs';

if (!process.env.BLOCKVECTRA_API_KEY) throw new Error('WebSocket requires BLOCKVECTRA_API_KEY');
const address = process.env.LOG_ADDRESS;
if (!chainInfo.ws || !chainInfo.subscriptions?.includes('logs')) {
  throw new Error('WebSocket logs are unavailable; use HTTP backfill or webhook push');
}
if (!address || !isAddress(address)) throw new Error('Set LOG_ADDRESS');
const wsUrl = new URL(rpcUrl);
wsUrl.protocol = 'wss:';
const client = createPublicClient({ chain, transport: webSocket(wsUrl.href) });
const unwatch = client.watchEvent({
  address, poll: false,
  onLogs: logs => console.log(logs),
  onError: error => console.error(error),
});
process.once('SIGINT', () => { unwatch(); process.exit(0); });

Dinleyici başladıktan sonra, aynı dışa aktarılan dağıtım değişkenlerini kullanarak başka bir terminalden bir ping() işlemi gönderin:

cast send "$CONTRACT_ADDRESS" "ping()" --rpc-url "$RPC_URL" \
  --private-key "$DEPLOYER_PRIVATE_KEY"

İşlenen son bloğu kalıcı olarak kaydedin ve (blockHash, transactionHash, logIndex) ile tekilleştirin. Yeniden bağlandıktan sonra, kaçırılan blokları sınırlı eth_getLogs istekleriyle geriye dönük doldurun; bir yeniden yapılanmada (reorg) removed olarak işaretlenen logları uzlaştırın. Bkz. WebSocket abonelikleri ve blok aralığı sınırları.

HTTPS alıcınıza iletilen adres olayları için GET /v1/push/chains desteklenen zincirleri ve onay ayarlarını listeler; bir x-api-key başlığı kullanın. Abonelikler, imza doğrulama, tekilleştirme ve yeniden oynatma için webhook push rehberini takip edin. Mainnet hisse senedi token aktivitesi sorguları için hisse senetleri rehberi ile devam edin.

Doğrudan curl örnekleri

Standart HTTP istemcilerini kullanarak hemen JSON-RPC çağrıları yapabilirsiniz. {api_key} yerine BlockVectra API anahtarınızı yazın:

x-api-key istek başlığını kullanarak EIP-155 zincir kimliğini sorgulayın:

curl -s "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: {api_key}" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

Yanıt yapısı

Yanıtlar JSON-RPC 2.0 belirtimini takip eder:

  • Başarı: jsonrpc: "2.0", aynı id ve onaltılık kodlanmış miktarı içeren bir result dizesiyle bir zarf döndürür (eth_chainId onaltılık kodlanmış zincir kimliğini döndürür; eth_blockNumber en son blok yüksekliğini döndürür).
  • İzin verilmeyen yöntemler: Ağın izin verilen yöntemleri dışındaki bir yöntemin istenmesi, JSON-RPC hata kodu -32601 (method not available, faturalandırılmaz) döndürür.
  • Pencere dışı sorgular: Durum saklama penceresinden daha önceki geçmiş durum istekleri, JSON-RPC hata kodu -32011 (faturalandırılmaz) döndürür.
  • Geçersiz parametreler: Hatalı biçimlendirilmiş veya izin verilmeyen istek parametreleri, JSON-RPC hata kodu -32602 (faturalandırılmaz) döndürür.

Yetenek ve yöntem politikası

Robinhood Chain üzerindeki kullanılabilir JSON-RPC yöntemleri, log blok aralığı sınırları ve geçmiş durum saklama, GET /v1/chains aracılığıyla dinamik olarak yayınlanır. Yürütme izleme (debug_trace*, debug_traceTransaction dahil), zincirin yöntem politikası tarafından yönetilir:

Ağ parametreleri ve sınırları

  • eth_getLogs blok aralığı: İstek başına maks 1000 blok
  • Geçmiş durum penceresi: Son 900 blok (ötesindeki sorgular -32011 döndürür)
  • Yürütme izleme (debug_trace*): Destekleniyor (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)

Zincir başına izin verilen yöntemler: Desteklenen Zincirler

Testnet

İşlemler için test ETH almak üzere Robinhood Chain testnet faucet rehberine bakın.

Robinhood Chain Testnet (zincir kimliği: 46630), https://api.blockvectra.com/v1/robinhood_testnet uç noktasında mainnet ile aynı API anahtarını kullanır ve x-api-key istek başlığı aracılığıyla kimlik doğrulaması yapar.

Testnet istekleri mainnet ile aynı CU ağırlıklarını kullanır ve aynı bakiyeden ve ücretsiz kredilerden düşülür. Robinhood Chain Testnet üzerindeki kullanılabilir JSON-RPC yöntemleri ve geçmiş durum saklama, GET /v1/chains aracılığıyla dinamik olarak yayınlanır.

Testnet'i anahtarsız okuyan, WebSocket üzerinden logları aktaran ve ardından aynı anahtarı mainnet'e taşıyan çalıştırılabilir üç adımlı bir başlangıç için Robinhood Chain Testnet başlangıç rehberine bakın.

curl -s "https://api.blockvectra.com/v1/robinhood_testnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: {api_key}" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

Beklenen yanıt:

{"jsonrpc":"2.0","id":1,"result":"0xb626"}
Parametre / Uç NoktaDeğer / ŞablonKimlik Doğrulama
Chain ID (EIP-155)46630—
JSON-RPC (yol anahtarı)POST https://api.blockvectra.com/v1/robinhood_testnet/{api_key}URL yolunda API key
JSON-RPC (başlık anahtarı)POST https://api.blockvectra.com/v1/robinhood_testnetHeader x-api-key: {api_key}
WebSocket (yol anahtarı)wss://api.blockvectra.com/v1/robinhood_testnet/{api_key}URL yolunda API key
WebSocket (başlık anahtarı)wss://api.blockvectra.com/v1/robinhood_testnetHeader x-api-key: {api_key} veya Authorization: Bearer {api_key}
WebSocket aboneliklerinewHeads, logs—
Data API tabanıHenüz mevcut değil—
Genel durumGET https://api.blockvectra.com/v1/statusKimlik doğrulamasız (genel)

Ağ parametreleri ve sınırları

  • eth_getLogs blok aralığı: İstek başına maks 1000 blok
  • Geçmiş durum penceresi: Son 1023 blok (ötesindeki sorgular -32011 döndürür)
  • Yürütme izleme (debug_trace*): Destekleniyor (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)

Zincir başına izin verilen yöntemler: Desteklenen Zincirler

Tokenlaştırılmış hisse senedi verileri

Robinhood Chain üzerinde BlockVectra Data API, tokenlaştırılmış hisse senetleri için iki uç nokta üzerinden günlük zincir üstü metrikler ve meta veriler sağlar:

  • Günlük liderlik tablosu (GET /v1/data/robinhood_mainnet/stocks): Belirtilen bir UTC tarihi için transfer aktivitesine göre azalan şekilde sıralanmış tokenlaştırılmış hisse senetlerinin günlük aktivite tablosu.
  • Tek bir tokenlaştırılmış hisse senedi alma (GET /v1/data/robinhood_mainnet/stocks/{token}): Token sözleşmesi meta verileri ve token adresine göre 30 güne kadar son günlük metrikler.

Ayrıntılı istek parametreleri, yanıt zarfları (StockDailyListEnvelope ve StockTokenEnvelope), sayfalama notları ve CU tüketim tahminleri için Tokenlaştırılmış hisse senetleri rehberine bakın.

Eksiksiz başlangıç şablonu: blockvectra/robinhood-stock-tokens

Başlarken ve API anahtarları

Yeni hesaplar kaydolduklarında 30,000,000 CU kazanır — kredi kartı gerekmez.

Önce anahtarsız genel uç nokta olan https://api.blockvectra.com/v1/robinhood_mainnet/public adresini deneyebilirsiniz (yalnızca cüzdan JSON-RPC yöntemleri, Data API bir anahtar gerektirir; yöntemler ve sınırlar /v1/chains koşullarına tabidir); daha yüksek bir hız sınırına ihtiyacınız varsa bir hesap açın.

  • Web konsolu: Ethereum cüzdan imzasıyla kaydolun ve Konsol içinde bir API anahtarı oluşturun. Kurulum ayrıntıları için Hızlı Başlangıç rehberine bakın.
  • Programatik kayıt: Otonom AI Agent'lar, otomatik betikler ve CI ardışık düzenleri, bir tarayıcı olmadan Ethereum cüzdan imzalarını (EIP-191) kullanarak oturum açabilir ve API anahtarları sağlayabilir. Programatik kayıt rehberini takip edin.
  • AI Agent'lar: Otonom AI Agent'lar, resmi Model Context Protocol (MCP) sunucusunu kullanarak Robinhood Chain yeteneklerini keşfedebilir. Bkz. AI Agent'ları BlockVectra'ya Bağlama.
  • Limitleri yükseltme: Bakiye yüklemesi yapıldıktan sonra hesap genelindeki saniye başına çağrı sınırı kaldırılır; her anahtar Compute Unit (CU) hız ve burst sınırlarına tabi kalmaya devam eder. Güncel oranlar ve faturalandırma birimleri için Fiyatlandırma sayfasına bakın.

Sonraki adımlar

Son güncelleme:

Bu sayfada