On-Chain Analysis

How to Read a Blockchain Transaction (And What Most People Completely Miss)

Everyone in crypto talks about "on-chain data." Very few people actually know how to read it.

IgnizIgniz Research
11 min read
Cover image for the article "How to Read a Blockchain Transaction (And What Most People Completely Miss)"

Everyone in crypto talks about "on-chain data." Very few people actually know how to read it.

Not because it is complicated. Because nobody ever sat down and explained what you are actually looking at when you open a transaction hash. So you see a wall of numbers and addresses and feel like it is meant for developers only.

It is not. And once you understand the anatomy of a transaction, you will never look at the market the same way again.

Start Here: What a Transaction Actually Is

A blockchain transaction is a record of a state change. That is the most precise way to put it.

Before the transaction: wallet A holds 5 ETH. After the transaction: wallet A holds 4 ETH, wallet B holds 1 more ETH than before.

The transaction is the permanent, public, immutable record of that change. It lives on every node running the network. Nobody can alter it. Nobody can delete it. It is there forever.

When you paste a transaction hash into Etherscan or Solscan or any block explorer, you are reading that record in a human-readable format. The raw version is just hexadecimal data. The explorer translates it into something a person can parse.

Here is what that record actually contains.

The Anatomy of a Transaction

Open any transaction on Etherscan and you will see the same core fields. Here is what each one means and why it matters.

Transaction Hash

The hash is a unique fingerprint of this specific transaction. It is generated by running the transaction data through a cryptographic function. Change even one character of the underlying data and you get a completely different hash. This is how the network knows the transaction has not been tampered with.

When someone says "check the tx" or "verify on-chain," they are telling you to look up this hash. It is your receipt.

Status

Success or Fail. Transactions can fail on Ethereum and still cost gas. This happens when the computation runs out of gas before it completes, or when a contract condition is not met. A failed transaction is still recorded on-chain because the network still had to process the attempt. If you see a wallet with many failed transactions, it often means they are running bots that are competing to land in the same block and losing most of the time.

Block

The block number tells you where in the chain this transaction was included. Each block is a batch of transactions processed together and sealed. The higher the block number, the more recently it occurred relative to the genesis block.

The number next to it, usually labeled as "confirmations," tells you how many blocks have been added after the one containing this transaction. More confirmations means the transaction is more deeply embedded in the chain and practically impossible to reverse. For large transfers, people wait for 12 to 30 confirmations before considering finality secured.

Timestamp

The exact time the block was mined. This is critical for on-chain research. If you are trying to understand whether a wallet bought before or after a specific announcement, the timestamp tells you definitively. There is no "I bought before the news" argument that holds up against a timestamp showing a buy 20 minutes after the news hit.

From and To

The From address is the wallet initiating the transaction and paying gas. The To address is either a recipient wallet or a smart contract address.

This distinction matters. If the To address is a regular wallet, you are probably looking at a direct transfer. If the To address is a contract, the transaction is calling a function on that contract. Etherscan will often label known contracts automatically, so you will see "Uniswap V3: Router" or "Lido: stETH Token" instead of a raw address.

If the To field is blank or shows contract creation, you are looking at the deployment of a new smart contract. Finding early contract deployments from interesting wallets can lead you to projects before they are public.

Value

The raw ETH (or native token) value transferred in this transaction. Important note: this field does not capture ERC-20 token transfers. If someone sends USDC or swaps tokens on a DEX, the Value field often shows 0 ETH because the actual value moved is tracked inside the contract logic, not at the native layer.

This trips up beginners constantly. They look at a transaction, see 0 ETH, and assume nothing significant happened. Then they miss a $2 million USDC transfer hidden in the token logs.

Transaction Fee

Gas price multiplied by gas used. This is what the sender paid to have their transaction included in the block. During periods of high network congestion, gas fees spike because users are outbidding each other for limited block space.

High gas fees from a specific wallet during a specific period are a signal. If a wallet paid 10x the average gas fee to get their transaction into the next block, they considered the timing critical. That urgency is data.

