Eine BNB Chain Explorer API ist jeder Dienst, der Ihrem Code Daten der BNB Smart Chain liefert – Blöcke, Transaktionen, Guthaben, Token. 2026 führen drei kostenlose Wege zum Ziel: die öffentlichen JSON-RPC-Endpunkte von BNB Chain (ohne Key, eth_call inklusive), Indexer ohne Key wie Binplorer und GoPlus sowie der Free-Tarif von BSCTrace über MegaNode. Eine kostenlose BscScan-API gibt es nicht mehr.
Genau dieser letzte Satz hat im Winter jede Menge Bots, Dashboards und Steuer-Skripte lahmgelegt. Dieser Ratgeber ist die Reparaturanleitung. Wir zeigen zuerst, was sich geändert hat, vergleichen alle Optionen nach Preis und Limits und geben Ihnen dann curl-Befehle zum Kopieren an die Hand – für die Aufrufe, die Entwickler am häufigsten brauchen: Blockhöhe, Guthaben, Receipts, balanceOf per eth_call, Token-Metadaten und Revert-Gründe. Alles haben wir im September 2026 gegen die Live-Endpunkte getestet. Am Ende sehen Sie genau, wie unser eigener BNB-Transaktions-Explorer die Chain liest – ohne einen einzigen API-Key.
Die BscScan-API ist abgekündigt. Was ersetzt sie?
Am 18. Dezember 2025 wurde die BscScan-API zugunsten von Etherscan API V2 abgekündigt. V2 arbeitet mit einem Key und einer Basis-URL für mehr als 60 Chains; das Netzwerk wählen Sie über den Parameter chainid. Der Haken: Etherscans Tabelle der unterstützten Chains führt BNB Smart Chain Mainnet (56) und Testnet (97) als „Paid Tier Only“. Wir haben es mit einem kostenlosen Key probiert:
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"} Die Free-Stufe von Etherscan erlaubt 3 Aufrufe pro Sekunde und bis zu 100.000 pro Tag – allerdings nur auf ausgewählten Chains. Der günstigste Tarif, der die BSC abdeckt, ist Lite (5 Aufrufe pro Sekunde, 100.000 pro Tag); Etherscan hat ihn zu einem Viertel des Preises der bis dahin günstigsten Bezahlstufe eingeführt. Zwei Ausnahmen sollten Sie kennen. Die Endpunkte für verifizierten Quellcode und ABI (getsourcecode, getabi) bleiben auf jeder Chain kostenlos, die BSC eingeschlossen. Und opBNB Mainnet (204) sowie opBNB Testnet (5611) bleiben in der Free-Stufe. Die ganze Geschichte des Explorers selbst erzählt unser BscScan-Test.
BNB Chain reagierte im selben Monat mit einem Migrationsleitfaden von der BscScan-API zu BSCTrace über MegaNode. Er übersetzt die module/action-Aufrufe von BscScan in JSON-RPC: Aus account/balance wird eth_getBalance, proxy/eth_getTransactionReceipt wird zur gleichnamigen Methode, und account/txlist wird zu NodeReals nr_getAssetTransfers.
Ihre BSC-API-Optionen 2026 im Vergleich
Hier die Landschaft auf einen Blick. „Gratis“ heißt: ohne Bezahlung nutzbar – für manche Optionen brauchen Sie trotzdem eine Registrierung, um einen Key zu erhalten.
| Dienst | Gratis auf BSC? | Gratis-Limits | Bezahlt ab | Ideal für |
|---|---|---|---|---|
| Öffentliches RPC von BNB Chain | Ja, ohne Key | 10.000 Anfr. / 5 Min. / IP | — | Live-Abfragen, eth_call |
| PublicNode · 1RPC | Ja, ohne Key | Fair Use | Anbieter-Tarife | Failover, kleine getLogs |
| BSCTrace / MegaNode | Ja, Gratis-Key | 10 Mio. CU/Monat · 150 CUPS | 31 $/Monat (jährlich) | Verlauf, Transfers, Archiv |
| Binplorer | Ja, freekey | 2/s · 1.000/Tag | Eigener Key | Token-Guthaben, Kurse |
| GoPlus Security | Ja, ohne Key | Fair Use | Bezahltarife | Token-Risikoflags |
| Etherscan API V2 | Nein (nur bezahlt) | Nur ABI & Quellcode | Lite-Tarif | Alter BscScan-Code |
| Blockscout | Keine BSC-Instanz | — | — | Nur Self-Hosting |
Die meisten echten Projekte kombinieren zwei oder drei davon: öffentliches RPC für alles, was ein Node beantworten kann, einen Indexer für den Verlauf und einen Bezahltarif erst dann, wenn das Volumen es verlangt. Blockscout steht nur auf der Liste, weil so viele danach suchen – eine öffentliche BSC-Instanz gibt es nicht, wie unser Erklärstück zu Blockscout auf der BNB Smart Chain zeigt. Zu den Explorer-Oberflächen hinter diesen APIs gehen unser BSCTrace-Test und das Explorer-Ranking tiefer.
BSC-RPC-Endpunkte und ihre Limits
BNB Chain veröffentlicht die offiziellen Endpunkte in der Dokumentation der JSON-RPC-Endpunkte. Jeden der folgenden haben wir mit eth_chainId und eth_blockNumber getestet:
Zehntausend Anfragen pro fünf Minuten ergeben rund 33 pro Sekunde von einer IP – großzügig für ein Dashboard oder einen Bot, zu wenig, um die Chain zu indexieren. Der öffentliche Endpunkt von dRPC (bsc.drpc.org) funktioniert ebenfalls ohne Key, hat uns aber schnell gedrosselt, und Ankrs früher öffentliche BSC-URL verlangt inzwischen einen API-Key. Testnet-Endpunkte und Faucets behandelt unser Ratgeber zum BNB-Testnet-Explorer. Wer die Grundlagen der Schnittstelle nachlesen will, findet sie in der JSON-RPC-Dokumentation von ethereum.org – die BNB Smart Chain spricht exakt dieselbe Sprache.
Getestete curl-Beispiele: eth_call & Co. ohne API-Key
Jeder der folgenden Befehle lief gegen die Live-Endpunkte, während wir diesen Text geschrieben haben. Die Ergebnisse ändern sich mit jedem Block, Ihre Zahlen weichen also ab – die Struktur der Antworten nicht. Alle Werte kommen als Hex-Strings zurück; umrechnen können Sie sie mit printf '%d' 0x… oder dem BigInt Ihrer Programmiersprache.
eth_blockNumber – aktuelle Blockhöhe
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 – natives BNB-Guthaben
Die Antwort kommt in wei (10-18 BNB). Das Beispiel liest den WBNB-Contract, der sämtliches gewrappte BNB hält.
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: durch 10^18 teilen → ≈ 1.559.676,77 BNB im WBNB-Contract eth_getTransactionReceipt – hat es geklappt, und was wurde bewegt?
status ist 0x1 bei Erfolg und 0x0 bei einem Revert. Token-Bewegungen stehen in logs: Topic 0 eines BEP-20-Transfers ist immer 0xddf252ad…b3ef, Topic 1 und 2 sind Absender und Empfänger, auf 32 Byte aufgefüllt, und data enthält den Betrag. Unser Ratgeber zum Lesen einer BSC-Transaktion erklärt dieselben Felder in der Explorer-Oberfläche.
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", # Erfolg, 34.515 Gas
"to":"0x55d398326f99059ff775485246999027b3197955", # der USDT-Contract
"logs":[{"topics":["0xddf252ad…b3ef", # Transfer(from,to,value)
"0x…bd612a3f30dca67bf60a39fd0d35e39b7ab80774", # Absender
"0x…db83e219c36b3d2fd876539402736a4e7a2f4f3d"], # Empfänger
"data":"0x…3da08bf6de97920000"}], …}} # 1.136,82 USDT (18 Dezimalstellen) eth_call mit balanceOf – Calldata selbst bauen
Calldata besteht aus dem 4-Byte-Funktionsselektor, gefolgt von den Argumenten, jedes links auf 32 Byte aufgefüllt. Für balanceOf(address) lautet der Selektor 0x70a08231; das Argument ist die Adresse ohne 0x, in Kleinbuchstaben und mit 24 Nullen auf 64 Hex-Zeichen aufgefüllt. In der Bash sieht das so aus:
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"} # roher uint256, durch 10^18 teilen decimals() und symbol() in einem Batch
decimals() (0x313ce567) liefert einen schlichten uint. symbol() (0x95d89b41) liefert dagegen einen ABI-kodierten String: einen 32-Byte-Offset, eine 32-Byte-Länge und danach die UTF-8-Bytes. Einige sehr alte Token geben stattdessen bytes32 zurück – ein robuster Decoder beherrscht beides.
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 # Länge 4
5553445400…"}] # "USDT" in UTF-8 Den Revert-Grund erfahren, bevor Sie dafür bezahlen
eth_call mit einem from-Feld simuliert eine Transaktion, ohne sie zu signieren. Würde sie scheitern, liefert der Node den Revert-String zurück – hier ein USDT-Transfer von einer Adresse ohne Guthaben. Führen Sie diese Simulation vor dem Senden aus, und Sie zahlen nie wieder Gas für eine Transaktion, die ohnehin zum Scheitern verurteilt ist.
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 – hier endet das Gratis-Buffet
# Offizieller Endpunkt: deaktiviert
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: für kleine Bereiche in Ordnung, z. B. USDT-Transfer-Events im neuesten Block
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"]}]}' Für Event-Verläufe über mehr als ein paar Blöcke brauchen Sie MegaNode oder ein WebSocket-Abo – oder Sie fragen einen Indexer wie Binplorer, der die Logs bereits verarbeitet hat.
JSON-RPC-Batching: weniger Roundtrips, dieselben Daten
Die JSON-RPC-2.0-Spezifikation erlaubt es, ein Array von Anfragen per POST zu senden und ein Array von Antworten zurückzubekommen, zugeordnet über die id. Für BSC-Abfragen ist das der größte einzelne Geschwindigkeitsgewinn: Eine Transaktionsseite braucht die Transaktion, ihr Receipt, die aktuelle Blocknummer und den Zeitstempel des Blocks – ein Batch holt die ersten drei in einer einzigen HTTP-Anfrage statt in dreien. Die offiziellen Endpunkte akzeptieren bis zu 100 Aufrufe pro Batch; bei 120 erhielten wir batch length does not support more than 100, während PublicNode auch 120 anstandslos annahm.
Drei Regeln machen Batches zuverlässig. Ordnen Sie Antworten immer über die id zu, nie über die Position, denn Anbieter dürfen die Reihenfolge ändern. Behandeln Sie jedes Element einzeln: Ein fehlgeschlagener eth_call lässt nicht den ganzen Batch scheitern. Und rechnen Sie damit, dass jedes Element auf das Rate Limit angerechnet wird – Batching spart Latenz, kein Kontingent.
Binplorer und GoPlus: indexierte Daten ohne Key
Ein Node verrät Ihnen das Guthaben von jetzt; er kann aber nicht jeden Token auflisten, den ein Wallet hält, oder jeden Transfer, den es je gemacht hat – dafür braucht es einen Index. Binplorer, vom Team hinter Ethplorer, betreibt genau diesen Index für die BSC und stellt ihn mit dem öffentlichen Key freekey bereit. Laut API-Dokumentation ist der Gratis-Key auf 2 Anfragen pro Sekunde, 20 pro Minute, 100 pro Stunde, 1.000 pro Tag und 3.000 pro Woche begrenzt – genug für einen Prototyp oder ein persönliches Tool, nicht für den Produktivbetrieb.
curl -s "https://api.binplorer.com/getTokenInfo/0x55d398326f99059fF775485246999027B3197955?apiKey=freekey"
{"address":"0x55d3…7955","name":"Tether","decimals":"18","symbol":"USDT",
"price":{"rate":0.9997, …},"holdersCount": …}
# weitere freekey-Endpunkte (gleiche Basis-URL)
/getAddressInfo/{address} # BNB- und Token-Guthaben mit Kursen
/getTxInfo/{hash} # dekodierte Tx mit Token-Operationen
/getAddressHistory/{address} # Token-Transfers (&limit=25)
/getAddressTransactions/{address} # BNB-Transfers (&limit=25)
/getTopTokens?limit=10 # aktivste BEP-20-Token
/getLastBlock # Indexhöhe GoPlus Security beantwortet eine andere Frage: Ist dieser Token gefährlich? Der kostenlose Token-Security-Endpunkt für Chain 56 markiert Honeypots, Kauf- und Verkaufssteuern, Mint-Funktionen, upgradebare Proxys, Sperrlisten und Eigentümer, die Guthaben verändern können. Werten Sie ein rotes Flag als Stoppschild und ein sauberes Ergebnis als „keine offensichtliche Falle“ – nicht als Garantie. Unser Ratgeber zum BSC-Token-Check erklärt jedes einzelne Flag.
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 über MegaNode: die kostenlose Option mit Key
Wenn Ihnen die Quellen ohne Key zu eng werden, ist NodeReals MegaNode – die API hinter dem BSCTrace-Explorer – der naheliegende nächste Schritt. Registrieren, Key erzeugen, und Ihr Endpunkt lautet https://bsc-mainnet.nodereal.io/v1/<API_KEY> (Testnet: bsc-testnet.nodereal.io). Der Free-Tarif umfasst 10 Millionen Compute Units im Monat, 150 Compute Units pro Sekunde, drei API-Keys, Mainnet und Testnet sowie Archivdaten. Der Growth-Tarif kostet bei jährlicher Abrechnung 31 US-Dollar im Monat; darüber folgen Team- und Business-Stufen.
Alles, was Sie oben gesehen haben, funktioniert dort ebenfalls – dazu eth_getLogs, historischer State und NodeReals erweiterte Methoden: nr_getAssetTransfers für normale, BEP-20-, NFT- und interne Transfers pro Adresse, nr_getTokenHolders und nr_getTokenHolderCount, nr_getTokenBalance20 sowie nr_getContractCreationTransaction. Details zu den Methoden stehen in der Migrationsdokumentation von NodeReal. Halten Sie den Key auf Ihrem Server – er steht schließlich im URL-Pfad.
Ihre API-Abfragen sind gratis. Ihre Transaktionen nicht.
Relayer, Keeper und Deployer verbrauchen alle BNB für Gas. Versorgen Sie sie über einen regulierten Börsenpartner, der seit 2013 am Markt ist.
Rate Limits und Failover: Tipps, die Sie um 3 Uhr nachts retten
Endpunkte rotieren. Führen Sie eine geordnete Liste – zwei offizielle Hosts, PublicNode, 1RPC – und wechseln Sie zum nächsten bei einem Timeout, einem HTTP 429 oder einem JSON-RPC-Fehler, in dem von einem Limit die Rede ist. Merken Sie sich, welcher zuletzt funktioniert hat, und beginnen Sie beim nächsten Mal dort.
Exponentiell zurückweichen. Bei wiederholten -32005- oder 429-Antworten warten Sie 1, 2, 4, 8 Sekunden, bevor Sie denselben Host erneut fragen. Wer auf einen gedrosselten Endpunkt weiter einhämmert, verlängert nur die Sperre.
Cachen, was sich nie ändert. Token-Dezimalstellen, Symbole, Contract-Bytecode und Receipts aus finalisierten Blöcken sind unveränderlich. Mit Fast Finality nach rund einer Sekunde auf der BSC können Sie alles, was ein paar Blöcke tief liegt, für immer zwischenspeichern.
Mit Augenmaß pollen. Seit dem Fermi-Hardfork kommt alle 0,45 Sekunden ein Block, doch eth_blockNumber einmal pro Sekunde abzufragen reicht für die meisten Apps völlig – das sind 300 Anfragen in fünf Minuten, 3 % des offiziellen Kontingents. Für Echtzeit-Feeds nutzen Sie ein WebSocket-Abo auf newHeads bei einem Anbieter.
Die Chain verifizieren. Rufen Sie beim Start einmal eth_chainId auf und brechen Sie ab, wenn das Ergebnis nicht 0x38 lautet. Das ist eine günstige Versicherung gegen eine versehentlich eingefügte Testnet-URL.
BSC aus dem Browser aufrufen: CORS und Keys
Browser lassen eine Seite eine Cross-Origin-Antwort nur lesen, wenn der Server das erlaubt. Die offiziellen Endpunkte von BNB Chain und PublicNode antworten beide mit Access-Control-Allow-Origin: *, Binplorer und GoPlus spiegeln Ihre Origin zurück – alle vier funktionieren also direkt aus Frontend-JavaScript. Wir haben die Header geprüft. Genau das macht einen Explorer ganz ohne Backend möglich.
Die andere Hälfte sind Geheimnisse. Liefern Sie niemals einen Etherscan- oder MegaNode-Key im Client-Code aus; er wird binnen Tagen abgegriffen. Brauchen Sie im Browser eine Quelle mit Key, schalten Sie einen kleinen Proxy davor – eine Serverless Function, die den Key ergänzt, nur erlaubte Methoden durchlässt und Antworten cacht. Und falls Sie eine Wallet-Verbindung einbauen: Das Lesen von Daten erfordert nie eine Signatur, nur das Senden einer Transaktion. Unser Ratgeber zur MetaMask-Einrichtung nennt die korrekten RPC- und Explorer-URLs für Wallets.
Wie unsere Seite die BSC ganz ohne API-Key liest
Alles auf dieser Website – der Explorer, die Live-Statistiken, das Gas-Widget – läuft in Ihrem Browser auf den oben beschriebenen Quellen. Kein Backend, keine Keys, nichts wird gespeichert. Das Herzstück ist ein JSON-RPC-Client mit Batching und Failover über fünf öffentliche Endpunkte:
// Vereinfacht aus der Datenschicht unseres Explorers (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, der Reihe nach
try {
const res = await fetch(url, { method: 'POST', body,
headers: { 'Content-Type': 'application/json' },
signal: AbortSignal.timeout(9000) }); // 9 s Timeout pro Endpunkt
const arr = [].concat(await res.json());
if (arr.some(x => /limit|rate|exceed/i.test(x?.error?.message ?? '')))
throw new Error('rate limited'); // nächsten Endpunkt versuchen
const byId = new Map(arr.map(x => [x.id, x]));
return calls.map((_, i) => byId.get(i + 1)?.result ?? null);
} catch { /* weiter zum nächsten */ }
}
throw new Error('All RPC endpoints failed');
}
// name, symbol, decimals, totalSupply eines Tokens in EINEM Roundtrip
const meta = await rpcBatch(['0x06fdde03', '0x95d89b41', '0x313ce567', '0x18160ddd']
.map(data => ['eth_call', [{ to: token, data }, 'latest']])); Um diesen Kern herum sitzen ein paar weitere Aufrufe ohne Key. Eine Transaktionssuche bündelt eth_getTransactionByHash, eth_getTransactionReceipt und eth_blockNumber in einem Batch, dekodiert anschließend die Transfer-Logs und holt Token-Metadaten für bis zu 40 Token in einem einzigen weiteren Batch. Methodennamen stammen aus einem eingebauten Wörterbuch gängiger Selektoren, mit der öffentlichen Signaturdatenbank von OpenChain als Rückfallebene. Adressseiten ergänzen im Mainnet die Bestände und den Verlauf von Binplorer und ignorieren dabei Kurse von Token mit weniger als 50.000 US-Dollar Tagesvolumen, damit Spam-Airdrops die Guthaben nicht aufblähen. Token-Seiten ergänzen den GoPlus-Scan, und der BNB-Kurs kommt von CoinGecko, mit Binplorer als Reserve. Probieren Sie es mit einem beliebigen Hash in unserem BSC-Explorer aus – oder im Testnet und auf opBNB über die Seite zum opBNB-Explorer.