Panduan integrasi Robinhood Chain: klien RPC, deployment, dan peristiwa

Terhubung ke Robinhood Chain dengan viem atau ethers, deploy dengan Foundry atau Hardhat, dengarkan log WebSocket atau peristiwa webhook, dan kueri aktivitas token saham.

Gunakan RPC Robinhood Chain untuk pemeriksaan koneksi publik dan pembacaan terautentikasi, atau Data API untuk dataset mainnet yang didukung. Pengembang dan agen AI menggunakan endpoint yang sama; pisahkan permintaan mainnet dan testnet.

Tugas yang dibantu panduan ini

Akses RPC dan WebSocket

Informasi jaringan dan endpoint

Setiap permintaan ke Robinhood Chain mengidentifikasi jaringan targetnya secara eksplisit di jalur URL menggunakan slug robinhood_mainnet. JSON-RPC mendukung autentikasi kunci berbasis jalur dan autentikasi header permintaan (x-api-key), sedangkan Data API melayani endpoint REST di bawah /v1/data/robinhood_mainnet/.

Parameter dan endpoint di bawah ini mencerminkan parameter jaringan aktif:

Parameter / EndpointNilai / TemplatAutentikasi
Chain ID (EIP-155)4663—
JSON-RPC (kunci di path)POST https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}API key di path URL
JSON-RPC (kunci di header)POST https://api.blockvectra.com/v1/robinhood_mainnetHeader x-api-key: {api_key}
WebSocket (kunci di path)wss://api.blockvectra.com/v1/robinhood_mainnet/{api_key}API key di path URL
WebSocket (kunci di header)wss://api.blockvectra.com/v1/robinhood_mainnetHeader x-api-key: {api_key} atau Authorization: Bearer {api_key}
Langganan WebSocketnewHeads, logs—
Basis Data APIGET https://api.blockvectra.com/v1/data/robinhood_mainnet/…Header x-api-key: {api_key}
Status publikGET https://api.blockvectra.com/v1/statusTanpa autentikasi (publik)

Hubungkan dengan viem atau ethers

Pengembang dan Agen AI dapat menggunakan pengaturan sisi server yang sama. Gunakan Node.js 24 atau lebih baru, viem 2 atau ethers 6, dan mulailah dengan pembacaan publik. Tetapkan BLOCKVECTRA_API_KEY secara aman di lingkungan untuk metode yang menggunakan kunci dan WebSocket. Jauhkan kunci dan URL RPC yang berisi kunci dari kode browser, log, dan kontrol versi.

Simpan ini sebagai network.mjs. Mulailah di testnet; tetapkan BLOCKVECTRA_CHAIN=robinhood_mainnet untuk beralih ke mainnet. Skrip ini membaca chain_id dan kebijakan metode dari GET /v1/chains. Untuk pembacaan tanpa kunci, gunakan public.url dari katalog dan hanya metode yang tercantum dalam public.methods; ketersediaan HTTP publik tidak menyiratkan akses WebSocket.

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');

Simpan sebagai viem-client.mjs, instal dengan npm install viem@2, lalu jalankan node viem-client.mjs.

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());

Untuk ethers, simpan sebagai ethers-client.mjs, instal dengan npm install ethers@6, lalu jalankan node ethers-client.mjs.

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();

Deploy dengan Foundry atau Hardhat

Danai deployer dengan test ETH melalui faucet testnet terlebih dahulu; transaksi mainnet memerlukan mainnet ETH. Panduan jaringan dan deployment resmi mencantumkan Chain ID mainnet dan testnet (diakses: 2026-10-07). Tabel endpoint di halaman ini menggunakan /v1/chains.

Ekspor URL yang dipilih dan Chain ID dari network.mjs. Periksa eth_sendRawTransaction terhadap methods.allow dan methods.deny sebelum menyiarkan.

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)")"

Lanjutkan dengan tutorial deployment Foundry atau Hardhat bersama untuk Hello.sol, pengaturan alat, penyiaran, dan pemeriksaan resi.

