Logo
RPC Assistant

¿Qué es la API de BNB Smart Chain y cómo se usa?

Resumen

La API de BNB Smart Chain es una interfaz JSON-RPC que te permite interactuar con la red BNB Smart Chain (BSC): leer saldos, enviar transacciones y consultar bloques y registros. Como BSC es compatible con EVM, puedes usar métodos y herramientas familiares de Ethereum como ethers y viem. Esta guía cubre los endpoints esenciales, la configuración de la red y cómo elegir un proveedor RPC confiable para aplicaciones de producción.

Respuesta rápida: ¿Qué es la API de BNB Smart Chain?

La API de BNB Smart Chain es un conjunto de endpoints JSON-RPC que permiten a las aplicaciones leer y escribir datos en BNB Smart Chain (BSC). Sigue el estándar JSON-RPC de Ethereum, por lo que si has usado eth_getBalance o eth_sendRawTransaction en Ethereum, ya sabes cómo usar BSC. La API es el puente entre tu dApp y la cadena, ya sea para obtener el saldo de un token, enviar un swap o escuchar nuevos bloques.

Guía de decisión: Cómo elegir el acceso adecuado a la API de BNB Smart Chain

Antes de empezar a programar, decide cómo se conectará tu aplicación a BSC. La elección afecta la latencia, la confiabilidad y el costo. Aquí tienes un marco rápido:

  • Prototipado o hackathon: Usa un endpoint RPC público. Es gratuito y suficiente para pruebas ligeras, pero puede limitar la velocidad o volverse poco confiable bajo carga.
  • dApp de producción con tráfico moderado: Usa un proveedor RPC administrado. Obtienes endpoints estables, mayor rendimiento y soporte. OnFinality ofrece endpoints RPC de BNB Smart Chain con precios predecibles y una lista de redes compatibles.
  • Cargas de alto rendimiento o intensivas en datos: Considera un nodo dedicado. Obtienes acceso exclusivo, sin vecinos ruidosos y la capacidad de ejecutar consultas de archivo o rastreo sin afectar a otros usuarios.
  • Necesitas WebSocket para actualizaciones en tiempo real: Asegúrate de que tu proveedor admita endpoints WSS. La mayoría de los proveedores administrados lo hacen, pero los públicos a menudo no.

Configuración de red de un vistazo

Al configurar tu billetera o dApp, necesitarás estos parámetros de red de BSC:

ParámetroMainnetTestnet
Chain ID5697
MonedaBNBtBNB
URL RPChttps://bsc-dataseed.binance.org/ (público)https://data-seed-prebsc-1-s1.binance.org:8545/ (público)
Explorador de bloqueshttps://bscscan.comhttps://testnet.bscscan.com

Para producción, reemplaza la URL pública con un endpoint administrado de un proveedor como OnFinality. Puedes encontrar los endpoints oficiales de BSC en la documentación de BNB Chain.

Métodos JSON-RPC esenciales para BSC

Como BSC es compatible con EVM, los métodos principales son idénticos a los de Ethereum. Aquí están los que usarás más:

  • 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 de contrato de solo lectura
  • eth_sendRawTransaction – transmitir una transacción firmada
  • eth_getTransactionReceipt – obtener el recibo de una transacción
  • eth_getLogs – obtener registros de eventos
  • eth_estimateGas – estimar el gas para una transacción

BSC también tiene algunos métodos específicos de BEP, como eth_getFinalizedBlock para finalidad rápida (BEP-126). Consulta la lista oficial de API para la referencia completa.

Haciendo tu primera solicitud con cURL

Puedes probar cualquier endpoint RPC con un simple comando cURL. Reemplaza YOUR_RPC_URL con tu endpoint.

curl -X POST YOUR_RPC_URL \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

Respuesta esperada:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1a2b3c"
}

El resultado es un número de bloque codificado en hexadecimal. Conviértelo a decimal para obtener el número legible.

Usando la API con ethers.js o viem

Si estás construyendo una dApp en JavaScript, usa una biblioteca como ethers o viem. Aquí tienes un ejemplo con viem:

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

const client = createPublicClient({
  chain: bsc,
  transport: http('YOUR_RPC_URL'),
});

const blockNumber = await client.getBlockNumber();
console.log('Número de bloque actual:', blockNumber);

