Ir al contenido
bnb·explorer
ES

Guía para desarrolladores · Acceso a datos de BSC

API de explorador BNB Chain en 2026: datos de BSC gratis y sin clave

La API gratuita de BscScan ya no existe y Etherscan API V2 cobra por BNB Smart Chain. Aquí tienes lo que sigue funcionando gratis —JSON-RPC público, eth_call, Binplorer, GoPlus y el plan gratuito de BSCTrace— con ejemplos curl que hemos lanzado contra los endpoints en vivo.

Exchange asociado regulado · registrado en FinCEN · autorizado por la GFSC

Probado en sept. 2026Todos los ejemplos funcionan Actualizado · 14 min

Endpoints sin clave · Mainnet de BSC

JSON-RPC · POST

https://bsc-dataseed.bnbchain.org
{"jsonrpc":"2.0","id":1,
 "method":"eth_blockNumber","params":[]}
→ {"result":"0x7628198"}

Binplorer · GET

api.binplorer.com/getAddressInfo/
  {address}?apiKey=freekey

GoPlus · GET

api.gopluslabs.io/api/v1/
  token_security/56?contract_addresses={token}

Con CORS · sin registro · límites más abajo

Una API de explorador de BNB Chain es cualquier servicio que entrega a tu código datos de BNB Smart Chain: bloques, transacciones, saldos, tokens. En 2026 tienes tres vías gratuitas: los endpoints JSON-RPC públicos de BNB Chain (sin clave y con eth_call), indexadores sin clave como Binplorer y GoPlus, y el plan gratuito de MegaNode que hay detrás de BSCTrace. La API gratuita de BscScan ya no existe.

Esa última frase dejó fuera de juego a un buen puñado de bots, dashboards y scripts de fiscalidad durante el invierno. Esta guía es el parche. Empezamos por lo que cambió, comparamos todas las opciones en precio y límites, y luego te damos comandos curl listos para copiar y pegar para las llamadas que más usan los desarrolladores: altura de bloque, saldos, recibos, balanceOf vía eth_call, metadatos de tokens y motivos de revert. Todo probado contra los endpoints en vivo en septiembre de 2026. Al final verás exactamente cómo nuestro propio explorador de transacciones BNB lee la cadena sin una sola API key.

La API de BscScan está obsoleta. ¿Qué la ha sustituido?

El 18 de diciembre de 2025 la API de BscScan se retiró en favor de Etherscan API V2, que usa una sola clave y una sola URL base para más de 60 cadenas y elige la red con el parámetro chainid. La trampa: la tabla de cadenas soportadas de Etherscan marca la mainnet de BNB Smart Chain (56) y la testnet (97) como «Paid Tier Only». Lo probamos con una clave gratuita:

curl -s "https://api.etherscan.io/v2/api?chainid=56&module=proxy&action=eth_blockNumber&apikey=YOUR_FREE_KEY"

{"status":"0","message":"NOTOK",
 "result":"Free API access is not supported for this chain. Please upgrade your api plan for full chain coverage. https://etherscan.io/apis"}

El plan gratuito de Etherscan da 3 llamadas por segundo y hasta 100.000 al día, pero solo en determinadas cadenas. El plan más barato que cubre BSC es Lite (5 llamadas por segundo, 100.000 al día), que Etherscan lanzó a una cuarta parte del precio de su anterior plan de pago más económico. Hay dos excepciones que conviene conocer. Los endpoints de código fuente verificado y ABI (getsourcecode, getabi) siguen siendo gratis en todas las cadenas, BSC incluida. Y la mainnet de opBNB (204) y la testnet de opBNB (5611) siguen en el plan gratuito. Si quieres la historia completa del explorador en sí, lee nuestro análisis de BscScan.

La respuesta de BNB Chain fue una guía de migración de la API de BscScan a BSCTrace vía MegaNode, publicada ese mismo mes. Traduce las llamadas module/action de BscScan a JSON-RPC: account/balance pasa a ser eth_getBalance, proxy/eth_getTransactionReceipt se convierte en el método del mismo nombre y account/txlist se sustituye por nr_getAssetTransfers de NodeReal.

Tus opciones de API para BSC en 2026, comparadas

Este es el panorama en una sola pantalla. «Gratis» significa que se puede usar sin pagar; algunas opciones exigen igualmente registrarse para obtener una clave.

