Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
RPC Assistant

Punto final JSON-RPC de BSC: configuración de cadena, configuración de billetera y depuración

Resumen

El punto final JSON-RPC de BNB Smart Chain (BSC) es la URL HTTP o WebSocket a la que tu aplicación apunta para leer el estado de la cadena y enviar transacciones. Para mainnet necesitas el ID de cadena 56, la moneda nativa BNB y una URL RPC confiable; para testnet usas el ID de cadena 97 y tBNB. Esta página cubre la configuración exacta de la cadena, la configuración de billetera y código, los métodos JSON-RPC que llamarás con más frecuencia y cómo depurar los errores que aparecen primero. También explica cuándo un punto final público compartido es suficiente y cuándo un nodo dedicado de BNB Chain es la mejor opción.

Si estás conectando una billetera, un script o un servicio backend a BNB Smart Chain, lo primero que necesitas es un punto final JSON-RPC funcional más la configuración correcta de la cadena. Si aciertas en esos dos aspectos, la mayoría de los problemas de "no se conecta" desaparecen. Si te equivocas, pasarás una tarde persiguiendo errores que en realidad son solo un ID de cadena incorrecto o un punto final obsoleto.

Esta página te da primero la configuración, luego los métodos y después la ruta de depuración. Está escrita para desarrolladores que ya saben qué es JSON-RPC y quieren los detalles específicos de BSC sin volver a leer una introducción genérica.

Configuración de la cadena de un vistazo

Usa estos valores al agregar BNB Smart Chain a una billetera, una configuración de framework o un cliente backend. Los valores de mainnet y testnet son diferentes, y mezclarlos es el error de configuración más común.

ConfiguraciónBNB Smart Chain MainnetBNB Smart Chain Testnet
ID de cadena5697
Nombre de la cadenaBNB Smart Chain MainnetBNB Smart Chain Testnet
Moneda nativaBNB (18 decimales)tBNB (18 decimales)
Explorador de bloqueshttps://bscscan.comhttps://testnet.bscscan.com
URL RPChttps://bnb.api.onfinality.io/publichttps://bnb-testnet.api.onfinality.io/public
TransporteHTTP y WebSocketHTTP

Mainnet admite transportes HTTP y WebSocket en el punto final de OnFinality, lo cual es importante si dependes de suscripciones como eth_subscribe para nuevos bloques o registros pendientes. Testnet es solo HTTP, por lo que el polling es el patrón correcto allí.

Si necesitas una red diferente o quieres comparar opciones, la página de redes RPC compatibles enumera lo que está disponible, y RPC de BNB Chain tiene el detalle específico de la red.

Elige el punto final adecuado para tu carga de trabajo

Antes de copiar una URL, decide qué tipo de tráfico estás enviando. El punto final que funciona para un prototipo de fin de semana no siempre es el que quieres detrás de un servicio en producción.

  • Scripts de solo lectura y paneles. Un punto final público compartido suele ser suficiente. Estás enviando eth_call, eth_getBalance y eth_blockNumber a bajo volumen.
  • Billeteras y dApps con usuarios reales. Quieres un rendimiento predecible y una URL que no cambie bajo tus pies. Una API RPC gestionada con un nombre de host estable es la opción predeterminada más segura.
  • Indexadores, bots y backends que escanean registros. eth_getLogs sobre rangos amplios de bloques es la llamada común más pesada en BSC. Aquí es donde los puntos finales compartidos empiezan a fallar y un nodo dedicado se gana su lugar.
  • Cualquier cosa que necesite suscripciones. Si dependes de push por WebSocket en lugar de polling, confirma que tu punto final realmente admite ws antes de construir sobre él.

Una forma rápida de enmarcarlo: si tu aplicación falla cuando el punto final te limita la tasa, has superado el nivel compartido. OnFinality ofrece tanto un servicio de API RPC gestionado como nodos dedicados cuando necesitas capacidad aislada. Puedes ver cómo se asignan a costos en la página de precios de RPC.

Configura una billetera o cliente

La mayoría de las billeteras aceptan una red personalizada. Los campos se asignan directamente a la tabla anterior. En código, los mismos valores van en el constructor de tu cliente.

Para un cliente viem apuntado a BSC mainnet:

import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: http('https://bnb.api.onfinality.io/public'),
});

const block = await client.getBlockNumber();
console.log('Latest BSC block:', block);

Si prefieres JSON-RPC sin procesar, la misma llamada se ve así:

