Why Solana needs a specialist explorer
On Bitcoin a transaction moves value from inputs to outputs. On Ethereum it is a call from one address to another, possibly triggering further internal calls. Both are conceptually simple enough that a naive explorer produces something readable.
Solana is structurally different. A transaction carries a list of instructions, each naming a program to invoke and the accounts that program may read or write. A single swap might contain eight instructions across four programs: create a token account, approve a delegate, invoke the exchange program, which internally invokes two liquidity pools, then close the temporary account. All atomic, all one transaction.
Show that raw and you get a wall of base58 addresses and byte arrays. It is technically complete and practically useless. The entire value of a Solana explorer is in decoding — knowing that program TokenkegQfe... is the SPL Token program, that this instruction is a transfer, that the mint has six decimals so the raw integer means what it means.
Solscan maintains that decoding layer across the major programs, and keeps it current as new ones appear. That is unglamorous, continuous work, and it is the product.
Failed transactions, which Solana has a lot of
This deserves its own section because it surprises people arriving from other chains.
On Solana, failed transactions are recorded on chain and cost a fee. During busy periods a meaningful share of submitted transactions fail — slippage exceeded, an account state changed underneath, compute budget exhausted. Your wallet may simply say "transaction failed" and leave you to work out why.
Solscan shows the failure properly: which instruction failed, which program returned the error, and the error code with a decoded meaning where it has one. For the common cases — custom program error 6001 on a swap is usually slippage, compute budget exceeded means the transaction needed more compute units than it requested — that turns an opaque failure into something actionable.
The practical upshot is that a failed Solana transaction is normal rather than alarming, and the fee is small. What you must not do is assume failure means the funds moved and got stuck. On Solana the transaction is atomic: if it failed, nothing in it happened except the fee.
Tokens, accounts and the thing that confuses everyone
Solana's account model catches out almost every newcomer, and it is worth understanding before you read a Solscan page.
Your wallet address does not hold your USDC. It owns a separate associated token account, which holds it. One wallet with five different tokens has five token accounts, each a distinct on-chain address with its own rent-exempt balance.
This means an address page has to show two different things: the SOL balance held by the wallet itself, and the token balances held by accounts it owns. Solscan handles this clearly, and it also explains the rent mechanic — every account must hold a minimum SOL balance to stay alive, which is why creating a token account costs a small amount you get back when you close it.
The NFT handling is also stronger than the competition, including compressed NFTs, which live in a Merkle tree rather than as individual accounts and which a naive explorer will simply not show at all.
From our testing
We ran a failed Jupiter swap through three Solana explorers. Solscan named the failing inner instruction and gave the decoded error. The official explorer showed the same data with less interpretation, which was still enough to diagnose. The third showed "failed" and nothing further. The gap between the first two is convenience; the gap to the third is the difference between solving it and not.
The API situation
Solscan's Pro API requires a key and is metered. Some public endpoints remain, but they are limited and not a foundation to build on.
The alternative for developers is to skip explorer APIs entirely and use Solana JSON-RPC directly. The public mainnet endpoint at api.mainnet-beta.solana.com works without a key — we verified it — and returns epoch, slot, account and transaction data:
curl -X POST https://api.mainnet-beta.solana.com \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"getEpochInfo"}'
It is heavily throttled and not suitable for production, but for a status widget or occasional lookup it is free and needs nothing. The catch is that raw RPC gives you no decoding — you get the instruction bundle in its unhelpful form, and reproducing Solscan's interpretation is the hard part. That is precisely what you are paying for. Our API comparison covers the options.
Solscan or the official explorer?
The Solana Explorer at explorer.solana.com is open source, maintained by the Solana Foundation, and does one thing Solscan cannot: you can point it at any RPC endpoint, including a local validator.
For development that is decisive. Testing against localnet or a private cluster means Solscan is simply not an option, while the official explorer works by changing a dropdown. It also means no third party learns what you are looking at.
For everything else, Solscan's decoding is richer, the token views are better, and the NFT support is not close. Most people should use Solscan and keep the official explorer for development and for a second opinion when something looks odd.