Resumen
BNB Smart Chain Testnet (ID de cadena 97) utiliza tBNB como su moneda nativa y es el entorno estándar para probar contratos, billeteras e indexadores de BSC antes de la mainnet. Necesitas la URL RPC correcta, el ID de cadena, el símbolo y la URL del explorador para agregarla a una billetera o apuntar un framework de desarrollo hacia ella.
Esta referencia cubre la configuración exacta de la cadena, un endpoint público que puedes usar para comenzar, ejemplos de configuración de billetera y código, notas sobre faucets y depuración, y el punto en el que un endpoint público compartido deja de ser la opción correcta para tu carga de trabajo.
Configuración de la cadena de un vistazo
Si solo necesitas los valores para pegarlos en una billetera o un archivo de configuración, aquí están. BNB Smart Chain Testnet es el entorno de prueba de BSC que replica el comportamiento de la mainnet lo suficientemente bien como para validar contratos, billeteras, indexadores y bots antes de implementar en producción.
| Configuración | Valor |
|---|---|
| Nombre de la red | BNB Smart Chain Testnet |
| ID de cadena | 97 |
| Moneda nativa | tBNB |
| Decimales | 18 |
| Explorador de bloques | https://testnet.bscscan.com |
| Endpoint RPC público | https://bnb-testnet.api.onfinality.io/public |
| Transporte | HTTP JSON-RPC |
Una verificación rápida antes de continuar: la mainnet de BSC usa el ID de cadena 56 y el símbolo BNB, mientras que la testnet usa el ID de cadena 97 y tBNB. Confundir estos dos es la causa más común de errores de "red incorrecta", saldos vacíos y transacciones que parecen tener éxito pero nunca aparecen donde esperas.
Cuándo un endpoint de testnet público es suficiente y cuándo no
El endpoint público anterior es adecuado para aprender, scripts rápidos y ejecuciones de CI de bajo volumen. No es la respuesta correcta a largo plazo para todas las cargas de trabajo. Usa esto para decidir qué hacer a continuación.
- Desarrollo local y scripts únicos: un endpoint público suele ser suficiente. Envías un puñado de solicitudes por minuto y no te preocupa el rendimiento compartido.
- Pipelines de CI que se ejecutan en cada pull request: los endpoints compartidos pueden tener límites de velocidad o ser lentos bajo carga, lo que genera pruebas inestables. Considera un endpoint dedicado para que las ejecuciones de prueba estén aisladas de otro tráfico.
- Indexadores, subgrafos y trabajos de relleno: estos emiten grandes rangos de
eth_getLogsy consultas de estilo archivo. Los endpoints públicos a menudo limitan el tamaño del rango o el historial de bloques. Un nodo dedicado con acceso a archivo es la opción más segura. - Bots de trading y pruebas de carga: si estás simulando tráfico de producción contra la testnet, quieres un rendimiento predecible y tu propio presupuesto de conexión. Los endpoints públicos compartidos no están diseñados para eso.
- QA de billeteras y dApps: un endpoint público está bien para pruebas manuales, pero si tu equipo de QA ejecuta sesiones en paralelo, un endpoint dedicado evita que un tester consuma los recursos de otro.
Si alguno de los últimos cuatro aplica, mira nodos dedicados y precios de RPC antes de construir sobre un endpoint compartido. Para una comparación más amplia de tipos de endpoints, consulta cómo elegir un proveedor de RPC.
Agregar BNB Smart Chain Testnet a una billetera
La mayoría de las billeteras EVM aceptan los mismos campos. En MetaMask, abre el selector de red, elige "Agregar red" o "Agregar una red manualmente" e ingresa los valores de la tabla anterior. La billetera llamará a eth_chainId contra la URL RPC para confirmar que devuelve 0x61 (97 en decimal) antes de guardar.
Si estás configurando una billetera programáticamente, el payload estándar de wallet_addEthereumChain se ve así:
{
"method": "wallet_addEthereumChain",
"params": [
{
"chainId": "0x61",
"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"]
}
]
}
Ten en cuenta que chainId está codificado en hexadecimal aquí (0x61), mientras que la mayoría de los archivos de configuración y paneles esperan el decimal 97. Ambos se refieren a la misma red; la discrepancia solo importa cuando una herramienta espera silenciosamente un formato.
Conectar el endpoint a tu código
Para proyectos de JavaScript y TypeScript, apunta tu cliente al endpoint de testnet y pasa el ID de cadena 97. Con viem:
import { createPublicClient, http } from 'viem'
import { bscTestnet } from 'viem/chains'
const client = createPublicClient({
chain: bscTestnet,
transport: http('https://bnb-testnet.api.onfinality.io/public')
})
const blockNumber = await client.getBlockNumber()
console.log('BSC testnet head:', blockNumber)
Con ethers v6:
import { JsonRpcProvider } from 'ethers'
const provider = new JsonRpcProvider(
'https://bnb-testnet.api.onfinality.io/public',
{ chainId: 97, name: 'bnb-testnet' }
)
const network = await provider.getNetwork()
console.log('chainId:', network.chainId.toString())
Para una verificación sin ninguna biblioteca, una sola solicitud curl es suficiente para confirmar que el endpoint responde y está en la cadena correcta:
curl -s https://bnb-testnet.api.onfinality.io/public \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
La respuesta debería ser {"jsonrpc":"2.0","id":1,"result":"0x61"}. Si obtienes un ID de cadena diferente, estás apuntando a la red incorrecta. Si obtienes un error de transporte, el endpoint no es accesible desde tu entorno — verifica reglas de firewall, VPN y HTTPS saliente antes de depurar el código de tu contrato.
Obtener tBNB y probar flujos reales
El BNB de testnet (tBNB) no tiene valor monetario y se distribuye a través de faucets. Las políticas de los faucets cambian, así que trata cualquier faucet específico como un punto de partida en lugar de una dependencia permanente: busca el faucet actual de la testnet de BSC, conecta una billetera y solicita una pequeña cantidad. Algunos faucets requieren un saldo mínimo en la mainnet o un inicio de sesión social para reducir el abuso.
Una vez que tengas tBNB, los flujos de prueba útiles son:
- Implementa un contrato y léelo a través del mismo endpoint RPC que usarás en producción.
- Envía una transferencia y observa cómo se confirma en testnet.bscscan.com.
- Activa las rutas con muchos eventos en tu aplicación y confirma que tu indexador o listener las detecta.
- Ejecuta tus rutas de error — reversiones, out-of-gas, conflictos de nonce — contra la testnet antes de que ocurran en la mainnet.
Si tu aplicación depende de suscripciones WebSocket, confirma si tu endpoint las admite. El endpoint HTTP público anterior es HTTP JSON-RPC; para cargas de trabajo de estilo suscripción, consulta la página de la red BNB Chain Testnet y la página de la mainnet de BNB Chain para obtener detalles actuales del transporte, y considera un nodo dedicado si necesitas conexiones WebSocket persistentes.
Depurar los errores que realmente encontrarás
| Síntoma | Causa probable | Qué verificar |
|---|---|---|
| "Red incorrecta" en la billetera | Discrepancia en el ID de cadena | La billetera está en 56 (mainnet) u otra cadena; cambia a 97 |
| Saldo cero después del faucet | Dirección incorrecta o red incorrecta | Confirma la dirección en testnet.bscscan.com, no en bscscan.com |
eth_getLogs devuelve un error sobre el rango | Rango demasiado grande para el endpoint | Reduce el rango de bloques o cambia a un nodo dedicado/archivo |
| Transacción atascada como pendiente | Precio de gas demasiado bajo para las condiciones actuales de la testnet | Vuelve a estimar el gas; la congestión de la testnet varía |
nonce too low o nonce is already consumed | Seguimiento local de nonce desincronizado | Restablece el nonce de la cuenta en tu billetera o cliente |
| Las solicitudes expiran bajo carga | Limitación del endpoint compartido | Mueve cargas de trabajo pesadas o paralelas a un endpoint dedicado |
| La llamada al contrato se revierte solo en la testnet | El estado de la testnet difiere de la mainnet | Verifica los argumentos del constructor, las direcciones de oráculos y cualquier dependencia exclusiva de la mainnet |
Un hábito útil: cuando algo falla, primero ejecuta eth_chainId y eth_blockNumber contra tu endpoint. Eso te dice si el problema es de conectividad/selección de red o de la lógica de tu aplicación, y toma segundos.
Pasar de testnet a mainnet sin sorpresas
La testnet y la mainnet comparten la misma semántica EVM, pero no el mismo estado, direcciones o economía. Antes de cambiar, revisa esta lista:
- Reemplaza el ID de cadena 97 por 56 y tBNB por BNB en todas partes de la configuración.
- Cambia las direcciones de contratos de testnet por implementaciones en mainnet; no asumas que existen las mismas direcciones.
- Vuelve a verificar las suposiciones de gas — los mercados de gas de la mainnet se comportan de manera diferente a los de la testnet.
- Confirma tu endpoint RPC y transporte para la mainnet; consulta la página de la red BNB Chain.
- Vuelve a ejecutar tu monitoreo y alertas contra el endpoint de mainnet antes de que llegue tráfico real.
Si quieres el mismo proveedor y herramientas en ambos entornos, OnFinality ofrece endpoints de testnet y mainnet de BNB Chain a través del mismo servicio de API RPC, para que puedas mantener tu código de integración idéntico y solo cambiar la URL y el ID de cadena. Una lista completa de entornos está en la página de redes RPC compatibles.
Puntos clave
- BNB Smart Chain Testnet usa el ID de cadena 97, el símbolo tBNB y el explorador testnet.bscscan.com.
- El endpoint público
https://bnb-testnet.api.onfinality.io/publices suficiente para aprender y scripts ligeros, pero los endpoints compartidos no están hechos para cargas de trabajo pesadas o paralelas. - Siempre verifica el ID de cadena con
eth_chainIdantes de depurar el código de la aplicación. - La disponibilidad de los faucets cambia; trata cualquier faucet como un punto de partida y confirma los saldos en el explorador de testnet.
- Para indexadores, bots, CI y pruebas de carga, evalúa nodos dedicados y precios de RPC en lugar de forzar un endpoint público.
- Mantén las configuraciones de testnet y mainnet separadas, y vuelve a verificar direcciones, gas y endpoints cuando promociones a mainnet.
Preguntas frecuentes
¿Cuál es el ID de cadena de BNB Smart Chain Testnet?
BNB Smart Chain Testnet usa el ID de cadena 97 (hexadecimal 0x61). La mainnet de BSC usa el ID de cadena 56. Usar el incorrecto es la causa más común de confusión por "red incorrecta" y saldo vacío.
¿Cuál es la URL RPC de BNB Smart Chain Testnet?
Un endpoint HTTP JSON-RPC público es https://bnb-testnet.api.onfinality.io/public. También puedes ejecutar tu propio nodo o usar un endpoint dedicado si necesitas rendimiento aislado o acceso a archivo.
¿Cuál es el token nativo en la testnet de BSC?
La moneda nativa es tBNB, con 18 decimales. No tiene valor monetario y se obtiene de faucets de testnet.
¿El endpoint público admite suscripciones WebSocket?
El endpoint público que se muestra aquí es HTTP JSON-RPC. Si tu aplicación depende de suscripciones WebSocket, consulta la página de la red BNB Chain Testnet para conocer el soporte de transporte actual y considera un nodo dedicado para conexiones persistentes.
¿Por qué falla eth_getLogs en la testnet?
Los rangos de bloques grandes a menudo son rechazados por endpoints compartidos. Reduce el rango, pagina tus consultas o cambia a un nodo dedicado o de archivo que pueda manejar rangos más amplios.
¿Puedo usar el mismo código para testnet y mainnet?
Sí, si mantienes el ID de cadena, la URL RPC y las direcciones de contratos en la configuración. El comportamiento de la EVM es el mismo; el estado, las direcciones y la economía no lo son. OnFinality proporciona endpoints tanto para BNB Chain Testnet como para BNB Chain para que el patrón de integración se mantenga consistente.