Anatomy of an Ethereum Transaction
Smart Contracts
• ~12 min read
• Updated: 08/08/2025
1) Transaction basics
In Ethereum, a transaction is a signed instruction from one account to another. It can:
- Transfer ETH between accounts
- Deploy a new smart contract
- Call a function on an existing smart contract
Transactions are broadcast to the network, verified by validators, and permanently recorded on the blockchain.
2) Nonce
The nonce is the transaction count from the sender’s account. It ensures each transaction is unique and prevents replay attacks.
If your account has sent 5 transactions, your next one will have nonce 5.
3) Gas limit & gas price
Gas limit = the maximum units of gas you’re willing to use.
Gas price (or maxFeePerGas
in EIP-1559) = how much you’re willing to pay per unit.
Total fee = gasUsed × gasPrice
. Unused gas is refunded.
4) To address & value
- To: The recipient’s address (EOA or contract). For contract creation, this field is empty.
- Value: Amount of ETH to transfer (in wei).
5) Calldata
Calldata is the encoded data sent to a smart contract function.
It includes the 4-byte function selector and the ABI-encoded parameters.
For example, calling transfer(address,uint256)
on an ERC-20 token includes the recipient address and amount in calldata.
6) Signature (v, r, s)
Transactions are authorized using ECDSA signatures, split into three values:
v = recovery id, r & s = cryptographic signature parts.
Only the account with the matching private key can produce a valid signature.
7) Transaction receipt
Once mined, the transaction produces a receipt containing:
- Status (success or failure)
- Gas used
- Logs (events emitted)
- Contract address (if deployed)
8) Further learning & resources
- Ethereum.org Transactions
- EIP-1559 : Fee market change for Ethereum.
- Solidity Docs : calldata, ABI encoding.
- Cyfrin Updraft : Advanced Ethereum dev training.
- Etherscan — inspect real transaction details.
DeFi & Staking Overview →