curl -s https://bnb.api.onfinality.io/public \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

Ambos devuelven la altura del último bloque como una cadena hexadecimal. Si eso funciona, tu punto final y la configuración de la cadena son correctos y puedes pasar a los métodos que tu aplicación realmente necesita.

Los métodos JSON-RPC que llamarás con más frecuencia

BSC es compatible con EVM, por lo que el conjunto de métodos es la superficie estándar de JSON-RPC de Ethereum. En la práctica, un puñado de llamadas hace la mayor parte del trabajo.

MétodoPara qué sirveA tener en cuenta
eth_blockNumberVerificación de estado y posición de sincronizaciónBarato; bueno para una primera prueba de conectividad
eth_getBalanceSaldo nativo de BNBPasa la etiqueta de bloque que quieres, no siempre latest
eth_callLeer el estado del contrato sin una transacciónNecesita to, data y etiqueta de bloque correctos
eth_getLogsExtraer eventos para una dirección o temaLos rangos amplios son la principal causa de tiempos de espera
eth_getTransactionReceiptConfirmar una transacción y leer sus registrosDevuelve null hasta que la transacción se mina
eth_sendRawTransactionDifundir una transacción firmadaNecesita una transacción firmada y con nonce correctos
eth_subscribeEnviar nuevos bloques o registros por WebSocketLos puntos finales HTTP no pueden hacer esto

Para eth_getLogs, mantén rangos de bloques modestos y pagina. Un rango de decenas de miles de bloques contra un punto final compartido a menudo fallará incluso cuando el punto final esté saludable, porque el nodo tiene que escanear mucho estado para responder.

Depurar los errores que realmente verás

La mayoría de los problemas de JSON-RPC de BSC se reducen a un pequeño conjunto de síntomas. Coincide el síntoma y luego aplica la solución.

SíntomaCausa probableSolución
chainId no coincide en la billeteraRed incorrecta seleccionadaEstablece el ID de cadena 56 (mainnet) o 97 (testnet)
eth_getLogs agota el tiempoRango de bloques demasiado amplioReduce el rango, pagina o cambia a un nodo dedicado
Recibo nullTransacción aún no minadaConsulta eth_getTransactionReceipt hasta que no sea nulo
nonce too lowNonce reutilizado u obsoletoVuelve a leer eth_getTransactionCount con pending
eth_subscribe fallaEl punto final es solo HTTPUsa un punto final compatible con WebSocket
429 o limitaciónPunto final compartido bajo cargaAgrega reintentos/retroceso o cambia a capacidad dedicada
Conexión rechazadaHost o red incorrectosVuelve a verificar la URL y la tabla de configuración de la cadena

Dos de estos merecen una mirada más cercana. Primero, los errores de nonce: cuando reenvías una transacción, lee el nonce de la cuenta con la etiqueta de bloque pending, no latest, o seguirás colisionando con tu propia transacción en vuelo. Segundo, la limitación: un 429 no es un error en tu código, es una señal de capacidad. Reintenta con retroceso exponencial para ráfagas ocasionales, pero si ocurre en tráfico normal, el nivel compartido es el nivel incorrecto para esa carga de trabajo.

Para un recorrido más profundo del comportamiento del nonce, consulta qué es un nonce en transacciones blockchain.

Una sonda de monitoreo mínima

Antes de culpar a tu aplicación, confirma que el punto final está saludable. Una sonda corta que verifica la altura del bloque y la latencia te dirá si el problema es el punto final o tu código.

async function probe(url) {
  const start = Date.now();
  const res = await fetch(url, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0', id: 1, method: 'eth_blockNumber', params: [],
    }),
  });
  const { result } = await res.json();
  const height = parseInt(result, 16);
  console.log('height', height, 'roundtrip', Date.now() - start, 'ms');
}

probe('https://bnb.api.onfinality.io/public');

Ejecuta esto en un horario y registra la altura. Una altura que deja de avanzar es una señal clara, y un tiempo de ida y vuelta que se desvía hacia arriba te dice que el punto final está bajo presión antes de que tus usuarios lo noten.

Cuándo dejar un punto final compartido

No hay un número único que diga "cambia ahora", pero las señales son consistentes. Estás listo para capacidad dedicada cuando:

  • Sufres limitación en tráfico normal, no en ráfagas.
  • eth_getLogs sobre los rangos que necesitas sigue agotando el tiempo.
  • Necesitas suscripciones WebSocket y quieres que estén aisladas de otros inquilinos.
  • Quieres un punto final privado y estable en lugar de una URL pública compartida.
  • Tus requisitos de cumplimiento o confiabilidad significan que no puedes depender de un nivel compartido de mejor esfuerzo.

