Transactions

A submitted transaction includes the following information:

  • recipient – the receiving address (if an EOA, the transaction will transfer value. If a contract account, the transaction will execute the contract code)

  • signature – the identifier of the sender. This is generated when the sender's private key signs the transaction and confirms the sender has authorized this transaction

  • nonce - a sequencially incrementing counter which indicates the transaction number from the account

  • value – amount of ETH (in wei) to transfer from sender to recipient

  • data – optional field to include arbitrary data

  • gasLimit – the maximum amount of gas units that can be consumed by the transaction

  • maxPriorityFeePerGas - the maximum amount of gas to be included as a tip to the validator

  • maxFeePerGas - the maximum amount of gas willing to be paid for the transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas)

Transaction Lifecycle

  1. Users initiate a transaction in their wallet, for example sending funds to another wallet, and sign the transaction with their private key.

  2. The signed transaction is broadcast to a node on the blockchain (Ethereum, Bitcoin, etc.)

  3. The node will check and validate the transaction, adding it to its mempool and broadcasting it to its peers.

  4. Each node that receives the transaction will do the same, replicating the transaction across the network.

  5. Some of these nodes will be mining nodes, which will add the transactions to a block and then compete to solve the hash of the block to be the one to add it to the blockchain.

  6. Once a miner is successful and the block of transactions is added to the chain, the new block is broadcast back across the network.

  7. All the nodes receive the new block and can see the included transactions. If they have any of those mined transactions stored in their mempool, they are removed.

Last updated