Building a blockchain explorer

A blockchain explorer is an index over chain data, and building a general one is a database problem rather than a web problem, which is why the version worth building is usually narrow: the addresses you care about, the tokens you hold, and whether a particular transaction landed.

The public explorers index an entire chain. If that is what you need, use one. This is about the narrower thing most people are actually after, and what it takes to read a chain honestly.

Add as a preferred source on Google

Start from a working app

Aetherium

a multichain wallet dashboard showing your real on-chain balance across Ethereum and Base, with a live prices board.

Open the template

What an explorer is, under the interface

Every block is fetched, decoded, stored and indexed so that it can be queried by address, by token, by program. The interface is the easy part. The hard part is keeping an index of a chain that never stops growing, reorganises occasionally, and encodes its contents differently depending on which program wrote them. That is a data pipeline, and it is why a handful of explorers serve almost everyone.

The version most people actually want

Ask what question the explorer is for and it usually collapses to something small: what does this wallet hold, did that payment arrive, how much of this token is left. None of those need an index of the whole chain. They need a few calls about a few addresses, which is a weekend rather than a quarter, and the result is more useful because it answers one question instead of presenting everything.

Reading a chain from a published app

Chain data comes from an RPC endpoint, and the public ones rate limit by origin and will refuse a busy page. That is survivable, but the fix people reach for is not: putting a paid endpoint into the front-end code, where it is a public key the moment it ships. Reading through a server you control keeps the endpoint out of the bundle and means your users are not sharing one public quota with everyone else who copied the same snippet.

Two states that look identical and mean opposite things

A transaction that has not landed yet and a transaction that never existed both read as pending. So does a signature somebody typed wrong. Checked against our own relay while writing this page: an invented signature comes back pending, confirmed false, failed false, which is exactly what a real transaction looks like in its first seconds. The distinction that matters to a person watching a spinner is between waiting and gone, and the chain will not tell you which without a timeout of your own.

Failed is not the same as missing either

A transaction can land, be included in a block, and still have failed, which means the fee was paid and nothing else happened. An explorer that shows only whether something was confirmed will report that as a success. If your app does anything after a transaction, it has to read the failure flag separately, and a person who has just paid a fee for nothing deserves a sentence that says so rather than a green tick.

What you can read here without a key

Balances for any address, including SOL, USDC and tokenised equities with each mint resolved back to its ticker, and the status of any transaction signature. Both are read-only, both work without credentials, and neither can move anything, because an address is public information and reading it is not a permission. The table below is a different market feed answering while this page was served, on the same relay.

Live, right now, on this page

MarketPriceFunding24h volume
BTC$86,364.500.0013%$522,866,341
ETH$2,750.850.0013%$301,603,802
SOL$118.010.0013%$94,709,358
HYPE$96.970.0013%$3,938,323

Read from a live market as this page rendered, through the same keyless relay the chain reads use. Read at 2026-09-23 02:12 UTC; accurate as of that time and not afterwards.

Start from a working app

Family Office preview

Open, change it, publish your own

Family Office

watches any set of public addresses and shows real on-chain balances, priced and rolled up per person, read-only with no custody.

Open the template

Working templates built around what this page covers. Open one, change it, and publish your own.

Or describe your own and watch it get built.

Common questions

Can I build a blockchain explorer without running a node?

Yes, for the narrow version. Reading balances for an address or the status of one transaction is a few RPC calls, and no index of your own. What you cannot do without your own infrastructure is the general case, searching the whole chain by arbitrary criteria, because that needs every block decoded and stored before the question is asked.

Why does my transaction show as pending when it does not exist?

Because the chain cannot tell you the difference. A signature that has not landed yet, one that was mistyped, and one that was never submitted all read the same way: pending, not confirmed, not failed. Checked against our own relay while writing this page. If your app needs to say gone rather than waiting, that decision is a timeout you choose, not a fact the chain supplies.

What is the difference between an explorer and a portfolio tracker?

An explorer answers questions about the chain, and a tracker answers questions about you. The tracker is usually the one people want: it starts from your addresses, prices what it finds, and shows a total. It needs far less data than an explorer and it answers the question that prompted the search, which is what a holding is worth rather than what a block contains.

Related reading

All guides · Live market pages · Components · Make Mithril a preferred source in Google