Resumen
Agregar BNB Smart Chain a MetaMask requiere un formulario de red: chain ID 56, la URL del RPC de BNB Chain que desees usar, BNB como símbolo de moneda y https://bscscan.com como explorador. La parte que realmente afecta a tu aplicación es la URL del RPC que pegas, porque un endpoint público y un endpoint gestionado o dedicado se comportan de manera muy diferente bajo carga.
Esta página cubre la configuración exacta de la cadena para la mainnet y testnet de BNB Smart Chain, cómo agregarlas en MetaMask, cómo verificar la conexión con curl y ethers, y cuándo un endpoint público compartido es suficiente frente a cuándo deberías pasar a una infraestructura gestionada o dedicada de BNB Chain.
MetaMask no viene con BNB Smart Chain preconfigurada, por lo que lo primero que la mayoría de la gente necesita es el formulario de red: chain ID, URL de RPC, símbolo y explorador. Ese formulario es fácil de completar, pero la URL de RPC que elijas es la parte que decide si tu billetera o aplicación se mantiene receptiva cuando el tráfico aumenta. Esta página te proporciona la configuración exacta de BNB Smart Chain, explica cómo agregarla en MetaMask y luego explica cómo verificar que el endpoint que elegiste realmente está haciendo su trabajo.
¿Qué endpoint de BNB Chain deberías poner en MetaMask?
Para una billetera que usas manualmente, un endpoint público suele ser suficiente. Para cualquier cosa automatizada, una dapp, un bot o un equipo que comparte una URL de RPC, la elección importa más. Usa esto como punto de partida:
| Qué estás haciendo | Tipo de endpoint que encaja | Por qué |
|---|---|---|
| Agregar BNB Chain a una billetera MetaMask personal | Endpoint público | Bajo volumen de solicitudes, lecturas ocasionales, sin clave de API que gestionar |
| Probar una dapp en BNB Chain Testnet | Endpoint público de testnet | Gratuito, rápido de configurar, fácil de restablecer |
| Lanzar una dapp a usuarios reales | API de RPC gestionada | Límites de velocidad más altos, monitoreo y una vía de soporte cuando algo falla |
Ejecutar indexadores, bots o consultas pesadas de eth_getLogs | Nodo dedicado de BNB Chain | Capacidad predecible, sin efectos de vecinos ruidosos, acceso a archivo si necesitas historial |
OnFinality proporciona un endpoint público de BNB Smart Chain que puedes pegar directamente en MetaMask, además de opciones de API de RPC gestionada y nodos dedicados cuando un endpoint compartido ya no es suficiente. Puedes ver los detalles de la red en la página de RPC de BNB Chain y comparar planes en Precios de RPC.
Si no estás seguro de qué nivel necesitas, la versión corta es: comienza con público, pasa a gestionado cuando tengas usuarios reales, pasa a dedicado cuando tu carga de trabajo sea continua o intensiva en registros.
Configuración de red de BNB Smart Chain para MetaMask
Estos son los valores que MetaMask solicita cuando agregas una red personalizada. La mainnet y la testnet difieren solo en chain ID, URL de RPC, símbolo y explorador.
| Campo | BNB Smart Chain mainnet | BNB Smart Chain testnet |
|---|---|---|
| Nombre de la red | BNB Smart Chain | BNB Smart Chain Testnet |
| URL de RPC | https://bnb.api.onfinality.io/public | https://bnb-testnet.api.onfinality.io/public |
| Chain ID | 56 | 97 |
| Símbolo de moneda | BNB | tBNB |
| Explorador de bloques | https://bscscan.com | https://testnet.bscscan.com |
Algunas notas que ahorran tiempo más adelante:
- Chain ID 56 es mainnet. Si una dapp dice que no puede encontrar tu red, el chain ID es lo primero que debes verificar.
- El campo del símbolo de moneda es cosmético en MetaMask, pero mantenlo como
BNBpara que los saldos se lean correctamente. - La testnet usa
tBNB, que obtienes de un faucet. El BNB de testnet no tiene valor. - Si pegas una URL de RPC con un espacio al final, MetaMask la rechazará. Copia limpiamente.
Agregar BNB Chain a MetaMask paso a paso
- Abre MetaMask y haz clic en el selector de red en la esquina superior izquierda de la billetera.
- Elige Agregar red y luego Agregar una red manualmente.
- Completa los campos de la tabla anterior. Para mainnet, usa chain ID
56y la URL de RPC de mainnet. - Guarda. MetaMask cambia a la nueva red y muestra tu saldo de BNB.
- Si el saldo parece incorrecto, cambia a otra red y vuelve, lo que fuerza una actualización.
También puedes agregar la red programáticamente desde una dapp. Este es el mismo flujo que MetaMask usa internamente, y es útil cuando quieres incorporar usuarios sin pedirles que escriban la configuración:
await window.ethereum.request({
method: "wallet_addEthereumChain",
params: [{
chainId: "0x38", // 56 en hexadecimal
chainName: "BNB Smart Chain",
nativeCurrency: { name: "BNB", symbol: "BNB", decimals: 18 },
rpcUrls: ["https://bnb.api.onfinality.io/public"],
blockExplorerUrls: ["https://bscscan.com"]
}]
});
Para testnet, cambia a chainId: "0x61" (97), la URL de RPC de testnet, tBNB y el explorador de testnet. Mantén los chain IDs hexadecimal y decimal consistentes, porque MetaMask espera hexadecimal en esta llamada y decimal en el formulario manual.
Verificar el endpoint antes de confiar en él
Antes de culpar a MetaMask por un saldo atascado o una transacción fallida, verifica el endpoint directamente. Una llamada JSON-RPC rápida te dice si el nodo está respondiendo y si está en la cadena que esperas:
curl -s https://bnb.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
Deberías recibir "0x38", que es 56 en hexadecimal. Si obtienes un valor diferente, estás apuntando a la red incorrecta. Una segunda llamada confirma que el nodo está sincronizado:
curl -s https://bnb.api.onfinality.io/public \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
Compara ese número de bloque con un explorador público. Si el nodo está muy atrasado, las transacciones pueden aparecer como pendientes aunque ya se hayan confirmado.
Desde una aplicación JavaScript, las mismas comprobaciones se ven así con ethers:
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider("https://bnb.api.onfinality.io/public");
const network = await provider.getNetwork();
console.log(network.chainId); // 56n
console.log(await provider.getBlockNumber());
Si chainId no es 56n, tu aplicación está hablando con la cadena incorrecta y MetaMask mostrará saldos confusos como resultado.
Cuándo un RPC público de BNB deja de ser suficiente
Un endpoint público es compartido. Eso está bien para una billetera, pero se manifiesta como problema de algunas formas predecibles:
- Limitación de velocidad en ráfagas. Una dapp que dispara muchas solicitudes
eth_callpor usuario puede alcanzar límites compartidos durante actividad pico. - Registros lentos o faltantes.
eth_getLogssobre rangos de bloques amplios es pesado. Los endpoints compartidos a menudo limitan el rango o expiran. - Sin historial de archivo. Si necesitas saldos o estado de hace mucho tiempo, necesitas un nodo con capacidad de archivo.
- Sin visibilidad. Con un endpoint público no puedes ver tasas de error, latencia o qué método está fallando.
Cuando te encuentras con esos problemas, la solución no es una URL pública diferente. Es una API de RPC gestionada con límites más altos y monitoreo, o un nodo dedicado de BNB Chain para cargas de trabajo continuas. OnFinality ofrece ambos, y la página de red de BNB Chain enumera lo que está disponible para la cadena. Si quieres ayuda para emparejar una carga de trabajo con un nivel, la guía de selección de proveedor repasa los criterios.
Depurar problemas comunes de MetaMask y RPC de BNB
La mayoría de los problemas se deben a un pequeño conjunto de causas. Relaciona el síntoma con la solución probable:
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| MetaMask dice que la red no está disponible | Error tipográfico en la URL de RPC o endpoint caído | Vuelve a pegar la URL y pruébala con curl |
| El saldo muestra cero en BNB Chain | Chain ID incorrecto o red incorrecta seleccionada | Confirma el chain ID 56 y que MetaMask esté en BNB Smart Chain |
| Transacciones atascadas como pendientes | Nodo atrasado o precio de gas demasiado bajo | Verifica eth_blockNumber con un explorador y luego revisa el gas |
eth_getLogs devuelve un error | Rango de bloques demasiado amplio para el endpoint | Reduce el rango o pasa a un endpoint gestionado/dedicado |
| La dapp no puede cambiar de red | wallet_addEthereumChain rechazado o chain ID no coincide | Verifica el chain ID hexadecimal 0x38 y que el usuario aprobó la solicitud |
| Funciona en la billetera, falla en la aplicación | Diferentes URL de RPC en cada una | Apunta la aplicación y la billetera al mismo endpoint |
Dos hábitos previenen la mayoría de estos problemas. Primero, mantén la URL de RPC en un solo lugar en tu base de código para que la billetera y la aplicación no se desvíen. Segundo, registra el chain ID que ve tu aplicación al inicio, para que un error de red incorrecta sea obvio de inmediato.
BNB Chain testnet en MetaMask
La testnet es donde deberías probar los cambios de red primero. Usa chain ID 97, la URL de RPC de testnet de la tabla, el símbolo tBNB y el explorador de testnet. Obtén BNB de testnet de un faucet, luego ejecuta las mismas comprobaciones con curl contra el endpoint de testnet para confirmar que estás en la cadena 0x61.
Un error común es implementar en testnet pero dejar la URL de RPC de mainnet en el frontend. El contrato existe en una cadena y no en la otra, por lo que las llamadas fallan de una manera que parece un error del contrato. Verifica el chain ID antes de depurar el contrato. La página de BNB Chain Testnet tiene los detalles de la red si los necesitas.
Puntos clave
- BNB Smart Chain mainnet usa chain ID 56, símbolo BNB y explorador bscscan.com.
- BNB Smart Chain testnet usa chain ID 97, símbolo tBNB y el explorador de testnet.
- La URL de RPC es la configuración que afecta la confiabilidad. Los endpoints públicos son adecuados para billeteras; los endpoints gestionados y dedicados son adecuados para aplicaciones y cargas de trabajo pesadas.
- Verifica cualquier endpoint con
eth_chainIdyeth_blockNumberantes de depurar tu propio código. - Mantén una sola URL de RPC en tu base de código para que la billetera y la aplicación no se desvíen a redes diferentes.
- Pasa a RPC gestionado cuando tengas usuarios reales, y a un nodo dedicado cuando tu carga de trabajo sea continua o intensiva en registros.
Preguntas frecuentes
¿Cuál es la URL de RPC de BNB Chain para MetaMask?
Para mainnet puedes usar https://bnb.api.onfinality.io/public con chain ID 56. Para testnet, usa https://bnb-testnet.api.onfinality.io/public con chain ID 97. Cualquier URL de RPC válida de BNB Smart Chain funciona en el formulario, pero el endpoint que elijas afecta la confiabilidad bajo carga.
¿Por qué MetaMask no muestra BNB Chain por defecto?
MetaMask viene con Ethereum y algunas testnets. Otras cadenas EVM, incluida BNB Smart Chain, se agregan como redes personalizadas usando el chain ID, la URL de RPC, el símbolo y el explorador.
¿BNB Smart Chain es lo mismo que BSC?
Sí. BSC, BNB Smart Chain y BNB Chain se usan indistintamente para la misma red EVM con chain ID 56. El token nativo es BNB.
¿Puedo usar un endpoint RPC público en producción?
Puedes, pero los endpoints compartidos tienen límites que se manifiestan en ráfagas, consultas de registros amplias y solicitudes de archivo. Para aplicaciones en producción, una API de RPC gestionada o un nodo dedicado te brinda una capacidad más predecible y una vía de soporte.
¿Cómo verifico en qué cadena está mi RPC?
Llama a eth_chainId. BNB Smart Chain mainnet devuelve 0x38 (56) y testnet devuelve 0x61 (97). Si obtienes algo más, el endpoint apunta a una red diferente.
¿Necesito un nodo de archivo para BNB Chain?
Solo si consultas estado histórico o rangos amplios de registros. Los nodos estándar sirven datos recientes. Si tu aplicación lee saldos antiguos o rellena eventos, necesitas acceso a archivo, que está disponible en nodos dedicados de BNB Chain.
Próximos pasos
Si estás configurando una billetera, la configuración anterior es todo lo que necesitas. Si estás construyendo sobre BNB Chain, decide tu nivel de endpoint desde el principio: comienza con el endpoint público en la página de red de BNB Chain, luego pasa a una API de RPC gestionada o a un nodo dedicado a medida que crece tu volumen de solicitudes. Puedes revisar Precios de RPC y la lista completa de redes RPC compatibles para planificar el siguiente paso.