Dengarkan peristiwa kontrak melalui WebSocket

Simpan sebagai watch-logs.mjs dan tetapkan LOG_ADDRESS ke kontrak yang di-deploy atau kontrak token yang Anda pantau. Jalankan node watch-logs.mjs. Kode memeriksa ws dan subscriptions dari /v1/chains sebelum berlangganan ke logs.

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); });

Setelah listener dimulai, kirim transaksi ping() dari terminal lain menggunakan variabel deployment yang diekspor yang sama:

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

Simpan blok terakhir yang diproses secara persisten dan hapus duplikasi berdasarkan (blockHash, transactionHash, logIndex). Setelah menyambung kembali, lakukan backfill blok yang terlewat dengan permintaan eth_getLogs terbatas; rekonsiliasi log yang ditandai removed pada saat terjadi reorg. Lihat langganan WebSocket dan batas rentang blok.

Untuk peristiwa alamat yang dikirimkan ke penerima HTTPS Anda, GET /v1/push/chains mencantumkan rantai yang didukung dan pengaturan konfirmasi; gunakan header x-api-key. Ikuti panduan push webhook untuk langganan, verifikasi tanda tangan, deduplikasi, dan pemutaran ulang. Untuk kueri aktivitas token saham mainnet, lanjutkan dengan panduan saham.

Contoh curl langsung

Anda dapat langsung melakukan panggilan JSON-RPC menggunakan klien HTTP standar. Ganti {api_key} dengan API key BlockVectra Anda:

Kueri Chain ID EIP-155 menggunakan header permintaan x-api-key:

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":[]}'

Struktur respons

Respons mengikuti spesifikasi JSON-RPC 2.0:

  • Berhasil: Mengembalikan struktur respons dengan jsonrpc: "2.0", id yang sama, dan string result yang berisi kuantitas berkode heksadesimal (eth_chainId mengembalikan Chain ID berkode heksadesimal; eth_blockNumber mengembalikan tinggi blok terbaru).
  • Metode yang tidak diizinkan: Meminta metode di luar metode yang diizinkan jaringan mengembalikan kode error JSON-RPC -32601 (method not available, tidak ditagih).
  • Kueri di luar jendela: Permintaan status historis yang lebih awal dari jendela retensi status mengembalikan kode error JSON-RPC -32011 (tidak ditagih).
  • Parameter tidak valid: Parameter permintaan yang salah format atau tidak diizinkan mengembalikan kode error JSON-RPC -32602 (tidak ditagih).

Kemampuan dan kebijakan metode

Metode JSON-RPC yang tersedia, batas rentang blok log, dan retensi status historis di Robinhood Chain dipublikasikan secara dinamis melalui GET /v1/chains. Pelacakan eksekusi (debug_trace*, termasuk debug_traceTransaction) diatur oleh kebijakan metode rantai:

Parameter dan batas jaringan

  • Rentang blok eth_getLogs: Maksimal 1000 blok per permintaan
  • Jendela status historis: 900 blok terakhir (kueri di luar itu mengembalikan -32011)
  • Pelacakan eksekusi (debug_trace*): Didukung (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)

Metode yang diizinkan per rantai: Rantai yang Didukung

Testnet

Untuk mendapatkan test ETH untuk transaksi, lihat panduan faucet testnet Robinhood Chain.

Testnet Robinhood Chain (Chain ID: 46630) menggunakan API key yang sama dengan mainnet pada endpoint https://api.blockvectra.com/v1/robinhood_testnet, diautentikasi melalui header permintaan x-api-key.

Permintaan testnet menggunakan bobot CU yang sama dengan mainnet dan memotong dari saldo serta kredit gratis yang sama. Metode JSON-RPC yang tersedia dan retensi status historis di Testnet Robinhood Chain dipublikasikan secara dinamis melalui GET /v1/chains.

