What actually happens when you press send
Most confusion later, stuck transactions, failed swaps, nonce errors, dissolves once you have watched a single transaction travel end to end.
Step one: your wallet builds a message
When you press send, nothing has left yet. Your wallet assembles a small message containing: where it is going, how much, which chain, how much you will pay in fees, and a number called the nonce.
The nonce is simply a counter of how many transactions your address has ever sent. Your first is 0, your second is 1, and so on. It exists to stop somebody copying a valid transaction and replaying it, and it forces your transactions to be processed strictly in order.
Step two: you sign it
Your wallet uses the private key to produce a signature over that exact message. The signature proves two things at once: that the holder of the key authorised it, and that not a single character has been altered since.
Change the amount by one unit after signing and the signature no longer matches. This is why a signed transaction cannot be tampered with in transit, and why signing is the moment that matters. Everything before it is a draft. Everything after it is out of your hands.
Step three: broadcast into the mempool
Your wallet sends the signed transaction to a node, which passes it to its neighbours, which pass it on. Within seconds most of the network has it. It now sits in the mempool, short for memory pool: a waiting room of transactions that are valid but not yet in a block.
The mempool is public. Anyone can watch it. This matters enormously and is the root of the MEV problem covered in Level 3: your intention is visible to the world before it executes.
Step four: the fee auction
Block space is limited. Far more transactions want in than fit. So whoever builds the next block picks the ones paying most, which makes it an auction.
The total cost is gas used multiplied by the price paid per unit. Note "gas used", not "gas limit": unused gas is refunded, so setting a generous limit costs nothing extra as long as it is not consumed.
Step five: inclusion in a block
A validator selects transactions, executes them in order, and publishes the resulting block. Your transaction is now on chain. Its effects, balances moving, contract state changing, have happened.
If the transaction ran out of gas or a contract rejected it, it still goes into the block as a failed transaction and you still pay for the computation performed. The work happened, the outcome was rejected.
Step six: finality, which is not the same as confirmed
Why transactions fail, mapped to the steps above
- Stuck pending: your bid was below the going rate. It sits in the mempool. Replace it with a higher fee using the same nonce.
- Out of gas: the gas limit was lower than the work required. It failed mid execution and you paid for what ran.
- Reverted: the contract executed and rejected the result, usually slippage or a failed condition. The revert reason on the explorer names it.
- Nonce too low: your wallet's idea of the counter is behind the network's. Clearing local activity data resyncs it.
- Insufficient funds: you did not leave room for the fee on top of the amount.
BEFORE YOU MOVE ON
Common questions
What is the mempool?
The waiting area of valid but unconfirmed transactions. It is public, which is why traders can see your intended swap before it executes.
What is a nonce in crypto?
A counter of how many transactions your address has sent. It prevents replay attacks and forces strict ordering, which is why one stuck transaction blocks all the ones behind it.
How many confirmations are enough?
It depends on the chain and the amount. Bitcoin convention is six blocks for large sums. Ethereum reaches economic finality in roughly twelve to fifteen minutes. Exchanges publish their own requirements.
Risk warning: crypto is highly volatile and largely unregulated. You can lose everything you put in. Nothing here is financial, investment or tax advice.
