Reading on-chain data
If you hold crypto, you have probably stared at a transaction hash on Etherscan and wondered what actually happened. The hash confirms the transaction was included in a block, but it tells you nothing about what the contract did with your funds, why the swap failed, or who controls the code you just interacted with.
On-chain data is the record of everything that has ever happened on a blockchain. It is public, permanent, and unforgiving. Every transfer, every approval, every reverted attempt is there for anyone to read. The problem is that most tools present this data in a way that assumes you already know what you are looking for.
This page maps the terrain of on-chain data reading: the tools, the errors, the decisions, and the misconceptions. Each section below introduces a specific problem or technique and hands off to a dedicated page that answers it completely.
Why transactions fail and how to read the reason
The most common reason people start digging into on-chain data is a failed transaction. Etherscan shows a red "Fail" badge, you lost gas, and the only message is "Reverted" or "Out of gas." That is not an explanation; it is a starting point.
Gas failures are the easiest to diagnose. If a transaction runs out of gas, the EVM stops executing and rolls back every change, but the gas already spent is gone. The page Why did my transaction fail with out of gas and how do I fix it walks through why the gas estimate was wrong and how to set a realistic limit.
Some failures come from the contract logic itself. A DEX trade that fails with "INSUFFICIENT_OUTPUT_AMOUNT" or "slippage exceeded" is the contract protecting you from a price change that happened between signing and execution. Why a DEX trade fails with slippage exceeded and how to fix it explains exactly what that error means and what to adjust.
Other errors look like gas problems but are not. "Insufficient funds for gas" appears even when you hold plenty of USDC or other tokens. That is because gas must be paid in the native coin (ETH on Ethereum, MATIC on Polygon, etc.). Insufficient funds for gas what it means and how to fix it fast covers the distinction between token balances and gas balances.
When Etherscan shows "Reverted" with no reason string, you need to dig deeper. The error might be a "PANIC: arithmetic underflow/overflow" or "SafeERC20: low-level call failed" visible only in the execution trace. How to find the reason a transaction reverted without an error message shows how to use Tenderly, Phalcon, or the block explorer's internal transaction view to extract the real cause.
Reading what a contract actually does
A verified contract on Etherscan shows source code, but that does not mean you can read the transaction input data without knowing the contract's ABI. When you see a long hex string in the "Input Data" field, it is encoded function parameters. How to decode any transaction input data using a contract ABI explains how to use Etherscan's decoder, Ethers.js, or Foundry's cast to turn that hex into readable values.
Events tell you what happened after the transaction executed. Every Transfer event, every Swap, every Approval is stored in the logs. But a single transaction can emit dozens of events from multiple contracts. How to find and filter event logs from a smart contract transaction shows how to isolate a specific event using topic filters on Etherscan or by querying logs directly.
Token transfers are particularly confusing because they do not always show up in the transaction value. If you send USDC, the transaction value on Etherscan is zero ETH. The actual movement happens through an internal transfer recorded in the ERC-20 contract's Transfer event. How to trace token transfers separately from native ETH transfers walks through reading token transfer logs and why Etherscan shows them in a separate "ERC-20 Tokens Transferred" section.
Internal transactions are even less obvious. A smart contract that forwards ETH to another address creates an internal transaction that is not a top-level transaction. How to read internal transactions on Etherscan and why they matter covers where that ETH goes when the main transaction shows zero value.
Controlling what you sign and what you approve
The most dangerous on-chain action is not a transfer; it is an approval. When you approve a contract to spend your tokens, you give it permission to move them later. That permission persists until you revoke it. How to check and revoke ERC-20 token approvals and allowances shows how to use Revoke.cash, Etherscan's token approvals tool, or DeBank to see every contract that can spend your tokens and remove the ones you do not trust.
Blind signing is worse. If you sign a transaction from an unverified contract, you have no way to know what it will do. How to simulate a transaction before signing to see what it does explains how to use Tenderly, Phalcon, or MetaMask's built-in simulation to see exactly what will happen to your balances before you confirm.
Some contracts are proxies. The code you see on Etherscan might be a proxy contract that delegates calls to an implementation contract that can be changed by an owner. How to check who controls a smart contract and spot a proxy covers how to use Etherscan's "Read as Proxy" feature, check the implementation address, and look for upgradeability patterns.
Choosing the right tool for the question
No single tool answers every on-chain question. Etherscan is the default for looking up a single transaction or address, but it is terrible for aggregating data across hundreds of wallets. Dune Analytics lets you write SQL queries across the entire chain. Dune Analytics vs Etherscan which tool should I use for what question maps the boundary: use Etherscan for one thing, use Dune for trends, sums, and dashboards.
For wallet labeling and entity identification, Nansen and Arkham Intelligence compete directly. Nansen tags wallets based on behaviour (experienced trader, exchange, miner). Arkham labels based on entity research and lets you trade Intel. Nansen vs Arkham Intelligence for wallet labeling and entity tracking compares their coverage, accuracy, and cost.
For protocol fundamentals, DefiLlama and Token Terminal serve different needs. DefiLlama tracks total value locked across chains. Token Terminal calculates revenue, fees, and valuation multiples. DefiLlama vs Token Terminal for checking a protocol's real fundamentals explains when to use each.
The free tier of Etherscan or Dune is enough for most individual lookups. But if you need real-time data, large query volumes, or labeled wallets, you hit rate limits quickly. Free block explorer vs paid analytics tools what you actually need helps you decide whether Nansen, Arkham, a premium Dune plan, or a paid RPC provider is worth the cost.
Stuck transactions and nonce management
A transaction that sits pending for hours is not lost; it is stuck because its nonce is too low. Every address has a nonce counter that increments with each transaction. If you send a transaction with nonce 5 and it does not confirm, you cannot send another transaction with nonce 5. How to fix a stuck pending transaction using nonce replacement covers how to cancel or speed up a stuck transaction by sending a new one with the same nonce and a higher gas price.
The errors "Nonce too low," "Nonce too high," "Replacement transaction underpriced," and "Transaction underpriced" all stem from the same nonce and gas price mechanics. The page explains each one and what to do when MetaMask shows them.
Where gas fees actually go
Gas fees do not go to MetaMask, Etherscan, or your wallet provider. They go to validators (or miners, depending on the chain's consensus mechanism). The base fee is burned on Ethereum and chains that follow EIP-1559; the priority fee (tip) goes to the validator. Where gas fees actually go and who gets paid when you transact breaks down the fee structure, explains why failed transactions still cost gas, and shows how to read gas usage from a transaction receipt.
Verifying tokens and avoiding scams
A token with a familiar name and a high price on a DEX is not necessarily the real token. Anyone can create a token with the same name and symbol as USDC or UNI. How to verify a token is real by checking its contract not its name shows how to check the contract address against CoinGecko, CoinMarketCap, or the project's official documentation, and how to spot spoofed explorers that show fake data.
The misconception "A verified contract means it is safe" is dangerous. Verification only proves that the deployed bytecode matches the source code. It does not mean the code is not malicious. A verified contract can still drain your wallet if you interact with it incorrectly.
Data availability and RPC choices
Every block explorer and analytics tool pulls data from an RPC node. If that node is down, censored, or lying, the data you see is unreliable. Using a block explorer vs running a personal node compares the tradeoffs: convenience and speed versus trustlessness and data completeness.
Infura and Alchemy provide free RPC tiers with request caps. If you exceed those caps, your queries fail. A personal node removes those limits but requires storage, bandwidth, and sync time. Archive data (historical state at any block) costs more from providers like Alchemy and is not available from free Infura tiers.
The Graph provides an alternative: indexed data served by subgraphs. The Graph vs direct RPC queries explains when a subgraph is faster and cheaper than querying the RPC directly, and when the subgraph's indexing delay or incomplete coverage makes it the wrong choice.
The risks of trusting what you see
On-chain data is true in the sense that it matches what was recorded in the block. But it is not complete, and it is not always what it appears to be.
"If Etherscan shows it, it must be true" is the most common misconception. Etherscan shows what was recorded, but it also shows labels and token names that can be spoofed. A transaction hash means the transaction was submitted and included in a block. It does not mean it succeeded, and it does not mean the outcome is what you expected.
"Tokens live in my wallet" is another. Tokens never leave the contract. Your wallet holds a pointer to a balance in the token contract. Deleting your wallet does not delete the tokens; it just loses the key that controls them.
"Failed transactions cost no gas" is false. Gas is consumed up to the point of failure. A transaction that reverts after using 50,000 gas costs 50,000 gas.
"Internal transactions are on-chain the same way as normal transactions" is also false. Internal transactions are not signed by the sender. They are side effects of contract execution recorded in the trace, not in the transaction trie. Some explorers show them, but they are not first-class on-chain objects.
The pillar and the spokes
This page surveys the whole subject of reading on-chain data. Each of the pages listed below answers one specific question completely. When you hit a problem that matches one of those titles, that is where the detailed answer lives.
- Why did my transaction fail with out of gas and how do I fix it
- How to decode any transaction input data using a contract ABI
- How to find and filter event logs from a smart contract transaction
- How to trace token transfers separately from native ETH transfers
- How to fix a stuck pending transaction using nonce replacement
- How to check and revoke ERC-20 token approvals and allowances
- How to simulate a transaction before signing to see what it does
- How to check who controls a smart contract and spot a proxy
- Dune Analytics vs Etherscan which tool should I use for what question
- Nansen vs Arkham Intelligence for wallet labeling and entity tracking
- DefiLlama vs Token Terminal for checking a protocol's real fundamentals
- Free block explorer vs paid analytics tools what you actually need
- Why a DEX trade fails with slippage exceeded and how to fix it
- Insufficient funds for gas what it means and how to fix it fast
- How to read internal transactions on Etherscan and why they matter
- How to verify a token is real by checking its contract not its name
- Where gas fees actually go and who gets paid when you transact
- How to find the reason a transaction reverted without an error message
Each of those pages assumes you have read this overview. They go deep into the mechanics, the tools, and the edge cases. Start here, then follow the handoff to the page that matches your question.
Not financial advice. basiliskawakens.xyz publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.
Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.