Resumen
Las APIs de Ethereum incluyen los métodos JSON-RPC estándar (eth_*), la API REST de Beacon para datos de consenso y la API Engine utilizada internamente por los clientes. Los endpoints específicos de proveedores como Etherscan o Alchemy no son APIs estándar de Ethereum. Esta guía te ayuda a identificar qué cuenta como una API de Ethereum y cómo conectarte de manera confiable.
Respuesta rápida: ¿Qué cuenta como una API de Ethereum?
Cuando alguien pregunta "¿cuáles de estos son APIs de Ethereum?", la respuesta depende de si te refieres a las interfaces estandarizadas definidas por el protocolo de Ethereum o a los endpoints adicionales que los proveedores de infraestructura añaden. Las APIs principales de Ethereum son:
- JSON-RPC de ejecución (los métodos
eth_*) – se usa para leer el estado, enviar transacciones e interactuar con contratos inteligentes. - API REST de Beacon – expone datos de la capa de consenso como slots, validadores y finalidad.
- API Engine – la interfaz interna entre los clientes de ejecución y consenso, no destinada para uso externo.
Los endpoints específicos de proveedores como ?module=account&action=balance de Etherscan o alchemy_getAssetTransfers de Alchemy no son APIs de Ethereum en el sentido del protocolo. Son servicios de conveniencia construidos sobre la blockchain. Entender esta distinción te ayuda a elegir la interfaz correcta para tu aplicación y evitar la dependencia de un proveedor.
Guía de decisión: ¿Qué API deberías usar?
Antes de escribir código, decide qué capa de API se ajusta a tu caso de uso. Usa esta tabla para evaluar tus opciones:
| Caso de uso | API recomendada | Por qué |
|---|---|---|
| Leer saldos, enviar transacciones, llamar contratos | JSON-RPC de ejecución | La interfaz estándar soportada por todos los clientes y proveedores |
| Consultar actividad de validadores, finalidad o datos de la cadena de baliza | API REST de Beacon | Proporciona datos de la capa de consenso no disponibles a través de eth_* |
| Actualizaciones en tiempo real (nuevos bloques, transacciones pendientes) | JSON-RPC WebSocket | Permite suscripciones como eth_subscribe |
| Estado histórico o logs más allá del podado predeterminado | JSON-RPC de nodo de archivo | Requerido para eth_getBalance en bloques antiguos o eth_getLogs en rangos largos |
| Características específicas del proveedor (saldos de tokens, metadatos NFT) | APIs de proveedor (ej., Etherscan, Alchemy) | No son estándar, pero pueden ahorrar tiempo de desarrollo |
Para la mayoría de las dApps, comenzarás con JSON-RPC de ejecución sobre HTTPS. Si necesitas datos en tiempo real, añade una conexión WebSocket. Si estás construyendo análisis o un explorador de bloques, probablemente necesitarás acceso de archivo y posiblemente la API REST de Beacon.
¿Qué es la API JSON-RPC de Ethereum?
La API JSON-RPC de Ethereum es un conjunto de métodos que permiten a los clientes interactuar con la red Ethereum. Sigue la especificación JSON-RPC 2.0 y está implementada por todos los clientes de ejecución principales (Geth, Nethermind, Besu, Erigon). Los métodos se dividen en tres categorías:
- Métodos de gossip:
eth_sendRawTransaction,eth_sendTransaction– transmiten transacciones a la red. - Métodos de estado:
eth_getBalance,eth_call,eth_getStorageAt– leen el estado actual. - Métodos de historial:
eth_getBlockByNumber,eth_getTransactionReceipt,eth_getLogs– consultan datos históricos.
Aquí tienes un ejemplo simple con curl para obtener el número del último bloque:
curl -X POST https://eth-mainnet.rpc.onfinality.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
La API REST de Beacon: Datos de consenso
Después de The Merge, Ethereum tiene dos capas: ejecución y consenso. La API REST de Beacon expone datos de la capa de consenso, como:
GET /eth/v1/beacon/genesis– información de génesisGET /eth/v1/beacon/states/{state_id}/validators– conjunto de validadoresGET /eth/v1/beacon/blocks/{block_id}– detalles del bloque de baliza
Esta API es útil para paneles de staking, monitoreo de validadores y aplicaciones que necesitan información de finalidad. No es un reemplazo para JSON-RPC; lo complementa.
La API Engine: Comunicación interna
La API Engine es una interfaz JSON-RPC entre el cliente de ejecución y el cliente de consenso. Maneja la validación de bloques y la ejecución de payloads. No está destinada a desarrolladores externos y rara vez se expone públicamente. Si ves un endpoint etiquetado como "Engine API", probablemente sea para operaciones internas de nodos, no para desarrollo de dApps.
APIs específicas de proveedores: No son Ethereum estándar
Servicios como Etherscan, Alchemy e Infura ofrecen sus propias APIs que van más allá del JSON-RPC estándar. Por ejemplo:
- API de Etherscan:
https://api.etherscan.io/api?module=account&action=balance&address=0x...– devuelve saldos, historial de transacciones y ABIs de contratos. - API NFT de Alchemy:
alchemy_getNFTMetadata– obtiene datos de NFT. - API IPFS de Infura: no específica de Ethereum pero ofrecida junto con ella.
Estas no son APIs de Ethereum. Son extensiones propietarias que pueden ser convenientes, pero introducen una dependencia de un proveedor específico. Si construyes sobre ellas, migrar a otro proveedor puede requerir cambios en el código.
Cómo conectarse: Uso de bibliotecas y endpoints
En lugar de curl crudo, la mayoría de los desarrolladores usan bibliotecas como ethers.js o viem. Aquí tienes un ejemplo usando viem:
import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createPublicClient({
chain: mainnet,
transport: http('https://eth-mainnet.rpc.onfinality.io'),
});
const blockNumber = await client.getBlockNumber();
console.log('Current block number:', blockNumber);
Al elegir un proveedor de RPC, considera:
- Soporte de métodos: ¿Soporta
eth_getLogs,eth_cally métodos de archivo? - Límites de tasa: ¿Cuáles son las solicitudes por segundo y los límites diarios?
- Soporte WebSocket: Necesario para suscripciones en tiempo real.
- Redundancia: ¿El proveedor utiliza nodos con balance de carga?
OnFinality ofrece endpoints RPC públicos y dedicados para Ethereum y muchas otras redes. Consulta nuestros precios de RPC y redes compatibles para más detalles.
Errores comunes y cómo evitarlos
- Usar métodos específicos del proveedor sin respaldo: Si dependes de
alchemy_getAssetTransfers, tu aplicación se rompe si cambias de proveedor. Usa métodos estándar cuando sea posible. - Ignorar el parámetro de bloque:
eth_getBalancerequiere un parámetro de bloque. Usar"latest"puede no dar datos históricos; usa"earliest"o un número de bloque específico. - Asumir que todos los proveedores soportan datos de archivo: No todos lo hacen. Si necesitas estado histórico, verifica el soporte de archivo.
- Olvidar WebSocket para tiempo real: HTTP es solicitud-respuesta; WebSocket permite suscripciones. Usa
eth_subscribepara transacciones pendientes.
Conclusiones clave
- Las APIs estándar de Ethereum son JSON-RPC de ejecución, Beacon REST y Engine API.
- Las APIs específicas de proveedores no son APIs de Ethereum; son extensiones propietarias.
- Elige tu API según tu caso de uso: estado, historial, tiempo real o datos de consenso.
- Usa bibliotecas como viem o ethers.js para simplificar el desarrollo.
- Evalúa los proveedores de RPC en cuanto a soporte de métodos, límites de tasa, WebSocket y datos de archivo.
Preguntas frecuentes
¿Es la API de Etherscan una API de Ethereum?
No, la API de Etherscan es una API propietaria que proporciona datos de la blockchain de Ethereum. No forma parte del conjunto estándar de APIs de Ethereum.
¿Cuál es la diferencia entre JSON-RPC y API REST?
JSON-RPC es un protocolo que utiliza JSON para llamadas a procedimientos remotos, típicamente sobre HTTP o WebSocket. REST es un estilo arquitectónico. La API estándar de Ethereum es JSON-RPC, no REST.
¿Puedo usar WebSocket para la API de Ethereum?
Sí, muchos proveedores ofrecen endpoints WebSocket para suscripciones en tiempo real. Usa eth_subscribe para escuchar nuevos bloques o transacciones pendientes.
¿Necesito una clave de API para la API de Ethereum?
Los endpoints públicos pueden no requerir clave, pero para producción, querrás un servicio gestionado con clave de API para obtener mayores límites de tasa y confiabilidad.
¿Qué es un nodo de archivo?
Un nodo de archivo almacena el historial completo del estado, permitiendo consultas en cualquier bloque pasado. Es necesario para análisis y datos históricos.
Próximos pasos
Ahora que sabes qué APIs son de Ethereum, puedes empezar a construir. Si necesitas un proveedor de RPC confiable, explora el servicio de API de OnFinality o considera un nodo dedicado para aplicaciones de alto rendimiento. Para una visión más amplia, consulta nuestra guía para elegir un proveedor de RPC.