Resumen
La API de Arbitrum permite a los desarrolladores interactuar con Arbitrum One y Arbitrum Nova utilizando métodos estándar JSON-RPC de Ethereum, con total compatibilidad EVM. Este artículo cubre configuraciones de red, llamadas API comunes, criterios de selección de proveedores y mejores prácticas para dApps en producción.
Lista de Verificación para la Decisión sobre la API de Arbitrum
Antes de integrar la API de Arbitrum en tu proyecto, evalúa estas áreas clave:
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| Selección de red | Arbitrum One vs Arbitrum Nova vs testnet (Sepolia) | Diferentes cadenas sirven diferentes casos de uso: One para DeFi, Nova para juegos/redes sociales, Sepolia para staging |
| Proveedor RPC | Endpoints compatibles, límites de tasa, disponibilidad de WebSocket, datos de archivo | Los endpoints públicos gratuitos no son confiables para producción; un nodo dedicado o servicio gestionado asegura disponibilidad |
| Compatibilidad de métodos | Todos los métodos estándar eth_ funcionan; verifica métodos personalizados de Arbitrum | Arbitrum extiende Ethereum RPC con métodos específicos de rollup como arb_getL1BaseFee |
| Precios de gas | EIP-1559, componente de tarifa de datos L1 | La estimación de costos de transacción difiere de la mainnet de Ethereum; usa eth_estimateGas y arb_gasPrice |
| Soporte WebSocket | Para suscripciones en tiempo real (eth_subscribe) | Esencial para monitorear eventos, transacciones pendientes y feeds de precios |
| Datos de archivo | Acceso a trazas y estado histórico | La depuración, análisis e indexación a menudo requieren nodos de archivo |
| Failover y redundancia | Múltiples endpoints, reintentos automáticos, balanceo de carga | Elimina puntos únicos de fallo en entornos de producción |
Resumen de la Red Arbitrum
Arbitrum es una solución de escalado de Capa 2 líder para Ethereum, que utiliza rollups optimistas para ofrecer transacciones rápidas y de bajo costo mientras hereda la seguridad de Ethereum. Es totalmente compatible con EVM, lo que significa que los contratos Solidity existentes y las herramientas de Ethereum (Hardhat, Foundry, ethers.js) funcionan con cambios mínimos. Las redes principales son:
- Arbitrum One – Mainnet para DeFi de alto valor, trading y dApps de propósito general (ID de cadena: 42161).
- Arbitrum Nova – Sidechain basada en AnyTrust optimizada para juegos y aplicaciones sociales (ID de cadena: 42170).
- Arbitrum Sepolia – Testnet para desarrollo y staging (ID de cadena: 421614).
Todas las redes exponen la misma interfaz JSON-RPC, pero los proveedores pueden limitar el acceso a ciertas redes o endpoints.
Endpoints de la API de Arbitrum
Para interactuar con Arbitrum, envías solicitudes JSON-RPC a un endpoint RPC. Existen endpoints públicos, pero a menudo tienen límites de tasa y no son confiables para uso en producción. Para cargas de trabajo de producción, usa un servicio RPC gestionado o ejecuta tu propio nodo.
Ejemplo de endpoint de mainnet de Arbitrum One (solo para pruebas):
https://arb1.arbitrum.io/rpc
Ejemplo de solicitud usando curl:
curl https://arb1.arbitrum.io/rpc \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Respuesta:
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1234567"
}
Para endpoints privados con límites de tasa más altos y soporte WebSocket, servicios como OnFinality ofrecen endpoints RPC dedicados de Arbitrum con límites configurables y análisis.
Métodos JSON-RPC Soportados
Arbitrum soporta todos los métodos JSON-RPC estándar de Ethereum (eth_*, net_*, web3_*). Además, proporciona métodos específicos de Arbitrum para consultas relacionadas con rollup:
| Método | Descripción |
|---|---|
eth_blockNumber | Número de bloque más reciente |
eth_getBalance | Saldo de cuenta (en wei) |
eth_call | Ejecutar una llamada de función constante |
eth_sendRawTransaction | Transmitir una transacción firmada |
eth_getTransactionReceipt | Recibo de transacción por hash |
eth_estimateGas | Estimar el costo de gas de una transacción |
eth_subscribe | Suscribirse a eventos (solo WebSocket) |
arb_getL1BaseFee | Tarifa base L1 actual (en wei) |
arb_gasPrice | Precio de gas actual incluyendo tarifa de datos L1 |
Uso de la API de Arbitrum en JavaScript
Así es como conectarse a Arbitrum usando viem (o ethers.js):
import { createPublicClient, http } from 'viem'
import { arbitrum } from 'viem/chains'
const client = createPublicClient({
chain: arbitrum,
transport: http('https://arb1.arbitrum.io/rpc')
})
async function getBlockNumber() {
const blockNumber = await client.getBlockNumber()
console.log('Current block:', blockNumber)
}
Para producción, reemplaza el endpoint público por el endpoint privado de tu proveedor para evitar límites de tasa.
Precios de Gas en Arbitrum
Las transacciones de Arbitrum incluyen dos componentes de tarifa:
- Tarifa de ejecución L2 – Cubre la computación en el rollup, denominada en gwei (EIP-1559).
- Tarifa de datos L1 – Costo de publicar datos de transacción en Ethereum L1, varía con los precios de gas de L1.
Usa arb_gasPrice para obtener el precio total del gas (incluyendo la sobrecarga L1). Al estimar gas, llama a eth_estimateGas y luego aplica un buffer (por ejemplo, 20%) para evitar errores de falta de gas durante alta congestión L1.
Ejemplo de estimación con curl:
curl https://arb1.arbitrum.io/rpc \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0x...","to":"0x...","value":"0x0"}],"id":1}'
Elección de un Proveedor RPC para Arbitrum
Al seleccionar un proveedor para tu dApp en Arbitrum, considera:
- Límites de tasa – Los límites del nivel gratuito pueden bloquear solicitudes de alta frecuencia. Verifica el volumen de solicitudes esperado de tu aplicación.
- Soporte WebSocket – Necesario para feeds de datos en tiempo real. Muchos endpoints públicos deshabilitan WebSocket.
- Datos de archivo – Si necesitas estado histórico o trazas (por ejemplo, para exploradores o análisis), asegúrate de que el proveedor ofrezca nodos de archivo.
- Latencia geográfica – Elige endpoints cercanos a tu base de usuarios o despliega en múltiples regiones.
Los proveedores gestionados como OnFinality ofrecen endpoints dedicados de Arbitrum con límites de tasa personalizables, WebSocket y acceso a archivos. Compara precios de RPC para encontrar un plan que se ajuste a tu escala.
Errores Comunes y Solución de Problemas
- ID de red incorrecto – Verifica el ID de cadena: Arbitrum One es 42161, Nova es 42170, testnet Sepolia es 421614.
- Fluctuaciones de tarifa de datos L1 – Los precios de gas L1 pueden dispararse, haciendo que las transacciones sean más costosas. Monitorea
arb_getL1BaseFeeregularmente. - Datos desactualizados con endpoints públicos – Los endpoints públicos pueden retrasarse respecto al último bloque. Usa endpoints privados con baja latencia confirmada.
- Desconexiones de WebSocket – Implementa lógica de reconexión (por ejemplo, retroceso exponencial) para manejar fallos temporales.
- Gestión de nonce – Arbitrum usa el mismo sistema de nonce que Ethereum. Mantén un registro de las transacciones pendientes para evitar desajustes de nonce.
Conclusiones Clave
- La API de Arbitrum es totalmente compatible con JSON-RPC de Ethereum, por lo que la mayoría del código existente funciona sin cambios.
- Usa
arb_gasPriceyarb_getL1BaseFeepara una estimación precisa de tarifas. - Los endpoints RPC públicos son adecuados solo para desarrollo; las aplicaciones en producción requieren un proveedor confiable con soporte WebSocket y de archivo.
- Evalúa a los proveedores según límites de tasa, cobertura geográfica y servicios adicionales como nodos dedicados.
- Prueba en Arbitrum Sepolia antes de desplegar en mainnet para detectar problemas específicos de la red.
Preguntas Frecuentes
P: ¿La API de Arbitrum es igual que la API de Ethereum? R: Sí, Arbitrum soporta el conjunto completo de métodos JSON-RPC de Ethereum. Añade algunos métodos específicos de rollup para datos de tarifas L1.
P: ¿Necesito una clave API para usar Arbitrum? R: Los endpoints públicos no requieren clave API, pero tienen límites de tasa. La mayoría de los servicios gestionados requieren una clave API para autenticación y seguimiento de uso.
P: ¿Puedo usar el mismo código para Arbitrum One y Nova? R: Sí, ambas redes comparten la misma interfaz RPC. Solo actualiza el ID de cadena y la URL del endpoint.
P: ¿Cómo obtengo las tarifas de datos L1?
R: Llama a arb_getL1BaseFee para obtener la tarifa base L1 actual en wei.
P: ¿Cuál es el mejor proveedor RPC para Arbitrum? R: El mejor proveedor depende de tu carga de trabajo. Evalúa opciones según límites de tasa, WebSocket, datos de archivo y soporte. Consulta redes compatibles para disponibilidad de Arbitrum entre proveedores.
Para más detalles, explora los endpoints RPC de Arbitrum de OnFinality y elige un plan que se ajuste a las necesidades de tu proyecto.