Resumen
La API de Binance Smart Chain (BSC) proporciona endpoints JSON-RPC para interactuar con la red BNB Smart Chain. Los desarrolladores usan estas API para consultar datos de la blockchain, enviar transacciones y desplegar contratos inteligentes. Esta guía cubre los métodos disponibles, las URLs de los endpoints y cómo comenzar con ejemplos de código.
Lista de verificación para la API de Binance Smart Chain
Antes de integrar con la API de Binance Smart Chain, evalúe estos factores:
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| Límites de tasa | ¿Hay límites por segundo o diarios en las solicitudes? | Superar los límites puede causar solicitudes descartadas; elija un proveedor con suficiente capacidad para su uso. |
| Compatibilidad con datos de archivo | ¿El endpoint admite estado de archivo (por ejemplo, eth_call en bloques pasados)? | Requerido para dApps que necesitan estado histórico o análisis profundos. |
| Compatibilidad con WebSocket | ¿Hay un endpoint WebSocket disponible para suscripciones en tiempo real? | Necesario para actualizaciones en vivo como transacciones pendientes o nuevos bloques. |
| Rendimiento y confiabilidad | ¿Cuál es la latencia promedio y el historial de tiempo de actividad? | Las aplicaciones en producción requieren un rendimiento constante; verifique los SLA si es crítico. |
| Seguridad | ¿La conexión está encriptada (HTTPS/WSS)? ¿Se requieren claves API? | Protege los datos en tránsito; la autenticación con clave API evita el acceso no autorizado. |
Entendiendo la API de Binance Smart Chain
Binance Smart Chain (BSC) es una blockchain compatible con la Máquina Virtual de Ethereum (EVM), lo que significa que admite los mismos métodos JSON-RPC que Ethereum. La API de BSC le permite leer datos de la blockchain, enviar transacciones e interactuar con contratos inteligentes. La mayoría de las herramientas construidas para Ethereum (como web3.js, ethers.js y viem) funcionan con BSC con cambios mínimos de configuración.
Métodos JSON-RPC
BSC admite los métodos JSON-RPC estándar de Ethereum más algunos personalizados para su mecanismo de finalidad. Los métodos comunes incluyen:
eth_blockNumber– Obtener el número de bloque más reciente.eth_getBalance– Obtener el saldo de una dirección.eth_call– Ejecutar una llamada a un contrato inteligente sin crear una transacción.eth_sendRawTransaction– Transmitir una transacción firmada.eth_getTransactionReceipt– Obtener el recibo de una transacción.eth_getLogs– Recuperar registros de eventos.eth_subscribe/eth_unsubscribe– Suscripciones en tiempo real (solo WebSocket).- Métodos personalizados de BSC:
eth_getFinalizedHeader,eth_getFinalizedBlock,eth_newFinalizedHeaderFilterpara consultas de finalidad.
Endpoints RPC
Endpoints públicos
Los endpoints RPC públicos oficiales están disponibles pero tienen límites de tasa estrictos y no se recomiendan para producción. Ejemplo:
https://bsc-dataseed.binance.org/
https://bsc-dataseed1.defibit.io/
Son gratuitos pero están sujetos a limitación. Úselos solo para pruebas o aplicaciones de bajo tráfico.
Endpoints privados/de proveedor
Para cargas de trabajo de producción, use un proveedor de RPC confiable como OnFinality. Los proveedores ofrecen endpoints dedicados o compartidos con límites de tasa más altos, mejor rendimiento y opciones de soporte. OnFinality proporciona endpoints RPC de BSC con:
- Alto rendimiento y baja latencia.
- Compatibilidad con WebSocket.
- Acceso a nodo de archivo para datos históricos.
- Gestión de claves API.
Para crear un endpoint de BSC en OnFinality, visite nuestra página de red o regístrese en api-service.
Ejemplos de código
Usando cURL
Obtener el número de bloque más reciente:
curl -X POST https://rpc.onfinality.io/rpc?apikey=YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Respuesta:
{"jsonrpc":"2.0","id":1,"result":"0x10d4f3b"}
Usando ethers.js (JavaScript)
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://rpc.onfinality.io/rpc?apikey=YOUR_API_KEY");
async function main() {
const blockNumber = await provider.getBlockNumber();
console.log("Current block:", blockNumber);
const balance = await provider.getBalance("0x742d35Cc6634C0532925a3b844Bc4a23d0b5f8e2");
console.log("Balance (BNB):", ethers.formatEther(balance));
}
main();
Usando viem (JavaScript)
import { createPublicClient, http } from "viem";
import { bsc } from "viem/chains";
const client = createPublicClient({
chain: bsc,
transport: http("https://rpc.onfinality.io/rpc?apikey=YOUR_API_KEY"),
});
const blockNumber = await client.getBlockNumber();
console.log("Block number:", blockNumber);
Errores comunes
- Uso de nonce desactualizado: Al enviar transacciones, asegúrese de que el nonce coincida con el siguiente nonce esperado para su dirección. Use
eth_getTransactionCountcon el parámetro"pending". - Exceder los límites de tasa: Los endpoints públicos a menudo imponen límites estrictos. Use un proveedor con límites más altos o nodos dedicados.
- Falta de datos de archivo: Algunos endpoints no admiten estado de archivo. Si su aplicación requiere
eth_callhistórico, asegúrese de que el endpoint proporcione acceso de archivo. - Desconexiones de WebSocket: Las conexiones WebSocket pueden caer; implemente lógica de reconexión.
Cómo elegir el acceso API adecuado
La elección entre endpoints públicos, privados compartidos y nodos dedicados depende de su carga de trabajo:
- Endpoints públicos: Adecuados para prototipos y consultas de solo lectura de bajo volumen. Evite para producción.
- Endpoints privados compartidos (por ejemplo, a través de OnFinality): Ofrecen rendimiento y costo equilibrados para la mayoría de las dApps. Buenos para aplicaciones con muchas lecturas y envío de transacciones moderado.
- Nodos dedicados: Control total sobre los recursos, límites de tasa claros y baja latencia. Ideal para dApps de alto rendimiento, trading en tiempo real o indexación de datos.
Para más detalles sobre la selección de proveedores, consulte nuestra guía para elegir un proveedor de RPC.
Conclusiones clave
- Binance Smart Chain usa el mismo JSON-RPC que Ethereum, lo que facilita migrar código existente.
- Los endpoints públicos están disponibles pero no son adecuados para producción debido a los límites de tasa.
- Use un proveedor de RPC confiable como OnFinality para un acceso más rápido y confiable.
- Siempre pruebe el rendimiento y la compatibilidad con archivos de su endpoint antes de desplegar.
- Implemente un manejo de errores adecuado y reconexión para suscripciones WebSocket.
Preguntas frecuentes
P: ¿Cuál es la diferencia entre la API de BSC y la API del exchange de Binance?
R: La API de BSC es para interactuar con la blockchain BNB Smart Chain (leer/escribir datos, desplegar contratos), mientras que la API del exchange de Binance es para operar en el exchange centralizado de Binance. Sirven para propósitos diferentes.
P: ¿Puedo usar herramientas de Ethereum con BSC?
R: Sí, porque BSC es compatible con EVM. La mayoría de las bibliotecas de Ethereum funcionan sin modificación. Solo cambie el endpoint RPC a uno de BSC.
P: ¿Cómo obtengo una clave API de BSC?
R: Regístrese con un proveedor de RPC como OnFinality para obtener una clave API. Alternativamente, puede usar endpoints públicos sin clave, pero con limitaciones.
P: ¿BSC admite WebSockets?
R: Sí, la mayoría de los proveedores ofrecen endpoints WebSocket para suscripciones en tiempo real. Consulte la documentación del proveedor para la URL WSS.
P: ¿Qué es el acceso a nodo de archivo?
R: Un nodo de archivo almacena el historial completo del estado, permitiendo consultas como eth_call en cualquier bloque pasado. Útil para análisis y recuperación de datos históricos.
Para más información, consulte nuestros precios de RPC y redes compatibles.