Gas Price and Gas Limit

Gas price is what the sender offered to pay per unit of computation. Gas limit is the maximum units they authorized the transaction to consume. If actual gas used stays well below the gas limit, the sender was being conservative. If it hits close to the limit, the contract execution was more expensive than expected.

Advanced users set these manually to control both cost and priority. Bots and MEV searchers often set extremely precise gas prices to land at specific positions within a block.

The Part Nobody Reads: Token Transfers and Logs

This is where the real information lives, and most people scroll past it.

Token Transfers Tab

Below the main transaction details on Etherscan, you will find a Token Transfers section. This shows every ERC-20 token that moved as a result of this transaction. A single swap on Uniswap might involve four or five token transfers: the input token going in, intermediate tokens routing through liquidity pools, and the output token arriving in your wallet.

Reading this section tells you exactly what happened at the asset level, not just the native coin level. It is the difference between knowing someone interacted with a contract and knowing what they actually did.

Internal Transactions

Some transactions trigger additional transactions between contracts, called internal transactions. These are not initiated by a user directly but happen as a result of contract logic calling other contracts.

An example: you call a yield aggregator contract. That contract internally calls a lending protocol, which internally calls an oracle, which internally calls a price feed. Each of those internal calls can move value, change state, and emit logs. If you only read the top-level transaction, you are seeing the tip of the iceberg.

The Internal Transactions tab on Etherscan shows these calls. For DeFi research, this is essential reading.

Logs and Event Data

Every time a smart contract executes a meaningful action, it emits an event. These events are stored in the transaction logs. They are how applications (and humans doing research) know what happened inside the contract.

Logs have a Topic (the event type) and Data (the values associated with that event). A token transfer event, for example, logs the sender address, the recipient address, and the amount transferred. An approval event logs which address was approved to spend which amount of which token.

