Resumen
La API de BSC (BNB Smart Chain API) es un conjunto de endpoints JSON-RPC que permiten a los desarrolladores interactuar con la red BSC. Esta referencia cubre tipos de endpoints, métodos comunes, pasos de configuración y consejos para la resolución de problemas en cargas de trabajo de producción.
Lista de Verificación para la Decisión de la API de BSC
Antes de integrar la API de BSC, considere estos puntos clave:
- Tipo de endpoint: ¿RPC público, compartido o dedicado? Los endpoints públicos tienen límites de tasa; los nodos dedicados ofrecen rendimiento consistente.
- Nodo de archivo vs. completo: Los nodos de archivo proporcionan datos de estado histórico; los nodos completos solo los recientes. Elija según sus necesidades de datos.
- Soporte de WebSocket: Para suscripciones en tiempo real (ej., transacciones pendientes, logs), asegúrese de que su proveedor soporte WSS.
- Límites de tasa: Verifique las solicitudes permitidas por segundo (RPS) y la cuota mensual. Las aplicaciones de producción necesitan margen.
- Latencia geográfica: Seleccione endpoints cercanos a su base de usuarios o use un balanceador de carga global.
- APIs de depuración y trazado: Requeridas para simulación de transacciones y monitoreo avanzado; no habilitadas en todos los proveedores.
- Modelo de precios: Pago por uso vs. tarifa plana. Estime su volumen de llamadas antes de comprometerse.
Consulte nuestros precios de RPC y redes soportadas para más detalles.
Introducción Rápida a la API de BSC
La API de BSC se refiere a la interfaz JSON-RPC expuesta por los nodos de BNB Smart Chain (BSC). Debido a que BSC es compatible con EVM, la API es casi idéntica al JSON-RPC de Ethereum – métodos como eth_blockNumber, eth_getBalance y eth_sendRawTransaction funcionan de la misma manera. Esto significa que las herramientas existentes de Ethereum (Hardhat, Foundry, viem, web3.js) pueden apuntar a BSC con cambios mínimos.
BSC agrega algunos métodos específicos de BEP para su mecanismo de finalidad y soporte de blobs. Comprender estos ayuda a construir dapps más confiables.
Descripción General de Endpoints de la API de BSC
Los endpoints de BSC vienen en tres tipos principales:
- RPC público: Gratuito, pero severamente limitado (ej., 5–10 req/s). Úselo solo para pruebas.
- RPC compartido/de servicio: Proporcionado por plataformas de infraestructura como OnFinality. Límites más altos, datos de archivo, a menudo con WebSocket y APIs de trazado.
- Nodo dedicado: Una instancia independiente con recursos garantizados, control total y sin vecinos ruidosos.
Para producción, se recomienda un RPC de servicio o un nodo dedicado. Puede encontrar endpoints de BSC en nuestra página de redes.
Métodos JSON-RPC de BSC
Aquí están los métodos más comúnmente usados agrupados por categoría:
| Categoría | Métodos Clave | Caso de Uso |
|---|---|---|
| Información de la cadena | eth_chainId, eth_blockNumber, net_version | Identificar la red y el bloque actual |
| Cuenta | eth_getBalance, eth_getTransactionCount | Consultar el estado de la cuenta y el nonce |
| Bloque/Transacción | eth_getBlockByNumber, eth_getTransactionReceipt, eth_getLogs | Recuperar datos en cadena |
| Ejecución | eth_call, eth_estimateGas, eth_sendRawTransaction | Simular y enviar transacciones |
| Suscripción de eventos | eth_subscribe, eth_unsubscribe (WebSocket) | Transmisión de eventos en tiempo real |
| Depuración/Trazado | debug_traceTransaction, trace_block | Introspección de transacciones |
| Específicos de BSC | eth_getFinalizedBlock, eth_getBlobSidecarByTxHash | Consultas de finalidad y datos de blob |
La mayoría de las bibliotecas EVM abstraen estos métodos. Raramente los llama directamente; en su lugar, use la API de la biblioteca.
Conexión a la API de BSC
Aquí se muestra cómo conectarse a la red principal de BSC usando curl y viem (JavaScript):
Usando curl
curl -X POST https://rpc.onfinality.io/bsc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1
}'
Usando viem (JavaScript)
import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';
const client = createPublicClient({
chain: bsc,
transport: http('https://rpc.onfinality.io/bsc')
});
async function main() {
const blockNumber = await client.getBlockNumber();
console.log('Current BSC block:', blockNumber);
}
main();
Suscripción WebSocket
import { createPublicClient, webSocket } from 'viem';
import { bsc } from 'viem/chains';
const client = createPublicClient({
chain: bsc,
transport: webSocket('wss://rpc.onfinality.io/bsc/ws')
});
const unwatch = await client.watchBlockNumber({
onBlockNumber: (blockNumber) => console.log('New block:', blockNumber),
});
Errores Comunes y Solución de Problemas
- Límite de tasa: Los endpoints públicos a menudo devuelven
429 Too Many Requests. Use un servicio con límites más altos o nodos dedicados. - Confirmación de finalidad: BSC tiene finalidad probabilística (~15 bloques) más finalidad económica (BEP-126). Para transacciones irreversibles, espere
eth_getFinalizedBlocko al menos 15 confirmaciones. - Faltan datos de archivo: Si necesita estados pasados (ej., saldos de tokens históricos), asegúrese de que su endpoint tenga datos de archivo habilitados.
- Caídas de WebSocket: Las conexiones inestables pueden causar pérdida de suscripciones. Implemente lógica de reconexión con retroceso exponencial.
- Fallos en la estimación de gas: Si
eth_estimateGasrevierte, verifique el saldo del remitente y la lógica del contrato. Useeth_callconstateOverridepara depuración.
Decidir entre API de BSC Compartida vs. Dedicada
| Criterio | Qué verificar | Por qué importa |
|---|---|---|
| Rendimiento | Límite de solicitudes por segundo | Afecta cuántos usuarios/contratos puede atender simultáneamente |
| Retención de datos | Archivo vs. podado | Determina si puede consultar el estado histórico |
| Superficie de API | Depuración/trazado, WebSocket, eth_subscribe | Necesario para flujos de trabajo avanzados (simulación, datos en tiempo real) |
| Latencia | Ubicaciones geográficas de los endpoints | Impacta la experiencia del usuario, especialmente en dapps sensibles al tiempo |
| SLA de tiempo de actividad | Garantía del proveedor | Alta disponibilidad reduce el riesgo de inactividad para aplicaciones de producción |
| Precios | Pago por uso vs. tarifa plana mensual | Alinee con su presupuesto y patrón de escalado |
Para cargas de trabajo pequeñas a medianas, un servicio RPC compartido es rentable. Los proyectos de alto volumen o sensibles a la latencia se benefician de nodos dedicados.
Conclusiones Clave
- La API de BSC es compatible con EVM; la mayoría de las herramientas de Ethereum funcionan sin cambios en la cadena ID 56.
- Elija endpoints según la carga de trabajo: público para pruebas, RPC de servicio para producción, dedicado para alto rendimiento.
- Métodos específicos de BSC como
eth_getFinalizedBlockayudan a confirmar la finalidad más rápido. - Siempre verifique los límites de tasa, el soporte de archivo y la disponibilidad de WebSocket antes de construir.
- OnFinality proporciona endpoints RPC de red principal de BSC y testnet con opciones compartidas y dedicadas.
Preguntas frecuentes
¿Cuál es la diferencia entre la API de BSC y la API de Ethereum?
Son casi idénticas. BSC agrega algunos métodos personalizados para su finalidad y características de blobs, pero todos los métodos estándar eth_* funcionan.
¿Necesito una clave API para los endpoints de BSC?
Los endpoints públicos pueden no requerir clave, pero están limitados en tasa. Para producción, necesitará una clave API de un proveedor como OnFinality para desbloquear límites más altos y recursos dedicados.
¿Cuántas confirmaciones debo esperar antes de considerar una transacción como final?
La finalidad probabilística de BSC sugiere 15 bloques (~30 segundos). Para finalidad económica (BEP-126), puede consultar eth_getFinalizedBlock que confirma en 2 bloques (~3.75 segundos).
¿Puedo usar la API de BSC para datos en tiempo real?
Sí, a través de suscripciones WebSocket (eth_subscribe). Asegúrese de que su proveedor soporte WSS y tenga un rendimiento adecuado.
¿Qué pasa si mi proveedor no soporta datos de archivo?
Puede cambiar a un proveedor con soporte de archivo o ejecutar su propio nodo de archivo. OnFinality ofrece endpoints de archivo para BSC.
¿Hay una API de testnet?
Sí, la testnet de BSC (Chapel) está disponible. Consulte nuestra [página de red de testnet](/networks/bnb-testnet) para endpoints.