Ethereum transactions are the lifeblood of the network, enabling users to transfer value, deploy smart contracts, and interact with decentralized applications. At their core, transactions are cryptographically signed instructions initiated by externally-owned accounts (EOAs) that trigger state changes across the Ethereum blockchain.
This guide breaks down everything you need to know about Ethereum transactions—from their structure and types to gas mechanics and lifecycle—so you can navigate the ecosystem with confidence.
What Is an Ethereum Transaction?
An Ethereum transaction is a state-changing action initiated by an externally-owned account, typically controlled by a human user. For example, when Alice sends 1 ETH to Bob, a transaction is created that debits Alice’s account and credits Bob’s. This change must be validated and recorded on the blockchain.
Transactions are broadcast across the network and executed within the Ethereum Virtual Machine (EVM). Any node can submit a transaction request, but only validators—through consensus—can include it in a block and finalize the state update.
All transactions require a fee (paid in ETH) and must be included in a confirmed block to take effect. While gas fees and validation processes are complex topics on their own, they play a crucial role in securing the network and preventing spam.
👉 Learn how blockchain transactions work in real time with powerful tools.
Anatomy of a Transaction
Every Ethereum transaction contains specific fields that define its behavior and ensure security:
from– The sender’s address (must be an EOA; smart contracts cannot initiate transactions).to– The recipient address. If this points to an EOA, it’s a simple value transfer. If it’s a contract, the transaction will execute code.nonce– A sequential counter ensuring each transaction is processed only once per account.value– The amount of ETH to send, measured in wei (1 ETH = 10¹⁸ wei).gasLimit– The maximum gas units the transaction can consume.maxFeePerGas– The highest total fee per gas unit the sender is willing to pay.maxPriorityFeePerGas– The tip offered to validators for faster inclusion.input data– Optional field used for sending messages or calling smart contract functions.signature– Cryptographic proof generated using the sender’s private key, verifying authenticity.
Here's what a basic transaction object looks like:
{
"from": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
"to": "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
"gasLimit": "21000",
"maxFeePerGas": "300",
"maxPriorityFeePerGas": "10",
"nonce": "0",
"value": "10000000000"
}Before being accepted by the network, this object must be signed with the sender’s private key. Tools like Geth handle signing automatically via JSON-RPC calls.
Once signed, the transaction gets a unique hash and enters the mempool—a pool of pending transactions waiting for validation.
The Data Field: Interacting With Smart Contracts
Most Ethereum transactions involve smart contracts written in Solidity. These interactions rely heavily on the input data field, which follows the Application Binary Interface (ABI) specification.
The first four bytes of the data field represent the function selector, derived from the Keccak-256 hash of the function signature (e.g., transfer(address,uint256) → 0xa9059cbb). You can look up these selectors using public databases like 4byte.directory.
The remaining data encodes function parameters—such as recipient addresses and amounts—in padded 32-byte format.
For instance, in a token transfer:
- Address
4f6742badb049791cd9a37ea913f2bac38d01279appears as0000000000000000000000004f67... - Value
990206452appears as0x3b0559f4
This structured encoding allows contracts to correctly parse and execute user requests.
Types of Ethereum Transactions
There are three primary types of transactions on Ethereum:
1. Regular Transactions
Simple transfers of ETH between EOAs (e.g., Alice sending ETH to Bob).
2. Contract Deployment Transactions
These have no to address. Instead, the data field contains compiled contract bytecode. Once mined, a new contract address is generated.
3. Smart Contract Execution
A transaction sent to an existing contract address triggers a function call based on the input data. This powers DeFi platforms, NFT mints, and DAO governance actions.
How Gas Works in Ethereum Transactions
All computational operations on Ethereum require gas, a unit measuring resource usage. Users pay for gas in ETH, with costs depending on network demand.
A standard ETH transfer uses 21,000 gas units. Using EIP-1559 pricing:
Total Fee = gasLimit × maxFeePerGas
Validator Tip = gasLimit × maxPriorityFeePerGas
Burned Base Fee = gasLimit × baseFeePerGasFor example, sending 1 ETH with:
baseFeePerGas: 190 gweimaxPriorityFeePerGas: 10 gweigasLimit: 21,000
Results in:
(190 + 10) × 21,000 = 4,200,000 gwei = 0.0042 ETHSo the sender pays 1.0042 ETH total (1 ETH recipient + 0.0042 ETH fees). Of that:
- ~0.00399 ETH is burned
- ~0.00021 ETH goes to the validator as tip
Unused gas is refunded automatically.
👉 See real-time gas rates and optimize your transaction timing.
Smart Contract Interactions and Gas
Calling state-changing functions on smart contracts always requires gas. However, reading data via view or pure functions does not—when accessed externally through eth_call. These read-only operations don’t alter blockchain state and thus avoid fees.
Internally, though (e.g., one contract calling another), even view functions consume gas due to computational overhead.
Transaction Lifecycle: From Submission to Finality
Once submitted, a transaction goes through several stages:
- Hash Generation: A unique cryptographic hash (e.g.,
0x97d...ff017) is created. - Broadcasting: The transaction enters the mempool for validator pickup.
- Inclusion: A validator includes it in a block during consensus.
- Justification & Finalization: Under Proof-of-Stake, blocks go from proposed → justified → finalized. Finalization means irreversible consensus—reversing it would cost billions in attack capital.
Finality ensures long-term security and trustless verification.
Typed Transaction Envelope (EIP-2718)
Ethereum supports multiple transaction formats through EIP-2718, which defines transactions as:
TransactionType || TransactionPayloadThis enables backward compatibility while introducing new features:
Type 0 – Legacy Transactions
Original format without EIP-1559 support. Identified by RLP prefix 0xf8.
Type 1 – Access List Transactions (EIP-2930)
Introduced in the Berlin Upgrade. Includes an accessList to pre-specify contract addresses/storage keys, reducing gas volatility. Starts with byte 0x01.
Type 2 – EIP-1559 Transactions
Now the standard format (London Upgrade). Features predictable pricing via maxFeePerGas and maxPriorityFeePerGas. Starts with 0x02.
Type 2 transactions dominate today due to better fee control and efficiency during high congestion.
Frequently Asked Questions
What happens if my transaction fails?
Failed transactions still consume gas because computational resources were used. The gas fee is paid to validators, but no value is transferred.
Can I cancel a pending transaction?
No—but you can replace it by resubmitting with the same nonce and higher gas fees, effectively overriding the original.
Why do some transactions cost more gas than others?
Complexity matters. Simple transfers use 21k gas; interacting with DeFi protocols may use hundreds of thousands due to computation and storage changes.
How do I check my transaction status?
Use block explorers like Etherscan. Enter your transaction hash to see confirmation progress, gas used, and execution details.
Do all transactions require gas?
Yes—all state-changing operations require gas. Only external reads (eth_call) are free.
What is a nonce, and why does it matter?
The nonce prevents replay attacks by ensuring transactions execute in order. Each transaction from an account must have a unique, incrementing nonce.
👉 Start exploring Ethereum transactions with advanced analytics and tools.