A BNB Smart Chain Blockscout explorer does not exist as a public service in 2026. Blockscout is an open-source explorer that anyone can run, but neither the Blockscout team nor BNB Chain hosts an instance for BSC mainnet. You can self-host one on a BSC archive node, or use key-less equivalents: public JSON-RPC, Binplorer and the BSCTrace explorer.
That answer surprises people, because Blockscout shows up everywhere else. Gnosis, Base, Optimism-stack rollups and hundreds of appchains ship with it, and its API is well documented. So when a tutorial says “query the Blockscout API v2” or “use /api/eth-rpc for eth_call”, it is reasonable to assume there is a BSC version. This guide explains what Blockscout is, proves the “no public instance” claim with tests you can repeat, walks through the three layers of the Blockscout API with working code, and shows how to get the same data from BNB Smart Chain today. If you only want to look something up, our free BNB transaction explorer already does it in the browser, and the ranking of BNB Smart Chain explorers covers every hosted option.
What is Blockscout?
Blockscout is an open-source block explorer for EVM-based networks. The project started in January 2018 at POA Network and is now maintained by the Blockscout team on GitHub, where the backend has thousands of stars and still ships releases every few weeks (v11.3.2 landed on 21 September 2026). The backend is written in Elixir on the Phoenix framework and runs on the Erlang VM, which is why it copes well with the many concurrent fetchers an indexer needs. The modern frontend is a separate Next.js application, and optional Rust microservices handle statistics charts, contract visualisation and function-signature lookups.
Architecturally it is three things glued together. An indexer pulls blocks, receipts, logs, token balances and internal-call traces from a node over JSON-RPC and writes them into PostgreSQL. A web application and API serve that database as explorer pages and as JSON. And a set of contract tools — Solidity and Vyper verification, Sourcify integration, read and write tabs, proxy detection — sit on top. Because everything talks to the chain through standard Ethereum JSON-RPC, Blockscout works with any EVM chain whose node answers the right methods. That portability is the reason so many rollups and appchains pick it instead of building an explorer from scratch, and it is also why BNB Smart Chain, which is fully EVM-compatible, can run it without code changes.
Is there a Blockscout explorer for BNB Smart Chain?
We checked three ways in September 2026, and the answer was the same each time.
The registry. Blockscout publishes a machine-readable list of every known instance at chains.blockscout.com. Its API returned 711 entries — Ethereum, Base, OP Mainnet, Gnosis and a long tail of L2s and appchains. There is no entry for chain ID 56 (BSC mainnet), 97 (Chapel testnet), 204 (opBNB) or 5611 (opBNB testnet).
The obvious hostnames. Blockscout-hosted explorers follow the pattern eth.blockscout.com or base.blockscout.com. We requested bsc.blockscout.com, bnb.blockscout.com, bsc-testnet.blockscout.com and opbnb.blockscout.com; all four answered HTTP 404.
The PRO API. Blockscout has moved to a single paid-or-free API key that works across the 100+ chains it hosts. BNB Smart Chain is not one of them, so a key from dev.blockscout.com will not return BSC data.
Where does the confusion come from? Partly from the search engines, which blend “Blockscout” and “BNB” results, and partly from real chains in the BNB ecosystem. A handful of networks that use BNB as their gas token — Matchain and Xterio’s chain, for example — do run Blockscout-based explorers and appear in the registry under the BNB ecosystem label. Their data has nothing to do with BSC mainnet, though. An address or transaction hash from BNB Smart Chain will not be found there.
What people searching “BSC Blockscout API v2” really need
Queries like “bnb smart chain blockscout explorer api v2”, “blockscout bnb mainnet eth_call” or “bnb chain blockscout explorer api mainnet” usually hide one of four concrete jobs. Once you name the job, the BSC answer is short.
1. Read a contract (eth_call). You want a token’s balance, decimals or a view function result. This needs no explorer at all — any node answers it. On BSC that is the public JSON-RPC.
2. Fetch a transaction or address as clean JSON. Status, fee, token transfers, a wallet’s holdings. Nodes give you raw receipts; an indexer gives you history. On BSC that means Binplorer (free key) or MegaNode (free plan).
3. Run an old Etherscan-style script. Code written for ?module=account&action=txlist worked on BscScan for years. That API is now Etherscan API V2 and BSC is paid-only there; the migration path BNB Chain recommends is BSCTrace via MegaNode. Our BNB Chain explorer API guide covers the move step by step.
4. Own the whole stack. You need unlimited queries, custom indexing or an explorer with your brand for an appchain. That is the only case where self-hosting Blockscout for BSC makes sense, and we cover it below.
Blockscout API anatomy: REST v2, /api and /api/eth-rpc
Every Blockscout instance exposes three API layers side by side. The examples below run against the public Ethereum instance at eth.blockscout.com — we tested each one — and on your own BSC deployment you would simply swap the hostname. The full reference lives in the Blockscout documentation.
REST API v2 — the one the frontend uses
Resource-style JSON under /api/v2/. It is what the explorer UI itself calls, so anything you see on a page is available here: /api/v2/transactions/{hash}, /api/v2/addresses/{address}, /api/v2/addresses/{address}/token-balances, /api/v2/tokens/{address}, /api/v2/smart-contracts/{address}, /api/v2/search?q= and /api/v2/stats.
curl -s "https://eth.blockscout.com/api/v2/tokens/0xdAC17F958D2ee523a2206206994597C13D831ec7"
{"address_hash":"0xdAC17F958D2ee523a2206206994597C13D831ec7",
"decimals":"6","holders_count":"17072299","name":"Tether",
"symbol":"USDT","type":"ERC-20", ... } Responses are paginated with a next_page_params object that you pass back as query parameters. Anonymous requests on hosted instances are rate-limited; the headers we got back advertised x-ratelimit-limit: 10.
Etherscan-compatible RPC API — /api?module=…
The same module/action query style Etherscan and BscScan made famous, kept so that old scripts keep working. account, contract, transaction, block, logs, token and stats modules are supported.
curl -s "https://eth.blockscout.com/api?module=account&action=balance&address=0xdAC17F958D2ee523a2206206994597C13D831ec7"
{"message":"OK","result":"42","status":"1"}
curl -s "https://eth.blockscout.com/api?module=transaction&action=gettxreceiptstatus&txhash=0xc79104db9b475903d6945193c6551101cbc1e322f259c486cf08ca3aacde8725"
{"message":"OK","result":{"status":"1"},"status":"1"} ETH JSON-RPC proxy — /api/eth-rpc
A POST endpoint that speaks plain Ethereum JSON-RPC: eth_blockNumber, eth_getBalance, eth_call, eth_getLogs, eth_getTransactionReceipt and friends, including batches. This is the piece people mean by “Blockscout eth_call”.
curl -s -X POST https://eth.blockscout.com/api/eth-rpc \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_call",
"params":[{"to":"0xdAC17F958D2ee523a2206206994597C13D831ec7","data":"0x313ce567"},"latest"]}'
{"jsonrpc":"2.0","result":"0x0000...0006","id":1} # decimals() = 6 on Ethereum Keep that result in mind: Tether on Ethereum has 6 decimals. On BNB Smart Chain it has 18, which is exactly the kind of difference that breaks code copied from an Ethereum Blockscout tutorial.
The same calls on BNB Smart Chain, without a key
Here is how each Blockscout capability maps to a service that works on BSC mainnet right now. The first three need no account at all.
| Job | Blockscout | BSC today | Key? |
|---|---|---|---|
| Contract read | /api/eth-rpc eth_call | Public JSON-RPC | No |
| Tx receipt, block, balance | /api/v2/transactions | Public JSON-RPC | No |
| Token info, holdings, history | /api/v2/addresses | Binplorer freekey | No |
| Token risk flags | — | GoPlus token_security | No |
| Transfers, holders, logs | /api?module=account | MegaNode nr_* | Free key |
| Verified source / ABI | /api/v2/smart-contracts | Etherscan V2 getabi | Free key |
The eth_call that Blockscout proxies is identical on a BNB Chain node. This reads USDT’s decimals() on BSC mainnet:
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":1,"result":"0x0000...0012"} # 0x12 = 18 decimals on BSC For the “give me the transaction as JSON” job, Binplorer — built by the Ethplorer team — returns a decoded view with the transfer already parsed:
curl -s "https://api.binplorer.com/getTxInfo/0x596be466441dca5c43bff1e90aff65ad19d259e1713c408222ef4cb73700e17a?apiKey=freekey"
{"hash":"0x596b...e17a","blockNumber":123772659,"success":true,
"gasUsed":34515,"gasPrice":"100000000","methodId":"0xa9059cbb",
"functionName":"transfer(address,uint256)","operations":[ ... ]} What is missing compared with a full Blockscout instance? Two things. First, the official public nodes disable eth_getLogs (they answer “limit exceeded”), so scanning events needs a provider like PublicNode for small ranges or MegaNode for real volume. Second, internal transactions and traces need an archive node with tracing, which only paid or self-hosted infrastructure offers. For log-heavy workloads, BNB Chain’s RPC documentation itself recommends third-party providers or WebSocket subscriptions, and verified source code lives on BscScan and BSCTrace rather than on any node. Every endpoint, limit and pricing tier is compared in detail in our explorer API and RPC guide.
Reading is free. Writing costs gas.
Deploying or calling a contract on BSC needs a few cents of BNB. Top up from a licensed exchange.
How to self-host Blockscout for BNB Smart Chain
If you genuinely need your own BSC Blockscout — unlimited API calls, custom indexing, private analytics — it is doable. It is also a serious infrastructure project, and most of the effort goes into the node, not the explorer.
1. An archive node with tracing
Blockscout’s documentation is blunt: it needs a full archive node to import every state change for every address. It also calls eth_getLogs, which the public endpoints block, and either debug_traceBlockByNumber / debug_traceTransaction with callTracer (geth variant) or the trace_* namespace (erigon variant) for internal transactions. The docs target response times under 0.5 seconds for block and receipt calls and plan for roughly 200 requests per second while catching up. The public BSC endpoints allow 10,000 requests per five minutes — about 33 per second — so they cannot feed an indexer.
On the node side, things changed recently. NodeReal’s BSC-Erigon, long the standard archive client, reached end of life on 31 December 2025, and its repository now tells operators to migrate to Reth-BSC. The Reth-BSC README listed about 10.6 TB of disk for a mainnet node synced to the tip as of September 2025, and 800 GB for testnet. BNB Chain’s archive node page asks for 64 GB of RAM or more and fast NVMe storage. Enable the eth, net, web3, txpool, debug and trace RPC namespaces.
2. The Blockscout stack
The official recommendation for a production instance is a 16-core, 32-thread server with 128 GB of RAM, plus PostgreSQL 14 or newer. Storage is the scary number: Blockscout’s own estimate for indexing Ethereum mainnet is about 21,000 GiB of database. BSC has produced over 123 million blocks — a new one every 0.45 seconds since the Fermi hard fork, roughly 192,000 a day — and carries far more transactions than Ethereum, so plan for at least the same order of magnitude. The simplest start is the repository’s Docker Compose setup, which brings up Postgres, Redis, the backend, the frontend, an Nginx proxy and the Rust microservices:
git clone https://github.com/blockscout/blockscout.git
cd blockscout/docker-compose
docker compose -f geth.yml up -d # or erigon.yml, depending on your node's trace API 3. Point it at BSC
Configuration is all environment variables. These are the ones that matter for BNB Smart Chain; names and defaults are from the backend and frontend references at docs.blockscout.com.
# docker-compose/envs/common-blockscout.env (backend)
CHAIN_ID=56
COIN=BNB
COIN_NAME=BNB
ETHEREUM_JSONRPC_VARIANT=geth # erigon if your node only exposes trace_*
ETHEREUM_JSONRPC_HTTP_URL=http://bsc-archive:8545/
ETHEREUM_JSONRPC_TRACE_URL=http://bsc-archive:8545/
ETHEREUM_JSONRPC_WS_URL=ws://bsc-archive:8546/
DATABASE_URL=postgresql://blockscout:CHANGE_ME@db:5432/blockscout
SECRET_KEY_BASE=paste-the-output-of-mix-phx.gen.secret
# optional: start indexing from a recent block to save disk
# FIRST_BLOCK=120000000
# docker-compose/envs/common-frontend.env (frontend)
NEXT_PUBLIC_NETWORK_NAME=BNB Smart Chain
NEXT_PUBLIC_NETWORK_SHORT_NAME=BSC
NEXT_PUBLIC_NETWORK_ID=56
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=BNB
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=BNB
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_RPC_URL=https://bsc-dataseed.bnbchain.org
NEXT_PUBLIC_IS_TESTNET=false A few BSC-specific notes. ETHEREUM_JSONRPC_VARIANT defaults to geth, which matches BNB Chain’s geth-based client and uses debug_trace*; Blockscout’s docs suggest the erigon variant for Reth-style nodes that expose trace_*, so match it to what your node actually answers. COIN=BNB tells Blockscout which CoinGecko price to show on charts and balances. If you do not need full history, FIRST_BLOCK makes the catch-up indexer start from a recent block and saves terabytes, and INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=true removes the heaviest tracing load at the cost of internal transactions.
Is a self-hosted BSC Blockscout worth it?
For most teams, no. Add up a 10 TB-plus archive node, a database server with tens of terabytes of NVMe, the weeks of initial sync and indexing, and someone on call when the indexer falls behind a 0.45-second chain. That is thousands of dollars a month before you serve a single request. MegaNode’s free plan gives you indexed history and archive reads for $0, and its Growth plan costs about $31 a month on annual billing.
It does make sense in three situations. Data companies that need unlimited, low-latency queries across full BSC history. Compliance and forensics teams that must keep data in-house. And appchain or rollup builders in the BNB ecosystem — on opBNB’s OP Stack, for instance — who need an explorer for their own chain anyway; the opBNB and Greenfield explorer overview shows what already exists there.
Everyone else is better served by the tools that already read BSC well. BscScan has the deepest labels and contract tools, BSCTrace has the free API, and the BscScan alternatives page lists backups for when either is down. For quick checks, paste a hash or address into our on-site BSC explorer: it uses the same public RPC, Binplorer and GoPlus calls shown above, entirely in your browser.