Resumen
Aprende cómo conectarte a BNB Smart Chain (Binance Chain) usando APIs RPC. Esta guía cubre la configuración de la red, endpoints públicos y cómo elegir entre infraestructura de nodos pública, gestionada y dedicada para tus dApps.
Decisión rápida: ¿Qué configuración de API de BNB Chain se adapta a tu proyecto?
Antes de escribir cualquier código, decide cómo accederás a BNB Smart Chain. La elección correcta depende de tu carga de trabajo, tu tolerancia a los límites de tasa y si necesitas datos históricos.
- Prototipado o uso ligero: Usa un endpoint RPC público como
https://bnb.api.onfinality.io/public. Es gratuito y adecuado para desarrollo, pero es compartido y puede tener límites de tasa. - dApp de producción o backend: Usa un servicio RPC gestionado con mayor rendimiento y fiabilidad. OnFinality ofrece endpoints gestionados con acceso a datos de archivo y soporte WebSocket.
- Cargas de trabajo de alto rendimiento o intensivas en datos: Considera un nodo dedicado. Si necesitas ejecutar muchas consultas
eth_getLogs, procesar grandes lotes o requieres un rendimiento constante, la infraestructura dedicada te brinda recursos aislados.
Si no estás seguro, comienza con un servicio gestionado y escala a un nodo dedicado cuando alcances los límites. Para más detalles sobre cómo evaluar proveedores, consulta nuestra guía para elegir un proveedor de RPC.
¿Qué es la API de Binance Chain?
La API de Binance Chain generalmente se refiere a la interfaz RPC para BNB Smart Chain (BSC), la blockchain compatible con EVM que se ejecuta junto a la Binance Chain original. Los desarrolladores usan esta API para leer y escribir datos en la cadena: enviar transacciones, consultar saldos, obtener registros y más.
BNB Smart Chain utiliza el estándar JSON-RPC de Ethereum, por lo que cualquier herramienta de Ethereum (ethers.js, viem, web3.js) funciona con BSC. El ID de cadena es 56 para mainnet y 97 para testnet.
Configuración de red de un vistazo
Aquí están los parámetros clave que necesitas para configurar tu wallet o dApp para BNB Smart Chain:
| Parámetro | Mainnet | Testnet |
|---|---|---|
| ID de cadena | 56 | 97 |
| Nombre de red | BNB Smart Chain Mainnet | BNB Smart Chain Testnet |
| Moneda nativa | BNB | tBNB |
| Explorador de bloques | bscscan.com | testnet.bscscan.com |
| URL RPC pública | https://bnb.api.onfinality.io/public | https://bnb-testnet.api.onfinality.io/public |
Estos ajustes son esenciales para conectar wallets, desplegar contratos y ejecutar scripts.
Cómo conectarse a BNB Smart Chain con ethers.js
Aquí tienes un ejemplo simple usando ethers.js para conectarte a BNB Smart Chain y leer el número de bloque más reciente:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://bnb.api.onfinality.io/public");
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);
}
getBlockNumber();
Para soporte WebSocket, puedes usar una URL WebSocket si tu proveedor ofrece una. OnFinality soporta WebSocket en BNB Smart Chain; consulta la página de red para más detalles.
Público vs. Gestionado vs. Dedicado: Qué deben comparar los desarrolladores
Cuando busques una API de Binance Chain, encontrarás endpoints públicos, servicios gestionados y ofertas de nodos dedicados. Aquí te mostramos cómo compararlos:
| Factor | Endpoint público | Servicio RPC gestionado | Nodo dedicado |
|---|---|---|---|
| Costo | Gratis | Basado en uso o suscripción | Más alto, predecible |
| Límites de tasa | Estrictos | Más altos, configurables | Ninguno (dentro de la capacidad del nodo) |
| Fiabilidad | Mejor esfuerzo | Respaldado por SLA | Recursos aislados |
| Datos de archivo | Generalmente no | A menudo disponibles | Opcional |
| WebSocket | Raramente | Sí | Sí |
| Mejor para | Desarrollo | dApps de producción | Cargas de trabajo de alto rendimiento |
Los endpoints públicos son convenientes pero pueden limitar tus solicitudes. Los servicios gestionados como OnFinality ofrecen un equilibrio entre rendimiento y facilidad. Los nodos dedicados te dan control total y son ideales para aplicaciones que necesitan acceso constante y de alto volumen.
Usando la API de BNB Chain para tareas comunes
Aquí hay algunas llamadas JSON-RPC comunes que podrías hacer con la API de BNB Chain:
Obtener saldo de BNB
curl https://bnb.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYourAddress","latest"],"id":1}'
Obtener recibo de transacción
curl https://bnb.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xTransactionHash"],"id":1}'
Suscribirse a nuevos bloques (WebSocket)
Si tienes un endpoint WebSocket, puedes suscribirte a nuevos encabezados de bloque:
const { WebSocket } = require("ws");
const ws = new WebSocket("wss://your-websocket-endpoint");
ws.on("open", () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
method: "eth_subscribe",
params: ["newHeads"],
id: 1
}));
});
ws.on("message", (data) => {
console.log("New block:", JSON.parse(data));
});
Errores comunes y cómo evitarlos
- Usar el ID de cadena incorrecto: Siempre verifica que estás usando
56para mainnet y97para testnet. Mezclarlos puede causar que las transacciones fallen o se envíen a la red equivocada. - Límite de tasa: Los endpoints públicos a menudo limitan las solicitudes. Si ves errores
429, considera actualizar a un servicio gestionado o nodo dedicado. - Faltan datos de archivo: Algunos métodos como
eth_getLogscon rangos de bloques antiguos requieren nodos de archivo. Si necesitas datos históricos, asegúrate de que tu proveedor ofrezca acceso de archivo. - WebSocket no soportado: No todos los endpoints soportan WebSocket. Si necesitas actualizaciones en tiempo real, verifica que tu proveedor lo soporte.
Pruebas en la testnet de BNB Chain
Antes de desplegar en mainnet, prueba tu aplicación en la testnet de BNB Chain. Usa el endpoint RPC de testnet https://bnb-testnet.api.onfinality.io/public y obtén BNB de prueba de un faucet. El ID de cadena es 97.
Aquí te mostramos cómo configurar una wallet para la testnet:
{
"chainId": "97",
"chainName": "BNB Smart Chain Testnet",
"nativeCurrency": {
"name": "BNB Chain Native Token",
"symbol": "tBNB",
"decimals": 18
},
"rpcUrls": ["https://bnb-testnet.api.onfinality.io/public"],
"blockExplorerUrls": ["https://testnet.bscscan.com"]
}
Conclusiones clave
- La API de Binance Chain es la interfaz RPC para BNB Smart Chain, una red compatible con EVM.
- Usa el ID de cadena
56para mainnet y97para testnet. - Los endpoints públicos son adecuados para desarrollo, pero las aplicaciones de producción deberían considerar infraestructura gestionada o dedicada.
- OnFinality proporciona opciones públicas, gestionadas y dedicadas para BNB Smart Chain. Consulta precios de RPC y redes compatibles para más información.
- Siempre prueba en la testnet antes de desplegar en mainnet.
Preguntas frecuentes
¿Cuál es la diferencia entre Binance Chain y BNB Smart Chain?
Binance Chain es la cadena original utilizada para trading rápido, mientras que BNB Smart Chain es una cadena compatible con EVM que soporta contratos inteligentes. La API de Binance Chain generalmente se refiere al RPC de BNB Smart Chain.
¿Puedo usar herramientas de Ethereum con BNB Smart Chain?
Sí, porque BNB Smart Chain es compatible con EVM, puedes usar ethers.js, viem, web3.js y otras bibliotecas de Ethereum.
¿Cómo obtengo BNB de prueba para la testnet?
Puedes obtener BNB de prueba de un faucet. Busca "BNB testnet faucet" o consulta la página de testnet de BNB Chain para recursos.
¿Qué es un nodo de archivo?
Un nodo de archivo almacena el estado histórico completo de la blockchain, permitiendo consultas como eth_getLogs para bloques antiguos. Los servicios gestionados a menudo ofrecen endpoints de archivo por una tarifa.
¿OnFinality soporta WebSocket en BNB Smart Chain?
Sí, OnFinality soporta WebSocket en BNB Smart Chain. Consulta la página de red para la URL de WebSocket.