Back to Blog
How ToMarch 27, 2026 · 5 min read

How to Read an Ethereum Transaction: A Complete Breakdown

S
Sam
How to read an ethereum transaction illustration

What Is an Ethereum Transaction?

Every time you send ETH, swap a token on Uniswap, or mint an NFT, you're creating a transaction on the Ethereum blockchain. A transaction is a signed message from an externally owned account (EOA) that gets broadcast to the network and permanently recorded in a block.

Understanding how to read a transaction is one of the most valuable skills in Web3. Whether you're debugging a failed swap, tracing funds, or verifying a contract interaction, it all starts here.

Anatomy of a Transaction

Every Ethereum transaction contains these core fields:

  • Transaction Hash (txHash) — A unique 66-character identifier (e.g., 0x5c50…) that acts as the receipt for this specific transaction.
  • From — The sender's wallet address. This is always an EOA, not a contract.
  • To — The recipient. This can be a wallet address (simple transfer) or a smart contract address (contract interaction).
  • Value — The amount of ETH transferred. For pure contract calls with no ETH attached, this is 0.
  • Gas Price / Max Fee — How much the sender is willing to pay per unit of gas. After EIP-1559, this split into maxFeePerGas and maxPriorityFeePerGas.
  • Gas Used — The actual computational units consumed. A simple ETH transfer always uses exactly 21,000 gas.
  • Nonce — A sequential counter for the sender's address. The first transaction from a wallet has nonce 0, the second has nonce 1, and so on.
  • Input Data — The encoded function call and parameters when interacting with a smart contract. For simple transfers, this is 0x.

Transaction Status Codes

After a transaction is mined, it has one of two statuses:

  • Success (1) — The transaction executed without errors. Gas was consumed and state changes were applied.
  • Failed (0) — The transaction reverted. Gas was still consumed, but all state changes were rolled back. Common reasons include insufficient token allowance, slippage exceeding limits, or a require statement failing in the contract.

A common mistake is assuming a failed transaction costs nothing. You still pay gas for failed transactions — the network did the work of attempting to execute it.

Decoding Input Data

When a transaction interacts with a smart contract, the input data field contains the encoded function signature and parameters. The first 4 bytes (8 hex characters) represent the function selector — a hash of the function name and parameter types.

For example, the function selector 0xa9059cbb corresponds to transfer(address,uint256), the standard ERC-20 transfer function. The remaining bytes encode the destination address and the amount.

Tools like SharpBlock automatically decode this input data when the contract's ABI is available, showing you human-readable function names and parameters instead of raw hex.

Understanding Gas After EIP-1559

Since the London upgrade, Ethereum uses a dual fee structure:

  • Base Fee — Set by the network based on demand. This ETH is burned, permanently removed from circulation.
  • Priority Fee (Tip) — Goes directly to the validator as an incentive to include your transaction.

The total cost is: Gas Used × (Base Fee + Priority Fee). The maxFeePerGas field sets your ceiling — you'll never pay more than this per gas unit, and any difference is refunded.

Internal Transactions

When a smart contract calls another contract or sends ETH during execution, these are called internal transactions (or message calls). They don't have their own transaction hash — they exist within the parent transaction's execution trace.

Internal transactions are critical for understanding DeFi interactions. A single Uniswap swap might trigger dozens of internal calls across multiple contracts: the router, pair contracts, and token contracts all communicate during execution.

Practical Tips

  1. Always check the status first — Before analyzing anything else, confirm whether the transaction succeeded or failed.
  2. Compare gas used vs gas limit — If gas used equals the gas limit, the transaction likely ran out of gas.
  3. Look at token transfers — The "Token Transfers" section shows all ERC-20/721/1155 movements, making complex DeFi transactions easier to follow.
  4. Use the input data decoder — Decoded input data tells you exactly which function was called and with what parameters.