Un nodo dedicado de BNB Chain te da rendimiento aislado y un punto final privado. La contrapartida es el costo y el hecho de que ahora posees más de la superficie operativa. Si prefieres no ejecutar el nodo tú mismo, una opción dedicada gestionada mantiene el aislamiento sin el mantenimiento. Compara las formas en nodos dedicados y revisa precios de RPC antes de comprometerte.

Puntos clave

  • BSC mainnet usa el ID de cadena 56 y BNB; testnet usa el ID de cadena 97 y tBNB. Mezclarlos es el error de configuración más común.
  • Mainnet admite HTTP y WebSocket; testnet es solo HTTP, por lo que las suscripciones necesitan un punto final compatible con ws.
  • eth_getLogs sobre rangos amplios es la llamada común más pesada y la principal razón por la que fallan los puntos finales compartidos.
  • Un 429 es una señal de capacidad, no un error de código. Reintenta con retroceso para ráfagas, pero cambia a capacidad dedicada si ocurre en tráfico normal.
  • Una sonda simple de altura de bloque separa los problemas del punto final de los problemas de la aplicación en segundos.

Preguntas frecuentes

¿Cuál es el ID de cadena de BSC mainnet? 56. El ID de cadena de testnet es 97. Siempre confirma a cuál está apuntando tu billetera o cliente antes de depurar cualquier otra cosa.

¿Puedo usar el mismo punto final para mainnet y testnet? No. Son redes separadas con URLs e ID de cadena separados. Usa la URL de mainnet para el ID de cadena 56 y la URL de testnet para el ID de cadena 97.

¿Por qué falla eth_getLogs en BSC? Generalmente porque el rango de bloques es demasiado amplio para que el nodo lo escanee rápidamente. Reduce el rango, pagina tus consultas o usa un nodo dedicado con más margen.

¿BSC admite suscripciones WebSocket? Mainnet sí en el punto final de OnFinality, que admite HTTP y WebSocket. Testnet es solo HTTP, así que haz polling allí en lugar de usar eth_subscribe.

¿Cómo sé si necesito un nodo dedicado? Si ves limitación en tráfico normal, tiempos de espera repetidos de eth_getLogs o necesitas capacidad WebSocket aislada, un nodo dedicado es el siguiente paso correcto. De lo contrario, un punto final compartido gestionado suele ser suficiente.

¿Dónde encuentro las URL actuales del punto final? Usa las páginas RPC de BNB Chain y RPC de BNB Chain Testnet para las URL y configuraciones actuales, y la página de redes RPC compatibles para todo lo demás.

Base de conocimiento RPC

Detalles RPC relacionados

RPC de redSORA

Blockchain SORA y Red SORA: ¿Qué deben saber los desarrolladores?

SORA es una red blockchain basada en Substrate diseñada para un sistema económico soberano, que utiliza el token XOR y una curva de vinculación de tok...

Selección de proveedor RPCPolkadot

Cómo elegir un proveedor de RPC de Polkadot para dApps de producción

Elegir el proveedor de RPC de Polkadot adecuado es fundamental para dApps de producción, parachains y servicios entre cadenas. Debe evaluar la confiab...

RPC de redPolkadot

¿Qué debo saber sobre los endpoints RPC de Polkadot?

# ¿Qué debo saber sobre los endpoints RPC de Polkadot? Los endpoints RPC de Polkadot son importantes porque las aplicaciones Web3 dependen de un acces...

Infraestructura blockchainBittensor

Minería de TAO en Bittensor en 2025: Economía de subredes, configuración de nodos y requisitos de RPC

La minería de Bittensor en 2025 ya no es una actividad de una sola red. Los mineros y validadores compiten dentro de subredes individuales, cada una c...

RPC de redSolana

solana.io: Lo que los desarrolladores realmente necesitan para conectarse a Solana

solana.io no es el endpoint RPC de Solana ni el portal para desarrolladores que necesitas. Se accede a la red Solana a través de endpoints JSON-RPC, y...

RPC de redBase

Base RPC API: Endpoint Settings, Marketplace Alternatives, and Production Setup

Base RPC is the JSON-RPC interface to the Base L2 network, used to read state, send transactions, and subscribe to events. This page covers the public...

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar