Anatomy of an Ethereum Transaction

Anatomy of an Ethereum Transaction

Intermediate
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

← ERC-20 vs ERC-721 vs ERC-1155
DeFi & Staking Overview →