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.mjsve bir istemci örneğini kaydederek viem veya ethers ile bağlanın. - Tamamlanma kriteri: İstemci, RPC zincir kimliğinin katalogdaki
chain_idile eşleştiğini doğrular ve birRPC chain ID mismatchhatası 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
- viem veya ethers kullanarak genel bir okuma ile Robinhood Chain RPC'yi yoklayın, ardından kimlik doğrulamalı yöntemler için bir anahtar kullanın.
- Testnet işlemlerini çalıştırmadan önce
eth_chainIdokuyarak testnet RPC bağlantısını kontrol edin. - Veri kümesi desteğini kontrol ettikten sonra mainnet Data API ile tokenlaştırılmış hisse senedi aktivitesini sorgulayın; metrikler hisse senedi fiyatlarını değil, zincir üstü aktiviteyi açıklar.
RPC ve WebSocket erişimi
- Genel RPC URL'si: Anahtarsız uç noktayı, desteklenen genel yöntemleri ve hız sınırlarını Robinhood Chain mainnet sayfasında veya testnet sayfasında bulun.
- Bir API anahtarı ile JSON-RPC: Aşağıdaki uç noktaları ve curl örneklerini kullanın. Loglar için eth_getLogs yöntem referansına ve blok aralığı sınırı rehberine bakın.
- Bir API anahtarı ile WebSocket: Aşağıdaki WebSocket uç noktalarını kullanın ve
newHeadsilelogsiçin WebSocket abonelikleri rehberini izleyin. Genel RPC erişimi HTTP JSON-RPC'dir; WebSocket bağlantıları bir anahtar gerektirir.
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ç Nokta | Değer / Şablon | Kimlik 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_mainnet | Header 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_mainnet | Header x-api-key: {api_key} veya Authorization: Bearer {api_key} |
| WebSocket abonelikleri | newHeads, logs | — |
| Data API tabanı | GET https://api.blockvectra.com/v1/data/robinhood_mainnet/… | Header x-api-key: {api_key} |
| Genel durum | GET https://api.blockvectra.com/v1/status | Kimlik 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ıidve onaltılık kodlanmış miktarı içeren birresultdizesiyle bir zarf döndürür (eth_chainIdonaltılık kodlanmış zincir kimliğini döndürür;eth_blockNumberen 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ç Nokta | Değer / Şablon | Kimlik 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_testnet | Header 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_testnet | Header x-api-key: {api_key} veya Authorization: Bearer {api_key} |
| WebSocket abonelikleri | newHeads, logs | — |
| Data API tabanı | Henüz mevcut değil | — |
| Genel durum | GET https://api.blockvectra.com/v1/status | Kimlik 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:
CU fiyatlandırmasını okuma
Yayınlanan güncel oranlara göre eth_call, mevcut ücretsiz kredilerden önce çağrı başına 15 CU veya milyon çağrı başına $1.50 maliyetindedir; iş yükü tahmininiz için güncel planlar API'sini çekin.
Testnet faucet'i
Kendi API anahtarınızla test ETH talep edin: hesap gereksinimleri, talep sınırları, kabul edilen işlemler ve hata yönetimi.