Guía de integración de Robinhood Chain: clientes RPC, despliegue y eventos
Conéctese a Robinhood Chain con viem o ethers, despliegue con Foundry o Hardhat, escuche logs de WebSocket o eventos de webhook, y consulte la actividad de tokens de acciones.
Utilice el RPC de Robinhood Chain para comprobaciones de conexión públicas y lecturas autenticadas, o la Data API para conjuntos de datos compatibles de mainnet. Los desarrolladores y agentes de IA utilizan los mismos endpoints; mantenga separadas las solicitudes de mainnet y testnet.
Tareas que esta guía le ayuda a completar
- Probar el RPC de Robinhood Chain con una lectura pública usando viem o ethers, luego use una clave para métodos autenticados.
- Verificar la conexión RPC de testnet leyendo
eth_chainIdantes de ejecutar operaciones en testnet. - Consultar la actividad de acciones tokenizadas con la Data API de mainnet después de verificar la compatibilidad del conjunto de datos; las métricas describen la actividad on-chain, no precios de acciones.
Acceso a RPC y WebSocket
- URL de RPC público: Encuentre el endpoint sin clave, los métodos públicos compatibles y los límites de tasa en la página de mainnet de Robinhood Chain o en la página de testnet.
- JSON-RPC con una API key: Utilice los endpoints y ejemplos de curl a continuación. Para logs, consulte la referencia del método eth_getLogs y la guía de límites de rango de bloques.
- WebSocket con una API key: Utilice los endpoints de WebSocket a continuación y siga la guía de suscripciones WebSocket para
newHeadsylogs. El acceso a RPC público es JSON-RPC por HTTP; las conexiones WebSocket requieren una clave.
Información de la red y endpoints
Cada solicitud a Robinhood Chain identifica explícitamente su red de destino en la ruta de la URL mediante el slug robinhood_mainnet. JSON-RPC admite tanto la autenticación por clave en la ruta como mediante el encabezado de solicitud (x-api-key), mientras que la Data API ofrece endpoints REST bajo /v1/data/robinhood_mainnet/.
Los parámetros y endpoints a continuación reflejan los parámetros de red activos:
| Parámetro / Endpoint | Valor / Plantilla | Autenticación |
|---|---|---|
| Chain ID (EIP-155) | 4663 | — |
| JSON-RPC (clave en la ruta) | POST https://api.blockvectra.com/v1/robinhood_mainnet/{api_key} | API key en la ruta de la URL |
| JSON-RPC (clave en el encabezado) | POST https://api.blockvectra.com/v1/robinhood_mainnet | Encabezado x-api-key: {api_key} |
| WebSocket (clave en la ruta) | wss://api.blockvectra.com/v1/robinhood_mainnet/{api_key} | API key en la ruta de la URL |
| WebSocket (clave en el encabezado) | wss://api.blockvectra.com/v1/robinhood_mainnet | Encabezado x-api-key: {api_key} o Authorization: Bearer {api_key} |
| Suscripciones WebSocket | newHeads, logs | — |
| Base de Data API | GET https://api.blockvectra.com/v1/data/robinhood_mainnet/… | Encabezado x-api-key: {api_key} |
| Estado público | GET https://api.blockvectra.com/v1/status | Sin autenticación (público) |
Conectar con viem o ethers
Los desarrolladores y los Agentes de IA pueden usar la misma configuración del lado del servidor. Use Node.js 24 o posterior, viem 2 o ethers 6, y comience con lecturas públicas. Establezca BLOCKVECTRA_API_KEY de forma segura en el entorno para métodos con clave y WebSocket. Mantenga las claves y las URL de RPC que contengan claves fuera del código del navegador, los logs y el control de versiones.
Guarde esto como network.mjs. Comience en testnet; establezca BLOCKVECTRA_CHAIN=robinhood_mainnet para cambiar a mainnet. Lee chain_id y la política de métodos desde GET /v1/chains. Para lecturas sin clave, use la public.url del catálogo y solo los métodos enumerados en public.methods; la disponibilidad pública de HTTP no implica acceso por 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');Guarde como viem-client.mjs, instale con npm install viem@2, y luego ejecute 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());Para ethers, guarde como ethers-client.mjs, instale con npm install ethers@6, y luego ejecute 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();Desplegar con Foundry o Hardhat
Financie la cuenta de despliegue con test ETH a través del faucet de testnet primero; las transacciones de mainnet requieren ETH de mainnet. La guía oficial de red y despliegue enumera los chain ID de mainnet y testnet (consultado: 2026-10-07). Las tablas de endpoints en esta página utilizan /v1/chains.
Exporte la URL y el chain ID seleccionados desde network.mjs. Verifique eth_sendRawTransaction contra methods.allow y methods.deny antes de la difusión.
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)")"Continúe con el tutorial compartido de despliegue con Foundry o Hardhat para Hello.sol, configuración de herramientas, difusión y comprobaciones de recibos.
Escuchar eventos de contratos a través de WebSocket
Guarde como watch-logs.mjs y establezca LOG_ADDRESS en el contrato desplegado o contrato de token que vigila. Ejecute node watch-logs.mjs. El código verifica ws y subscriptions desde /v1/chains antes de suscribirse a 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); });Después de iniciar el listener, envíe una transacción ping() desde otra terminal utilizando las mismas variables de despliegue exportadas:
cast send "$CONTRACT_ADDRESS" "ping()" --rpc-url "$RPC_URL" \
--private-key "$DEPLOYER_PRIVATE_KEY"Persista el último bloque procesado y deduplique por (blockHash, transactionHash, logIndex). Después de reconectarse, recupere los bloques perdidos con solicitudes delimitadas de eth_getLogs; reconcilie los logs marcados como removed ante una reorganización. Consulte suscripciones WebSocket y límites de rango de bloques.
Para eventos de direcciones entregados a su receptor HTTPS, GET /v1/push/chains enumera las cadenas compatibles y la configuración de confirmación; utilice un encabezado x-api-key. Siga la guía de push de webhook para suscripciones, verificación de firmas, deduplicación y reproducción. Para consultas de actividad de tokens de acciones en mainnet, continúe con la guía de acciones.
Ejemplos directos con curl
Puede realizar llamadas JSON-RPC de inmediato utilizando clientes HTTP estándar. Reemplace {api_key} con su API key de BlockVectra:
Consulte el chain ID según EIP-155 utilizando el encabezado de solicitud 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":[]}'Estructura de la respuesta
Las respuestas siguen la especificación JSON-RPC 2.0:
- Éxito: Devuelve una estructura de respuesta con
jsonrpc: "2.0", el mismoidy una cadenaresultque contiene la cantidad codificada en hexadecimal (eth_chainIddevuelve el chain ID codificado en hexadecimal;eth_blockNumberdevuelve la altura del bloque más reciente). - Métodos no permitidos: Solicitar un método fuera de los métodos permitidos de la red devuelve el código de error JSON-RPC
-32601(method not available, no facturado). - Consultas fuera de la ventana: Las solicitudes de estado histórico anteriores a la ventana de retención de estado devuelven el código de error JSON-RPC
-32011(no facturado). - Parámetros no válidos: Los parámetros de solicitud mal formados o no permitidos devuelven el código de error JSON-RPC
-32602(no facturado).
Capacidad y política de métodos
Los métodos JSON-RPC disponibles, los límites de rango de bloques para logs y la retención de estado histórico en Robinhood Chain se publican dinámicamente a través de GET /v1/chains. El rastreo de ejecución (debug_trace*, incluido debug_traceTransaction) se rige por la política de métodos de la cadena:
Parámetros y límites de la red
- Rango de bloques para eth_getLogs: Máx. 1000 bloques por solicitud
- Ventana de estado histórico: Últimos 900 bloques (consultas posteriores devuelven -32011)
- Rastreo de ejecución (debug_trace*): Compatible (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)
Métodos permitidos por cadena: Cadenas compatibles
Testnet
Para obtener test ETH para transacciones, consulte la guía del faucet de testnet de Robinhood Chain.
Robinhood Chain Testnet (chain ID: 46630) utiliza la misma API key que mainnet en el endpoint https://api.blockvectra.com/v1/robinhood_testnet, autenticado mediante el encabezado de solicitud x-api-key.
Las solicitudes de testnet utilizan los mismos pesos de CU que mainnet y consumen del mismo saldo y créditos gratuitos. Los métodos JSON-RPC disponibles y la retención de estado histórico en Robinhood Chain Testnet se publican dinámicamente a través de GET /v1/chains.
Para ver un inicio en tres pasos ejecutable que lee la testnet sin clave, transmite logs mediante WebSocket y luego traslada la misma clave a mainnet, consulte la guía de inicio de Robinhood Chain Testnet.
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":[]}'Respuesta esperada:
{"jsonrpc":"2.0","id":1,"result":"0xb626"}| Parámetro / Endpoint | Valor / Plantilla | Autenticación |
|---|---|---|
| Chain ID (EIP-155) | 46630 | — |
| JSON-RPC (clave en la ruta) | POST https://api.blockvectra.com/v1/robinhood_testnet/{api_key} | API key en la ruta de la URL |
| JSON-RPC (clave en el encabezado) | POST https://api.blockvectra.com/v1/robinhood_testnet | Encabezado x-api-key: {api_key} |
| WebSocket (clave en la ruta) | wss://api.blockvectra.com/v1/robinhood_testnet/{api_key} | API key en la ruta de la URL |
| WebSocket (clave en el encabezado) | wss://api.blockvectra.com/v1/robinhood_testnet | Encabezado x-api-key: {api_key} o Authorization: Bearer {api_key} |
| Suscripciones WebSocket | newHeads, logs | — |
| Base de Data API | Aún no disponible | — |
| Estado público | GET https://api.blockvectra.com/v1/status | Sin autenticación (público) |
Parámetros y límites de la red
- Rango de bloques para eth_getLogs: Máx. 1000 bloques por solicitud
- Ventana de estado histórico: Últimos 1023 bloques (consultas posteriores devuelven -32011)
- Rastreo de ejecución (debug_trace*): Compatible (debug_traceTransaction, debug_traceCall, debug_traceBlockByNumber, debug_traceBlockByHash)
Métodos permitidos por cadena: Cadenas compatibles
Datos de acciones tokenizadas
En Robinhood Chain, la Data API de BlockVectra proporciona métricas diarias on-chain y metadatos para acciones tokenizadas a través de dos endpoints:
- Clasificación diaria (
GET /v1/data/robinhood_mainnet/stocks): Clasificación de actividad diaria de acciones tokenizadas para una fecha UTC especificada, ordenada por actividad de transferencias de forma descendente. - Consultar una acción tokenizada (
GET /v1/data/robinhood_mainnet/stocks/{token}): Metadatos del contrato del token y hasta 30 días de métricas diarias recientes por dirección del token.
Para ver parámetros de solicitud detallados, estructuras de respuesta (StockDailyListEnvelope y StockTokenEnvelope), notas de paginación y estimaciones de consumo de CU, consulte la guía de acciones tokenizadas.
Plantilla de inicio completa: blockvectra/robinhood-stock-tokens
Primeros pasos y API keys
Las cuentas nuevas reciben 30,000,000 CU al registrarse — sin tarjeta de crédito.Puede probar primero el endpoint público sin clave https://api.blockvectra.com/v1/robinhood_mainnet/public (solo métodos JSON-RPC de billetera, la Data API requiere clave; los métodos y límites están sujetos a /v1/chains); registre una cuenta si necesita un límite de tasa mayor.
- Consola web: Regístrese mediante firma de billetera Ethereum y genere una API key en la consola. Consulte la Guía de inicio rápido para ver los detalles de configuración.
- Registro programático: Los agentes de IA autónomos, scripts automatizados y pipelines de CI pueden iniciar sesión y aprovisionar API keys utilizando firmas de billetera Ethereum (EIP-191) sin navegador. Siga la Guía de registro programático.
- Agentes de IA: Los agentes de IA autónomos pueden descubrir las capacidades de Robinhood Chain utilizando el servidor oficial de Model Context Protocol (MCP). Consulte Conectar agentes de IA a BlockVectra.
- Actualización de límites: Tras recargar, se elimina el límite de llamadas por segundo a nivel de cuenta; cada clave permanece sujeta a los límites de tasa y ráfaga de Compute Units (CU). Para conocer las tarifas actuales y las unidades de facturación, consulte la página de Precios.
Próximos pasos
- Explore el directorio de conjuntos de datos para ver todos los conjuntos de datos indexados por BlockVectra.
- Consulte el plan gratuito y los precios para comprobar lo que incluye su cuenta.
- Inicie sesión en la consola para crear una API key.
Última actualización:
Entender los precios de CU
Consulte los pesos de CU y unidades de precios de RPC y Data API, calcule el precio por millón de llamadas y estime los costos de uso a partir de la API de planes actual.
Faucet de testnet
Solicite test ETH con su propia API key: requisitos de cuenta, límites de solicitud, transacciones aceptadas y gestión de errores.