Reading raw logs requires knowing the ABI (the contract's function and event definitions), but Etherscan decodes them for verified contracts. Look for the Logs tab and you will see human-readable event names like Transfer, Swap, Deposit, or Withdraw alongside the values.

When you see a large transaction and want to understand exactly what changed, read the logs from top to bottom. They tell the story of the transaction in sequence.

How to Trace a Wallet's Full Story

A single transaction is rarely interesting on its own. The pattern across many transactions is where the story emerges.

When you land on a wallet address (not a transaction hash), Etherscan shows you the full transaction history. Here is how to read it usefully.

Sort by value descending. See what the largest transactions were and when they happened. This tells you about conviction: when did this wallet deploy serious capital, and into what?

Look at the first transaction. When was this wallet created? Where did the funding come from? If the first transaction is a receive from a known exchange withdrawal address, this is likely a retail wallet. If the funding came from Tornado Cash or a chain bridge with no clear origin, that is a different kind of signal.

Look at the most recent activity. Is this wallet actively transacting or dormant? Dormant wallets that suddenly activate are worth watching. Wallets that have been consistently active for three years and suddenly go quiet are also worth noting.

Check what contracts they interact with. A wallet that has been using Aave, Compound, and Curve for two years is a different type of actor than a wallet that only ever interacted with meme token contracts on launch days. Contract interaction history reveals sophistication and strategy.

Look for patterns in timing. Do their large buys cluster around specific times of day, specific days of the week, or specific market conditions? Consistent timing can indicate algorithmic activity or disciplined manual strategy.

Reading a DeFi Transaction vs. a Simple Transfer

A direct ETH transfer is the simplest transaction to read. Wallet A sends X ETH to Wallet B. Three fields and you are done.

A DeFi transaction is a different animal entirely. Let's walk through what happens when someone swaps tokens on a DEX.

You initiate a swap: send USDC, receive ETH.

What actually happens on-chain:

Your wallet calls the router contract's swap function with your input amount, the token path, and your minimum output amount. The router identifies the best liquidity pool for this pair. Your USDC transfers from your wallet to the liquidity pool contract. The pool calculates how much ETH to send back based on the constant product formula and the current pool reserves. ETH transfers from the pool contract to your wallet. The pool emits a Swap event recording the input amount, output amount, and updated reserves. Your wallet receives the ETH. The transaction closes.

All of this shows up in the logs. The token transfer section shows two transfers: USDC out, ETH in. The logs show the Swap event with the exact amounts and the pool address.

Now imagine this same swap but routed through three pools because there was no direct USDC/ETH pool with good liquidity. You would see five or six token transfers, three Swap events, and internal transactions between the router and each pool. The final result is the same: USDC out, ETH in. But the path to get there is more complex.

Understanding this complexity matters when you are trying to figure out what a large wallet was actually doing. A multi-hop swap through obscure pools might look strange on the surface but be completely normal routing. Or it might be deliberate obfuscation. The logs tell you which.

The Information Edge You Get From Reading Transactions

Here is the practical application of everything above.

Verify before you trust. Any time someone claims a wallet bought X amount of Y token, look it up yourself. The hash does not lie. The screenshot might.

Find early positioning. If a new protocol launches and you want to know if sophisticated wallets were in before the public announcement, check when the earliest transactions with that contract occurred. The timestamp is immutable. You can see who was early and how early.

Understand distribution events. When a token has a large price drop on no obvious news, check on-chain. Did a whale just unlock and sell a vesting tranche? Did the team wallet just move tokens to an exchange? The transaction data often explains price moves that look mysterious on the chart.

Spot unusual behavior before it is obvious. A wallet that has been passively holding for 14 months suddenly wakes up and starts sweeping small amounts of a specific token across 20 wallets. Something changed. Understanding what requires more research, but the on-chain data told you to pay attention.

Audit contract interactions. Before interacting with a new contract yourself, look at what other wallets' interactions with that contract look like. If every interaction results in an Approve event followed immediately by a Transfer out to an unknown address, you may be looking at an approval drain exploit in action.

The Limitations You Need to Know

On-chain data is transparent. It is not complete.

You can see every transaction. You cannot see the intent behind it. You can see that a whale sold 10,000 ETH. You cannot see that they sold because they needed liquidity for an off-chain real estate purchase and remain extremely long-term bullish on ETH. You can see the what. You cannot always see the why.

Wallets can also be structured to mislead. A sophisticated actor might move assets through multiple wallets, mix through privacy tools, or use coordinated timing to disguise the real origin or destination of capital. What you see on-chain is accurate, but it may be showing you one leg of a larger strategy you cannot fully observe.

The other limitation is cross-chain. If a wallet bridges from Ethereum to Solana to Arbitrum to Base, each chain has its own explorer and its own transaction history. No single tool gives you a seamless view across all of them, though bridge aggregators and tools like Arkham are narrowing this gap.

Where to Go Deeper

Once you are comfortable reading individual transactions, the next layer is querying at scale. Tools like Dune Analytics let you write SQL queries against indexed blockchain data, so instead of reading one transaction at a time you can ask questions like "show me all wallets that bought this token within 48 hours of its first liquidity event and still hold it today."

That kind of query turns individual transaction literacy into systematic on-chain research.

But it starts here. With one hash. Open an explorer, paste in a transaction from your own history, and read every field. Know exactly what happened. Do it again with a transaction you did not initiate. Then do it with a complex DeFi interaction.

The blockchain is the most transparent financial ledger ever created. Most people who use it every day have never actually read it.

Now you can.

This article is for educational purposes only. Nothing here constitutes financial advice.

Cover image for the article "The Number Everyone Quotes and the Number That Actually Matters"
On-Chain Analysis

The Number Everyone Quotes and the Number That Actually Matters

Most people in crypto look at market cap the same way someone looks at a restaurant's Yelp rating before deciding to eat there. It gives you a feeling. It tells you something. But it is not the full picture, and betting real money on a feeling is how portfolios quietly bleed out.

Igniz

Stay up to date with Igniz and the future of trading.