APIs de datos de BNB Smart Chain: acceso gratuito y precio de entrada (septiembre de 2026)
Servicio¿Gratis en BSC?Límites gratisDe pago desdeIdeal para
RPC público de BNB ChainSí, sin clave10.000 pet. / 5 min / IP—Lecturas en vivo, eth_call
PublicNode · 1RPCSí, sin claveUso razonablePlanes del proveedorFailover, getLogs pequeños
BSCTrace / MegaNodeSí, clave gratis10M CU/mes · 150 CUPS31 $/mes (anual)Historial, transferencias, archivo
BinplorerSí, freekey2/s · 1.000/díaClave personalSaldos de tokens, precios
GoPlus SecuritySí, sin claveUso razonablePlanes de pagoAlertas de riesgo de tokens
Etherscan API V2No (solo pago)Solo ABI y códigoPlan LiteCódigo heredado de BscScan
BlockscoutSin instancia BSC——Solo autoalojado

La mayoría de proyectos reales combinan dos o tres de estas piezas: RPC público para todo lo que un nodo puede responder, un indexador para el historial y un plan de pago solo cuando el volumen lo exige. Blockscout aparece en la lista porque mucha gente lo busca, pero no existe una instancia pública para BSC, como explicamos en nuestra guía sobre Blockscout en BNB Smart Chain. Para las interfaces de explorador que hay detrás de estas APIs, profundizan nuestro análisis de BSCTrace y el ranking de exploradores de BNB.

Endpoints RPC de BSC y sus límites

BNB Chain publica sus endpoints oficiales en la documentación de endpoints JSON-RPC. Probamos cada uno de los siguientes con eth_chainId y eth_blockNumber:

bsc-dataseed.bnbchain.orgprincipal Mainnet · 56
bsc-dataseed1…4.bnbchain.orgréplicas Mainnet · 56
bsc-dataseed-public.bnbchain.org Mainnet · 56
bsc-testnet-dataseed.bnbchain.orgChapel Testnet · 97
opbnb-mainnet-rpc.bnbchain.org opBNB · 204
bsc-rpc.publicnode.com · 1rpc.io/bnbde terceros, sin clave Mainnet · 56
Límite por IP, endpoints oficiales 10.000 / 5 min
Máx. de llamadas por batch, endpoints oficiales 100
eth_getLogs en nodos oficiales de mainnet desactivado
CORS en endpoints oficiales Allow-Origin: *

Diez mil peticiones cada cinco minutos salen a unas 33 por segundo desde una misma IP: de sobra para un dashboard o un bot, insuficiente para indexar la cadena. El endpoint público de dRPC (bsc.drpc.org) también funciona sin clave, pero nos limitó enseguida, y la antigua URL pública de BSC de Ankr ahora exige API key. Los endpoints y faucets de testnet los cubrimos en nuestra guía del explorador de testnet de BNB.

Ejemplos curl probados: eth_call y compañía, sin API key

Cada comando de esta sección se ejecutó contra los endpoints en vivo mientras escribíamos. Los resultados cambian con cada bloque, así que tus números serán otros; la forma de la respuesta, no. Todos los valores llegan como cadenas hexadecimales: conviértelos con printf '%d' 0x… o con el BigInt de tu lenguaje.

eth_blockNumber: altura del último bloque

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

{"jsonrpc":"2.0","id":1,"result":"0x7628198"}      # 0x7628198 = 123.896.216

eth_getBalance: saldo nativo de BNB

Devuelve wei (10-18 BNB). El ejemplo lee el contrato WBNB, que custodia todo el BNB envuelto.

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBalance",
       "params":["0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","latest"]}'

{"jsonrpc":"2.0","id":1,"result":"0x14a463f3d72d4db881ec3"}
# wei → BNB: divide entre 10^18  →  ≈ 1.559.676,77 BNB en el contrato WBNB

eth_getTransactionReceipt: ¿salió bien y qué se movió?

status vale 0x1 si la transacción tuvo éxito y 0x0 si hizo revert. Los movimientos de tokens están en logs: el topic 0 de un Transfer BEP-20 es siempre 0xddf252ad…b3ef, los topics 1 y 2 son el emisor y el destinatario rellenados a 32 bytes, y data es el importe. Nuestra guía para leer una transacción de BSC explica esos mismos campos en una interfaz visual.

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt",
       "params":["0x596be466441dca5c43bff1e90aff65ad19d259e1713c408222ef4cb73700e17a"]}'

