Resumen
La API de BSC es la interfaz JSON-RPC para BNB Smart Chain (BSC), que permite leer datos de la cadena, enviar transacciones e interactuar con contratos inteligentes utilizando los mismos métodos que Ethereum. Esta guía explica los métodos principales, cómo conectarse con bibliotecas comunes y cómo elegir entre endpoints públicos y proveedores de RPC gestionados para cargas de trabajo de producción.
Guía rápida de decisión: ¿qué endpoint de API de BSC deberías usar?
Antes de escribir código, decide qué tipo de endpoint de API de BSC se adapta a tu carga de trabajo. La elección correcta depende del tráfico que esperas, si necesitas datos históricos y qué tan sensible es tu aplicación a los límites de tasa.
| Carga de trabajo | Tipo de endpoint recomendado | Por qué |
|---|---|---|
| Prototipado, hackathon, bajo tráfico | Endpoint RPC público | Gratis, sin registro, pero con límites de tasa e inestabilidad ocasional |
| dApp de producción, tráfico moderado | Proveedor de RPC gestionado (endpoint compartido) | Mayor fiabilidad, mejores límites de tasa, fácil escalado |
| Alto rendimiento, análisis o necesidades personalizadas | Nodo dedicado | Control total, sin vecinos ruidosos, configuración personalizada |
| Datos históricos, indexación profunda | Nodo de archivo | Acceso al estado histórico, datos de rastreo |
Para la mayoría de las aplicaciones de producción, un proveedor de RPC gestionado como OnFinality ofrece un buen equilibrio entre fiabilidad y costo. Si necesitas rendimiento predecible o configuración personalizada, considera un nodo dedicado. Consulta la página de precios de RPC para más detalles.
¿Qué es la API de BSC?
La API de BSC es la interfaz JSON-RPC para BNB Smart Chain (BSC). Permite interactuar con la blockchain: leer saldos, enviar transacciones, desplegar y llamar contratos inteligentes, y suscribirse a eventos. Debido a que BSC es compatible con EVM, la API sigue el mismo estándar JSON-RPC que Ethereum, por lo que la mayoría de las herramientas y bibliotecas de Ethereum funcionan con BSC sin configuración adicional.
Los nodos de BSC exponen un conjunto de métodos estándar, además de algunas extensiones específicas de BSC. La documentación oficial lista la API completa, pero principalmente usarás los métodos principales de Ethereum como eth_blockNumber, eth_getBalance, eth_call y eth_sendRawTransaction.
Métodos de API de BSC que usarás más
Estos son los métodos JSON-RPC más comunes para el desarrollo en BSC:
eth_blockNumber– obtener el número de bloque más recienteeth_getBalance– obtener el saldo de BNB de una direccióneth_call– ejecutar una llamada de solo lectura a un contrato inteligenteeth_sendRawTransaction– enviar una transacción firmadaeth_getTransactionReceipt– obtener el recibo de una transaccióneth_getLogs– obtener registros de eventoseth_subscribe– suscribirse a nuevos bloques, transacciones pendientes o registros (WebSocket)
BSC también tiene algunos métodos específicos de la cadena, como eth_getFinalizedBlock para finalidad rápida y eth_getBlobSidecarByTxHash para datos blob. Estos son útiles si estás construyendo infraestructura avanzada.
Conectarse a la API de BSC con curl
Puedes probar la API de BSC con una simple solicitud curl. Reemplaza YOUR_RPC_URL con la URL de tu endpoint.
curl -X POST https://YOUR_RPC_URL \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Esto devuelve el número de bloque más reciente en hexadecimal, como 0x10d4f.
Usar la API de BSC con ethers.js
Para desarrolladores de JavaScript, ethers.js es la biblioteca más popular. Así es como te conectas a BSC y lees datos:
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("https://YOUR_RPC_URL");
async function main() {
const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);
const balance = await provider.getBalance("0x...");
console.log("Balance (BNB):", ethers.formatEther(balance));
}
main();
Si usas viem, la configuración es similar:
import { createPublicClient, http } from "viem";
import { bsc } from "viem/chains";
const client = createPublicClient({
chain: bsc,
transport: http("https://YOUR_RPC_URL"),
});
const blockNumber = await client.getBlockNumber();
console.log("Latest block:", blockNumber);
API de BSC vs. APIs de datos de BSC: ¿cuál es la diferencia?
Al buscar "api bsc", también encontrarás productos como Bitquery o Moralis que ofrecen APIs GraphQL o REST para BSC. Estos no son lo mismo que la API JSON-RPC de BSC.
- API JSON-RPC de BSC: La interfaz cruda hacia la blockchain. Puedes leer el estado, enviar transacciones y consultar registros, pero tienes que hacer tu propio indexado y agregación.
- APIs de datos de BSC: Datos pre-indexados y parseados (operaciones, saldos, transferencias de tokens) entregados vía GraphQL o REST. Ideales para análisis y paneles, pero no para enviar transacciones.
Si estás construyendo una dApp que necesita enviar transacciones o leer el estado en vivo, necesitas la API JSON-RPC. Si estás construyendo un panel de análisis, una API de datos podría ahorrarte tiempo.
Elegir un proveedor de API de BSC
Cuando vayas más allá de los endpoints públicos, evaluarás proveedores de RPC. Esto es lo que debes comparar:
| Criterio | Qué verificar | Por qué importa |
|---|---|---|
| Fiabilidad | Historial de tiempo de actividad, tasas de error | El tiempo de inactividad rompe tu aplicación |
| Límites de tasa | Solicitudes por segundo, límites diarios | Si son demasiado bajos, tendrás errores bajo carga |
| Disponibilidad de datos | Datos de archivo, soporte de rastreo | Necesario para consultas históricas y depuración |
| Soporte de WebSocket | Suscripciones en tiempo real | Esencial para actualizaciones en vivo |
| Precios | Nivel gratuito, pago por uso, opciones dedicadas | Debe ajustarse a tu presupuesto y escala |
| Soporte | Documentación, comunidad, SLAs | Te ayuda a resolver problemas rápidamente |
OnFinality proporciona endpoints de BSC tanto compartidos como dedicados. Puedes ver la lista completa de redes compatibles en la página de redes.
Errores comunes al usar la API de BSC
Incluso con un buen proveedor, te encontrarás con problemas. Estos son los más comunes:
- Límite de tasa: Los endpoints públicos a menudo devuelven
429 Too Many Requests. Usa un proveedor gestionado o añade lógica de reintento. - ID de cadena incorrecto: La mainnet de BSC usa el ID de cadena
56, la testnet usa97. Usar el incorrecto causa fallos en las transacciones. - Precio del gas demasiado bajo: Los precios del gas en BSC pueden dispararse. Usa
eth_gasPriceo un oráculo de gas para establecer tarifas adecuadas. - Transacción pendiente no encontrada: Si consultas una transacción antes de que se mine, obtendrás
null. Haz polling o usa suscripciones WebSocket. - Finalidad del bloque: BSC tiene finalidad rápida, pero aún debes verificar reorganizaciones si construyes aplicaciones financieras.
Depurar llamadas a la API de BSC
Cuando algo sale mal, comienza con estos pasos:
- Verifica el endpoint: ¿Es accesible? Prueba con una solicitud curl.
- Verifica el método: ¿El nombre del método es correcto? ¿Los parámetros están en el formato correcto?
- Verifica el mensaje de error: Los errores JSON-RPC incluyen un código y un mensaje. Códigos comunes:
-32601(método no encontrado),-32000(error del servidor). - Prueba con un endpoint público: Si tu proveedor falla, prueba con un endpoint público para aislar el problema.
- Usa un explorador de bloques: Verifica que la transacción o el bloque existan.
Para depuración más avanzada, podrías necesitar métodos de rastreo, que solo están disponibles en nodos de archivo o nodos dedicados.
API de BSC y suscripciones WebSocket
Para actualizaciones en tiempo real, usa WebSocket. Aquí tienes un ejemplo con ethers.js:
const { ethers } = require("ethers");
const provider = new ethers.WebSocketProvider("wss://YOUR_WS_URL");
provider.on("block", (blockNumber) => {
console.log("New block:", blockNumber);
});
Las conexiones WebSocket consumen más recursos, así que asegúrate de que tu proveedor las soporte y que tu plan las incluya.
Conclusiones clave
- La API de BSC es una interfaz JSON-RPC, compatible con EVM y funciona con herramientas de Ethereum.
- Elige tu tipo de endpoint según la carga de trabajo: público para pruebas, gestionado para producción, dedicado para alto rendimiento.
- Compara proveedores en fiabilidad, límites de tasa, disponibilidad de datos y soporte de WebSocket.
- Ten cuidado con los límites de tasa, los desajustes de ID de cadena y los problemas de precio del gas.
- Usa WebSocket para actualizaciones en tiempo real.
Preguntas frecuentes
¿Qué es la API de BSC?
La API de BSC es la interfaz JSON-RPC para BNB Smart Chain, que permite interactuar con la blockchain programáticamente.
¿Es la API de BSC lo mismo que la API de Ethereum?
Sí, BSC es compatible con EVM, por lo que usa el mismo estándar JSON-RPC y los mismos métodos que Ethereum.
¿Cómo obtengo una clave de API de BSC?
No necesitas una clave para endpoints públicos, pero para proveedores gestionados como OnFinality, crearás una cuenta y obtendrás una clave de API.
¿Cuál es la API de testnet de BSC?
La testnet de BSC (ID de cadena 97) tiene sus propios endpoints RPC para pruebas. Puedes encontrarlos en la página de testnet de BNB.
¿Puedo usar ethers.js con BSC?
Sí, ethers.js funciona con BSC sin configuración adicional. Solo configura el proveedor con una URL RPC de BSC.
¿Cuál es la diferencia entre RPC de BSC y API de BSC?
Son lo mismo. RPC es el protocolo, API es la interfaz. Ambos se refieren al endpoint JSON-RPC.
¿Cómo elijo un proveedor de API de BSC?
Evalúa fiabilidad, límites de tasa, disponibilidad de datos, soporte de WebSocket, precios y soporte. Consulta la guía de selección de proveedores de RPC para más detalles.