Untuk panduan awal tiga langkah yang dapat dijalankan yang membaca testnet tanpa kunci, mengalirkan log melalui WebSocket, lalu memindahkan kunci yang sama ke mainnet, lihat panduan awal Testnet Robinhood Chain.

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":[]}'

Respons yang diharapkan:

{"jsonrpc":"2.0","id":1,"result":"0xb626"}
Parameter / EndpointNilai / TemplatAutentikasi
Chain ID (EIP-155)46630—
JSON-RPC (kunci di path)POST https://api.blockvectra.com/v1/robinhood_testnet/{api_key}API key di path URL
JSON-RPC (kunci di header)POST https://api.blockvectra.com/v1/robinhood_testnetHeader x-api-key: {api_key}
WebSocket (kunci di path)wss://api.blockvectra.com/v1/robinhood_testnet/{api_key}API key di path URL
WebSocket (kunci di header)wss://api.blockvectra.com/v1/robinhood_testnetHeader x-api-key: {api_key} atau Authorization: Bearer {api_key}
Langganan WebSocketnewHeads, logs—
Basis Data APIBelum tersedia—
Status publikGET https://api.blockvectra.com/v1/statusTanpa autentikasi (publik)

Parameter dan batas jaringan

  • Rentang blok eth_getLogs: Maksimal 1000 blok per permintaan
  • Jendela status historis: 1023 blok terakhir (kueri di luar itu mengembalikan -32011)
  • Pelacakan eksekusi (debug_trace*): Didukung (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)

Metode yang diizinkan per rantai: Rantai yang Didukung

Data saham tertokenisasi

Di Robinhood Chain, Data API BlockVectra menyediakan metrik on-chain harian dan metadata untuk saham tertokenisasi di dua endpoint:

  • Papan peringkat harian (GET /v1/data/robinhood_mainnet/stocks): Papan peringkat aktivitas harian dari saham tertokenisasi untuk tanggal kalender UTC tertentu, diurutkan berdasarkan aktivitas transfer secara menurun.
  • Dapatkan satu saham tertokenisasi (GET /v1/data/robinhood_mainnet/stocks/{token}): Metadata kontrak token dan hingga 30 hari metrik harian terbaru berdasarkan alamat token.

Untuk parameter permintaan terperinci, struktur respons (StockDailyListEnvelope dan StockTokenEnvelope), catatan paginasi, dan estimasi konsumsi CU, lihat panduan saham tertokenisasi.

Templat awal lengkap: blockvectra/robinhood-stock-tokens

Memulai dan API key

Akun baru mendapatkan 30,000,000 CU saat pendaftaran — tanpa kartu kredit.

Anda dapat mencoba endpoint publik tanpa kunci https://api.blockvectra.com/v1/robinhood_mainnet/public terlebih dahulu (hanya metode JSON-RPC dompet, Data API memerlukan kunci; metode dan batas tunduk pada /v1/chains); daftar akun jika Anda memerlukan batas laju yang lebih tinggi.

  • Konsol web: Daftar melalui tanda tangan dompet Ethereum, dan buat API key di Konsol. Lihat panduan Mulai Cepat untuk detail penyiapan.
  • Pendaftaran terprogram: Agen AI otonom, skrip otomatis, dan alur CI dapat masuk dan menyediakan API key menggunakan tanda tangan dompet Ethereum (EIP-191) tanpa browser. Ikuti panduan pendaftaran terprogram.
  • Agen AI: Agen AI otonom dapat menemukan kemampuan Robinhood Chain menggunakan server resmi Model Context Protocol (MCP). Lihat Menghubungkan Agen AI ke BlockVectra.
  • Meningkatkan batas: Setelah melakukan top up, batas panggilan per detik di seluruh akun dihapus; setiap kunci tetap tunduk pada batas laju Compute Unit (CU) dan burst. Untuk tarif dan unit penagihan saat ini, lihat halaman Harga.

Langkah selanjutnya

Terakhir diperbarui:

Di halaman ini