{"result":{"status":"0x1", "gasUsed":"0x86d3",          # éxito, 34.515 de gas
  "to":"0x55d398326f99059ff775485246999027b3197955",   # el contrato de USDT
  "logs":[{"topics":["0xddf252ad…b3ef",                 # Transfer(from,to,value)
                     "0x…bd612a3f30dca67bf60a39fd0d35e39b7ab80774",   # emisor
                     "0x…db83e219c36b3d2fd876539402736a4e7a2f4f3d"],  # destinatario
           "data":"0x…3da08bf6de97920000"}], …}}          # 1.136,82 USDT (18 decimales)

eth_call con balanceOf: construye tú el calldata

El calldata es el selector de función de 4 bytes seguido de los argumentos, cada uno rellenado por la izquierda hasta 32 bytes. Para balanceOf(address) el selector es 0x70a08231; el argumento es la dirección sin 0x, en minúsculas y con 24 ceros delante hasta llegar a 64 caracteres hexadecimales. En bash:

ADDR=0x8894E0a0c962CB723c1976a4421c95949bE2D4E3
DATA=0x70a08231$(printf '%064s' $(echo ${ADDR#0x} | tr 'A-F' 'a-f') | tr ' ' 0)
echo $DATA
# 0x70a082310000000000000000000000008894e0a0c962cb723c1976a4421c95949be2d4e3

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_call",
       "params":[{"to":"0x55d398326f99059fF775485246999027B3197955","data":"'$DATA'"},"latest"]}'

{"jsonrpc":"2.0","id":1,"result":"0x…0143feb02d6709d2227d9d49"}   # uint256 en bruto, divide entre 10^18

decimals() y symbol() en un solo batch

decimals() (0x313ce567) devuelve un uint sin más. symbol() (0x95d89b41) devuelve un string codificado en ABI: un offset de 32 bytes, una longitud de 32 bytes y después los bytes UTF-8. Algunos tokens muy antiguos devuelven un bytes32, así que un decodificador robusto tiene que aceptar ambos formatos.

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '[{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x55d398326f99059fF775485246999027B3197955","data":"0x313ce567"},"latest"]},
       {"jsonrpc":"2.0","id":2,"method":"eth_call","params":[{"to":"0x55d398326f99059fF775485246999027B3197955","data":"0x95d89b41"},"latest"]}]'

[{"jsonrpc":"2.0","id":1,"result":"0x…0012"},          # decimals() = 18
 {"jsonrpc":"2.0","id":2,"result":"0x…0020               # offset 32
                                    …0004               # longitud 4
                                    5553445400…"}]      # "USDT" en UTF-8

Conoce el motivo del revert antes de pagarlo

Un eth_call con campo from simula una transacción sin firmarla. Si fuera a fallar, el nodo te devuelve el mensaje de revert; en este caso, una transferencia de USDT desde una dirección sin saldo. Lánzalo antes de emitir la transacción y nunca pagarás gas por una operación condenada al fracaso.

curl -s -X POST https://bsc-dataseed.bnbchain.org \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{
        "from":"0x000000000000000000000000000000000000c0Fe",
        "to":"0x55d398326f99059fF775485246999027B3197955",
        "data":"0xa9059cbb000000000000000000000000000000000000000000000000000000000000beef0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"latest"]}'

{"error":{"code":3,"message":"execution reverted: BEP20: transfer amount exceeds balance", …}}

eth_getLogs: aquí se acaba la barra libre

# Endpoint oficial: desactivado
curl -s -X POST https://bsc-dataseed.bnbchain.org -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"latest","toBlock":"latest"}]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32005,"message":"limit exceeded"}}

# PublicNode: vale para rangos pequeños, p. ej. eventos Transfer de USDT en el último bloque
curl -s -X POST https://bsc-rpc.publicnode.com -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"latest","toBlock":"latest",
       "address":"0x55d398326f99059fF775485246999027B3197955",
       "topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}]}'

Para historial de eventos que vaya más allá de unos pocos bloques, usa MegaNode o una suscripción por WebSocket, o consulta un indexador como Binplorer, que ya ha procesado esos logs por ti.

Batching en JSON-RPC: menos idas y vueltas, los mismos datos

La especificación JSON-RPC 2.0 —la que resume la documentación de ethereum.org para cualquier cadena EVM— te permite enviar por POST un array de peticiones y recibir un array de respuestas, emparejadas por id. Es la mayor mejora de velocidad que puedes aplicar a tus lecturas en BSC: cargar la página de una transacción exige la transacción, su recibo, el número de bloque actual y el timestamp del bloque, y un batch trae los tres primeros en una sola petición HTTP en lugar de tres. Los endpoints oficiales aceptan hasta 100 llamadas por batch; con 120 recibimos batch length does not support more than 100, mientras que PublicNode aceptó las 120.

Tres reglas mantienen fiables los batches. Empareja las respuestas por id, nunca por posición, porque los proveedores pueden reordenarlas. Trata cada elemento por separado: un eth_call fallido no tumba el batch entero. Y da por hecho que cada elemento cuenta para el límite de peticiones: el batching ahorra latencia, no cuota.

Cadena de bloques luminosos rodeando el globo, que representa las peticiones de una API de explorador de BNB Chain llegando a nodos RPC públicos
↳Un batch, una ida y vuelta: la optimización más barata para cualquier cliente de API de BSC

Binplorer y GoPlus: datos indexados sin clave

Un nodo te dice el saldo de ahora mismo; lo que no puede es listar todos los tokens que tiene una wallet ni todas las transferencias que ha hecho, porque para eso hace falta un índice. Binplorer, del equipo que creó Ethplorer, mantiene ese índice para BSC y lo expone con la clave pública freekey. Su documentación de la API limita la clave gratuita a 2 peticiones por segundo, 20 por minuto, 100 por hora, 1.000 al día y 3.000 a la semana: bien para un prototipo o una herramienta personal, no para producción.

curl -s "https://api.binplorer.com/getTokenInfo/0x55d398326f99059fF775485246999027B3197955?apiKey=freekey"
{"address":"0x55d3…7955","name":"Tether","decimals":"18","symbol":"USDT",
 "price":{"rate":0.9997, …},"holdersCount": …}

# otros endpoints con freekey (misma URL base)
/getAddressInfo/{address}            # saldo de BNB + tokens con precios
/getTxInfo/{hash}                    # tx decodificada con operaciones de tokens
/getAddressHistory/{address}         # transferencias de tokens  (&limit=25)
/getAddressTransactions/{address}    # transferencias de BNB     (&limit=25)
/getTopTokens?limit=10               # tokens BEP-20 más activos
/getLastBlock                        # altura del índice

GoPlus Security responde a otra pregunta: ¿es peligroso este token? Su endpoint gratuito de seguridad de tokens para la cadena 56 detecta honeypots, impuestos de compra y venta, funciones de mint, proxies actualizables, listas negras y propietarios capaces de modificar saldos. Toma una alerta roja como una señal de stop y un resultado limpio como «no hay trampa evidente», no como una garantía. Nuestra guía para verificar un token de BSC explica cada indicador.

curl -s "https://api.gopluslabs.io/api/v1/token_security/56?contract_addresses=0x55d398326f99059fF775485246999027B3197955"

{"code":1,"message":"OK","result":{"0x55d3…7955":{
   "buy_tax":"0","sell_tax":"0","is_honeypot":"0","is_open_source":"1",
   "is_proxy":"0","is_mintable":"1","owner_change_balance":"0", … }}}

BSCTrace vía MegaNode: la opción gratuita con clave

Cuando las fuentes sin clave se te queden cortas, MegaNode de NodeReal —la API que hay detrás del explorador BSCTrace— es el siguiente paso natural. Te registras, creas una clave y tu endpoint pasa a ser https://bsc-mainnet.nodereal.io/v1/<API_KEY> (testnet: bsc-testnet.nodereal.io). El plan gratuito incluye 10 millones de compute units al mes, 150 compute units por segundo, tres API keys, mainnet y testnet, y datos de archivo. Growth cuesta 31 $ al mes con facturación anual, y por encima están los planes Team y Business.

Todo lo que has visto arriba funciona también ahí, y además eth_getLogs, estado histórico y los métodos avanzados de NodeReal: nr_getAssetTransfers para transferencias normales, BEP-20, NFT e internas por dirección, nr_getTokenHolders y nr_getTokenHolderCount, nr_getTokenBalance20 y nr_getContractCreationTransaction. Los detalles de cada método están en la documentación de migración de NodeReal. Guarda la clave en tu servidor, porque viaja en la ruta de la URL.

Tus lecturas por API son gratis. Tus transacciones, no.

Relayers, keepers y wallets de despliegue gastan BNB en gas. Recárgalos desde un exchange asociado regulado que opera desde 2013.

Comprar cripto

Límites de peticiones y failover: consejos que te salvan a las 3 de la madrugada

Rota los endpoints. Ten una lista ordenada —dos hosts oficiales, PublicNode, 1RPC— y pasa al siguiente ante un timeout, un HTTP 429 o un error JSON-RPC que hable de límites. Recuerda cuál funcionó la última vez y empieza por ese la próxima.

Espera de forma exponencial. Si recibes varias respuestas -32005 o 429 seguidas, espera 1, 2, 4 y 8 segundos antes de reintentar en el mismo host. Machacar un endpoint que ya te está limitando solo alarga el bloqueo.

Cachea lo que nunca cambia. Los decimales y símbolos de los tokens, el bytecode de los contratos y los recibos de bloques finalizados son inmutables. Con una finalidad rápida de alrededor de un segundo en BSC, todo lo que esté unos pocos bloques por debajo se puede cachear para siempre.

Consulta con cabeza. Desde el hard fork Fermi llega un bloque cada 0,45 segundos, pero consultar eth_blockNumber una vez por segundo basta para la mayoría de aplicaciones: 300 peticiones cada cinco minutos, el 3 % de la cuota oficial. Para feeds en tiempo real, usa una suscripción WebSocket newHeads de un proveedor.

Comprueba la cadena. Llama a eth_chainId una vez al arrancar y niégate a continuar si no devuelve 0x38. Es un seguro barato contra una URL de testnet pegada por error.

Llamar a BSC desde el navegador: CORS y claves

Los navegadores solo dejan que una página lea una respuesta de otro origen si el servidor lo permite. Los endpoints oficiales de BNB Chain y PublicNode responden con Access-Control-Allow-Origin: *, y Binplorer y GoPlus devuelven tu propio origen, así que los cuatro funcionan directamente desde JavaScript en el front-end: revisamos las cabeceras. Eso es lo que hace posible un explorador sin backend.

La otra mitad del asunto son los secretos. Nunca metas una clave de Etherscan o de MegaNode en el código del cliente: te la rascarán en cuestión de días. Si necesitas una fuente con clave en el navegador, pon delante un proxy mínimo, una función serverless que añada la clave, permita solo ciertos métodos y cachee respuestas. Y si añades conexión de wallet, recuerda que leer datos nunca requiere una firma; solo emitir una transacción. Nuestra guía para añadir BNB Smart Chain a MetaMask recoge las URL de RPC y de explorador correctas para wallets.

Cómo lee BSC esta web sin ninguna API key

Todo lo que ves en esta web —el explorador, las estadísticas en vivo, el widget de gas— se ejecuta en tu navegador sobre las fuentes descritas arriba. Sin backend, sin claves, sin guardar nada. El núcleo es un cliente JSON-RPC con batching y failover entre cinco endpoints públicos:

// Versión simplificada de la capa de datos de nuestro explorador (src/lib/chain.ts)
const RPCS = ['https://bsc-dataseed.bnbchain.org', 'https://bsc-rpc.publicnode.com',
              'https://bsc-dataseed1.bnbchain.org', 'https://1rpc.io/bnb', 'https://bsc.drpc.org'];

async function rpcBatch(calls) {
  const body = JSON.stringify(calls.map(([method, params], i) =>
    ({ jsonrpc: '2.0', id: i + 1, method, params })));
  for (const url of RPCS) {                       // failover, por orden
    try {
      const res = await fetch(url, { method: 'POST', body,
        headers: { 'Content-Type': 'application/json' },
        signal: AbortSignal.timeout(9000) });      // timeout de 9 s por endpoint
      const arr = [].concat(await res.json());
      if (arr.some(x => /limit|rate|exceed/i.test(x?.error?.message ?? '')))
        throw new Error('rate limited');           // prueba el siguiente endpoint
      const byId = new Map(arr.map(x => [x.id, x]));
      return calls.map((_, i) => byId.get(i + 1)?.result ?? null);
    } catch { /* siguiente */ }
  }
  throw new Error('All RPC endpoints failed');
}

// name, symbol, decimals y totalSupply de un token en UNA sola ida y vuelta
const meta = await rpcBatch(['0x06fdde03', '0x95d89b41', '0x313ce567', '0x18160ddd']
  .map(data => ['eth_call', [{ to: token, data }, 'latest']]));

Alrededor de ese núcleo hay unas cuantas llamadas más sin clave. Una búsqueda de transacción agrupa en un batch eth_getTransactionByHash, eth_getTransactionReceipt y eth_blockNumber, luego decodifica los logs de Transfer y obtiene los metadatos de hasta 40 tokens en un único batch. Los nombres de los métodos salen de un diccionario integrado de selectores habituales, con la base de datos pública de firmas de OpenChain como respaldo. Las páginas de dirección añaden los tokens en cartera y el historial de Binplorer en mainnet, e ignoran el precio de los tokens con menos de 50.000 $ de volumen diario para que los airdrops de spam no inflen los saldos. Las páginas de token añaden el análisis de GoPlus, y el precio de BNB viene de CoinGecko, con Binplorer como plan B. Pruébalo con cualquier hash en nuestro explorador de BSC, o en las redes de testnet y opBNB a través de la página del explorador de opBNB.

De las llamadas a la API a la mainnet

En BNB Chain los datos son gratis. El gas, no.

En cuanto tu código pasa de leer la cadena a escribir en ella, cada despliegue, swap y ejecución de keeper necesita BNB. Cómpralo en un exchange con licencia y retíralo directamente a tu dirección de BNB Smart Chain.

  1. 01En funcionamiento desde 2013
  2. 02MSB registrado ante FinCEN (EE. UU.)
  3. 03Proveedor DLT autorizado por la GFSC (Gibraltar)
  4. 04Tarjeta, transferencia y retiro de BNB a tu propia wallet

Compruébalo tú mismo: FinCEN MSB · GFSC · Enlace de socio. Los criptoactivos son volátiles; invierte solo lo que puedas permitirte perder.

Sigue explorando

FAQ

Preguntas frecuentes

01

¿Sigue siendo gratuita la API de BscScan?

No. La API propia de BscScan quedó obsoleta en diciembre de 2025 y la sustituyó Etherscan API V2, donde la mainnet de BNB Smart Chain (56) y la testnet (97) figuran como «Paid Tier Only». Una clave gratuita de Etherscan que llama a chainid=56 recibe «Free API access is not supported for this chain». El código fuente verificado y los ABI siguen siendo gratis en todos los planes, y opBNB continúa en el plan gratuito.
02

¿Puedo hacer eth_call en BNB Chain sin API key?

Sí. Los endpoints públicos de BNB Chain, como https://bsc-dataseed.bnbchain.org, aceptan JSON-RPC de cualquiera, incluidos eth_call, eth_getBalance y eth_getTransactionReceipt. Permiten 10.000 peticiones cada cinco minutos por IP, envían Access-Control-Allow-Origin: * (así que funcionan desde el navegador) y limitan los batches a 100 llamadas.
03

¿Por qué falla eth_getLogs en bsc-dataseed?

BNB Chain desactiva eth_getLogs en sus endpoints públicos de mainnet: el nodo responde con el error -32005 «limit exceeded». Para rangos de bloques pequeños usa un endpoint gratuito de terceros como PublicNode, y para volumen de verdad, un plan de proveedor como NodeReal MegaNode o una suscripción a logs por WebSocket.
04

¿Cuál es la mejor API gratuita de BSC para saldos e historial de tokens?

Para trabajos rápidos, la clave pública freekey de Binplorer devuelve tokens en cartera, precios e historial de direcciones, con un límite de 2 peticiones por segundo y 1.000 al día. Para producción, BSCTrace vía NodeReal MegaNode tiene un plan gratuito de 10 millones de compute units al mes, datos de archivo y métodos avanzados como nr_getAssetTransfers.
05

¿Es seguro poner una API key en el JavaScript del front-end?

No. Todo lo que llega al navegador se puede copiar, así que una clave de Etherscan o MegaNode metida en el código del cliente acabará encontrada y exprimida. O mantienes las llamadas sin clave —RPC público, freekey de Binplorer, GoPlus—, como hace nuestro explorador, o enrutas las peticiones con clave a través de tu propio servidor o de una edge function.