const balance = await client.getBalance({
  address: '0x...',
});
console.log('Saldo (BNB):', Number(balance) / 1e18);

Con ethers v6:

import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
const blockNumber = await provider.getBlockNumber();
console.log('Número de bloque actual:', blockNumber);

Suscripciones WebSocket para datos en tiempo real

Para actualizaciones en vivo, como nuevos bloques o transacciones pendientes, usa WebSocket. La mayoría de los proveedores administrados ofrecen endpoints WSS.

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

const client = createPublicClient({
  chain: bsc,
  transport: webSocket('wss://YOUR_WSS_URL'),
});

const unwatch = client.watchBlockNumber({
  onBlockNumber: (blockNumber) => {
    console.log('Nuevo bloque:', blockNumber);
  },
});

Errores comunes y cómo evitarlos

  • Límite de velocidad: Los endpoints públicos a menudo limitan las solicitudes. Si recibes errores 429, cambia a un proveedor administrado o implementa lógica de reintento.
  • Desajuste de Chain ID: Asegúrate de que tu aplicación use el Chain ID 56 para mainnet y 97 para testnet. Un Chain ID incorrecto causará fallos en las transacciones.
  • Estimación de gas: Los precios del gas en BSC pueden dispararse durante la congestión. Usa eth_estimateGas y establece un límite de gas razonable para evitar transacciones fallidas.
  • Finalidad: BSC tiene finalidad rápida (BEP-126), pero no todos los nodos admiten los nuevos métodos de finalidad. Si dependes de la finalidad, verifica el soporte de tu proveedor.
  • Desconexiones de WebSocket: Implementa lógica de reconexión para manejar conexiones caídas.

Lista de verificación para producción

Antes de lanzar, verifica estos puntos:

  • Usa un proveedor RPC administrado con un SLA confiable, no un endpoint público.
  • Configura monitoreo de errores RPC y latencia.
  • Implementa un respaldo a un proveedor secundario en caso de interrupción.
  • Usa WebSocket para funciones en tiempo real, pero con manejo de reconexión.
  • Prueba primero en BNB testnet.
  • Revisa los precios de RPC para elegir el plan adecuado para tu tráfico.

Conclusiones clave

  • La API de BNB Smart Chain es compatible con EVM, por lo que puedes reutilizar las herramientas de Ethereum.
  • Elige tu método de acceso según tu carga de trabajo: público para pruebas, administrado para producción, dedicado para alto rendimiento.
  • Usa el Chain ID correcto y los endpoints de testnet durante el desarrollo.
  • Monitorea tu uso de RPC y planifica los límites de velocidad.

Preguntas frecuentes

¿Cuál es la diferencia entre BNB Smart Chain y BNB Beacon Chain?

BNB Smart Chain es una blockchain compatible con EVM para contratos inteligentes y dApps, mientras que BNB Beacon Chain maneja el staking y la gobernanza. La API para BSC es la que usarás para la mayoría del desarrollo.

¿Puedo usar bibliotecas de Ethereum con BSC?

Sí, porque BSC es compatible con EVM, puedes usar ethers, viem, web3.js y otras bibliotecas de Ethereum con la API de BSC.

¿Qué es la API de testnet de BSC?

Es la misma API JSON-RPC pero en la red de testnet (Chain ID 97). Úsala para probar tu dApp sin fondos reales. OnFinality proporciona endpoints RPC de BNB testnet.

¿Cómo obtengo una clave de API de BNB Smart Chain?

No necesitas una clave para endpoints públicos, pero para producción querrás un proveedor administrado. OnFinality ofrece claves de API a través de su servicio de API.

¿Cuál es el costo de usar la API de BNB Smart Chain?

Los endpoints públicos son gratuitos pero poco confiables. Los proveedores administrados cobran según el uso. Consulta los precios de RPC para más detalles.

¿Cómo elijo entre un nodo compartido y uno dedicado?

Los nodos compartidos son rentables para la mayoría de las aplicaciones. Los nodos dedicados son mejores para alto tráfico, cargas intensivas en datos o cuando necesitas datos de archivo. Consulta las opciones de nodo dedicado.

Base de conocimiento RPC

Detalles RPC relacionados

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