Resumen
Los endpoints RPC de Arbitrum permiten que las carteras y dApps lean y escriban datos en Arbitrum One, Arbitrum Nova y Arbitrum Sepolia. Esta guía cubre los endpoints públicos oficiales, la configuración de la cadena, cómo conectarse con curl o ethers, y cómo elegir un proveedor confiable para producción.
Referencia rápida: Endpoints RPC de Arbitrum y configuración de la cadena
Si solo necesitas el endpoint y los detalles de la cadena para configurar una cartera o comenzar a programar, aquí tienes la versión corta. Los endpoints RPC públicos oficiales tienen límites de tasa y no admiten WebSocket, por lo que son adecuados para prototipos pero no para tráfico de producción.
| Red | URL RPC | ID de cadena | Explorador |
|---|---|---|---|
| Arbitrum One | https://arb1.arbitrum.io/rpc | 42161 | Arbiscan |
| Arbitrum Nova | https://nova.arbitrum.io/rpc | 42170 | Nova Explorer |
| Arbitrum Sepolia (testnet) | https://sepolia-rollup.arbitrum.io/rpc | 421614 | Sepolia Arbiscan |
Para aplicaciones de producción, normalmente usarás un proveedor de RPC administrado que ofrezca límites de tasa más altos, soporte WebSocket y datos de archivo. OnFinality proporciona endpoints RPC para Arbitrum y otras redes, con precios que escalan con tu uso.
Cómo conectarse a Arbitrum con curl
Arbitrum es compatible con EVM, por lo que puedes usar métodos JSON-RPC estándar. Aquí tienes un ejemplo rápido con curl para obtener el número de bloque más reciente:
curl https://arb1.arbitrum.io/rpc \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Deberías obtener una respuesta como:
{"jsonrpc":"2.0","id":1,"result":"0x1d4c4b"}
El resultado es un número de bloque codificado en hexadecimal. Conviértelo a decimal para obtener la altura de bloque actual.
Usando ethers.js o viem con Arbitrum
La mayoría de los desarrolladores usan una biblioteca como ethers.js o viem. Aquí tienes un ejemplo con ethers v6:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider("https://arb1.arbitrum.io/rpc");
const blockNumber = await provider.getBlockNumber();
console.log(blockNumber);
Con viem, puedes crear un cliente público:
import { createPublicClient, http } from "viem";
import { arbitrum } from "viem/chains";
const client = createPublicClient({
chain: arbitrum,
transport: http("https://arb1.arbitrum.io/rpc"),
});
const blockNumber = await client.getBlockNumber();
console.log(blockNumber);
Agregar Arbitrum a MetaMask u otras carteras
Si deseas agregar Arbitrum One a MetaMask manualmente, usa esta configuración:
- Nombre de la red: Arbitrum One
- Nueva URL RPC:
https://arb1.arbitrum.io/rpc - ID de cadena:
42161 - Símbolo de moneda:
ETH - URL del explorador de bloques:
https://arbiscan.io
Para Arbitrum Nova, usa el ID de cadena 42170 y el explorador https://nova.arbiscan.io. Para Arbitrum Sepolia, usa el ID de cadena 421614 y el explorador https://sepolia.arbiscan.io.
Endpoints públicos oficiales vs. proveedores administrados
Los endpoints RPC públicos oficiales son operados por el equipo de Arbitrum y son gratuitos. Sin embargo, tienen limitaciones:
- Sin soporte WebSocket: Los endpoints públicos no admiten conexiones
wss://. Si tu dApp necesita actualizaciones en tiempo real, necesitas un proveedor que ofrezca WebSocket. - Límites de tasa: Los endpoints públicos son compartidos y pueden ser limitados bajo carga pesada.
- Sin datos de archivo: Solo sirven el estado reciente. Si necesitas estado histórico, necesitas un nodo de archivo.
- Endpoint del secuenciador: El endpoint del secuenciador (
https://arb1-sequencer.arbitrum.io/rpc) solo admiteeth_sendRawTransactionyeth_sendRawTransactionConditional. No es un endpoint RPC de propósito general.
Para producción, debes usar un proveedor de RPC administrado que ofrezca:
- Límites de tasa más altos y rendimiento dedicado
- Soporte WebSocket para suscripciones
- Datos de archivo y métodos de rastreo
- Caché de borde global para baja latencia
- Conmutación por error y redundancia
OnFinality proporciona endpoints RPC de Arbitrum como parte de sus redes compatibles, con precios flexibles para nodos compartidos y dedicados.
Cómo elegir un proveedor de RPC de Arbitrum
Al evaluar un proveedor de RPC para Arbitrum, considera estos criterios:
| Criterio | Qué verificar | Por qué importa |
|---|---|---|
| Límites de tasa | Solicitudes por segundo (RPS) y cuota diaria | Determina si tu aplicación puede manejar tráfico máximo |
| Soporte WebSocket | ¿El proveedor ofrece endpoints wss://? | Necesario para datos en tiempo real y suscripciones |
| Datos de archivo | ¿El proveedor ofrece nodos de archivo? | Requerido para consultas históricas y análisis |
| Métodos de rastreo | ¿El proveedor admite debug_traceTransaction? | Necesario para depuración e indexación |
| Cobertura global | ¿Hay endpoints en múltiples regiones? | Reduce la latencia para usuarios en todo el mundo |
| SLA de tiempo de actividad | ¿Cuáles son las expectativas de confiabilidad? | Asegura la confiabilidad para aplicaciones de producción |
| Modelo de precios | Pago por uso vs. suscripción | Afecta la previsibilidad de costos |
Para una inmersión más profunda, consulta nuestra guía sobre cómo elegir un proveedor de RPC.
Errores comunes y solución de problemas
1. Usar el endpoint del secuenciador para consultas generales
El endpoint del secuenciador solo acepta el envío de transacciones. Si llamas a eth_call o eth_getBalance en él, obtendrás un error. Usa el endpoint RPC regular para lecturas.
2. WebSocket no compatible en el endpoint público
Si intentas conectarte a través de wss://arb1.arbitrum.io/rpc, fallará. Usa un proveedor que admita WebSocket o consulta el endpoint HTTP en su lugar.
3. Límite de tasa
Si obtienes 429 Too Many Requests, estás alcanzando el límite de tasa. Considera actualizar a un plan de pago o usar un nodo dedicado.
4. Error de ID de cadena
Asegúrate de que tu cartera o dApp use el ID de cadena correcto: 42161 para Arbitrum One, 42170 para Nova, 421614 para Sepolia. Un desajuste causará que las transacciones sean rechazadas.
5. Problemas de estimación de gas
Arbitrum usa un modelo de gas diferente al de Ethereum. Usa eth_estimateGas con los parámetros apropiados y ten en cuenta que las tarifas de datos L1 están incluidas en el precio del gas.
Monitoreo de la salud de tu RPC de Arbitrum
Para asegurar que tu dApp se mantenga saludable, monitorea la latencia y la tasa de error de tu endpoint RPC. Puedes usar un script simple para verificar periódicamente el número de bloque más reciente:
while true; do
curl -s -X POST https://arb1.arbitrum.io/rpc \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
| jq -r '.result' \
| xargs printf "Block: %d\n"
sleep 10
done
Si el número de bloque no aumenta con el tiempo, tu endpoint puede estar desactualizado. Considera usar un proveedor con conmutación por error.
Conclusiones clave
- Los endpoints RPC oficiales de Arbitrum son
https://arb1.arbitrum.io/rpc(One),https://nova.arbitrum.io/rpc(Nova) yhttps://sepolia-rollup.arbitrum.io/rpc(Sepolia). - Los endpoints públicos tienen límites de tasa y no admiten WebSocket, por lo que no son adecuados para producción.
- Usa un proveedor administrado como OnFinality para límites de tasa más altos, WebSocket, datos de archivo y confiabilidad.
- Siempre verifica el ID de cadena y usa el endpoint correcto para la red con la que deseas interactuar.
Preguntas frecuentes
¿Cuál es el endpoint RPC de Arbitrum?
El endpoint RPC de Arbitrum es una URL que permite que las carteras y dApps se comuniquen con la cadena de bloques de Arbitrum a través de JSON-RPC. El endpoint de mainnet es https://arb1.arbitrum.io/rpc.
¿Arbitrum admite WebSocket?
El RPC público oficial no admite WebSocket. Necesitas un proveedor de terceros que ofrezca endpoints WebSocket, como OnFinality.
¿Cómo obtengo una URL RPC de Arbitrum?
Puedes usar el endpoint público https://arb1.arbitrum.io/rpc para pruebas, o registrarte en un proveedor administrado para obtener un endpoint privado con límites más altos.
¿Cuál es el ID de cadena para Arbitrum One?
El ID de cadena para Arbitrum One es 42161. Para Arbitrum Nova es 42170, y para Arbitrum Sepolia es 421614.
¿Puedo usar el endpoint del secuenciador para llamadas RPC generales?
No, el endpoint del secuenciador solo admite eth_sendRawTransaction y eth_sendRawTransactionConditional. Usa el endpoint RPC regular para otros métodos.