 Can you explain the life cycle of a transaction from the point someone sends a transaction from their wallet? Until the point it is confirmed on the Bitcoin blockchain? That's a great question, Mario. Let's get right into it. Your wallet constructs a transaction by accumulating the Bitcoin you have in your wallet, and assigning it a destination address, or multiple destination addresses, and then signing that transaction. At that point, your wallet transmits that to one of any of the nodes it is connected to. In fact, it will start, but then it will transmit to all of the nodes it is connected to. A wallet might be connected to one, two, three, four, perhaps eight different nodes. It will transmit the signed transaction. These other network nodes, which may be other wallets, may be mining nodes, or maybe nodes belonging to exchanges, merchants, or people doing e-commerce, or people just running a node for fun. They will each receive this transaction from your node. The first thing they will do is validate it. Every node validates every transaction. When they receive this transaction from your node, they don't know if your node created this transaction, or if it was just forwarding it, because they are receiving transactions from all of the nodes around them all the time. That is how transactions are propagated. They receive this transaction and validate it. If it is valid, all of the amounts are correct, it has the necessary fee, it is not trying to spend something that has already been spent, etc., etc., all of the rules of consensus. The signatures are all valid, it fulfills certain criteria, the size of the transaction, the size of the script, etc., etc., etc. Everything is validated by each of the nodes that receive your transaction. Only then do the nodes that receive your transaction send it to all of the nodes they are connected to. You send it to all of the nodes you are connected to. They each validate it, they send it out to all of the nodes they are connected to, always after validating. Eventually, through this process of flood propagation, the transaction will be sent to every node in the network. Some of those nodes will be miners. Let's talk about what happens when the transaction is validated on each node it receives, whether that is a mining node or not. All of the nodes, including your own, maintain a pool of unconfirmed transactions. Think of this as a giant bucket where all unconfirmed transactions go to wait to be confirmed. All nodes keep track of what transactions they've seen that have not yet been confirmed, and they store them in this pool of transactions, which is called the mempool. Of course, important to understand, there isn't one mempool. There isn't the mempool. There is a mempool on every node. Because of differences in timing and propagation, anyone mempool on any node is not going to have identical set transactions as every other mempool, although they will probably have 99% overlap. The same transactions, perhaps received in a different order, will probably be in most of the mempools in most of the nodes. On mining nodes, the mempool serves a very important purpose. It serves the purpose of providing transactions for the miner to add to a new block. If you are looking at this from the perspective of one of these mining nodes, they have just found out that a new block has been found, which means the race is on for the next block. In order to participate in that competition as a miner, they have to construct a block that they will try to solve the proof of work on. They do that first by constructing an empty block. That empty block has a link to the previous block, the one they know about most recently, to establish its position on the chain. It has a timestamp, it has some other information in the header, and it has at least one transaction, which is the coin-based transaction, that pays them. When they construct their own empty block, the miners put their own address as the destination payment in that block. Now, this block is not valid, it doesn't have proof of work, it also doesn't have any transactions. At this point, they will send that block to all of their mining equipment to start trying to find a proof of work, but they will now also try to add transactions. They reach into the pool of unconfirmed transactions, and start looking for the transactions that pay the most fee. They are looking for transactions that pay the most satoshis per byte, so they can maximize the amount of profit they can make by filling this block. They start pulling transactions out based on which one has the maximum fee. They have already validated all of these transactions, that's why they are in the mempool. They don't get into their mempool unless they have been validated, and they start putting them into this new block. We call that a candidate block, because it hasn't yet been proven. As they add transactions, the block gets bigger, and every time they add something, they send it back to the mining equipment. The mining equipment can try to find a proof on the block. If they are lucky, at some point, after doing billions of hashes, their mining equipment finds a nonce that creates a block hash that is below the target difficulty, which is therefore a valid proof of work. Immediately, tell the node of the miner, we found a block. The mining node then propagates that block out to every node that it is connected to, in the same way that the transactions reach the mining nodes. The block leaves the mining node and is propagated back out to all of the other nodes on the network. Both transactions and blocks are propagated through this flooding process. When other miners receive this block, they validate it as quickly as they can, and then they immediately stop trying to find a block and start again with this new block as the parent, because they know they lost the previous round of competition, somebody else won't. Therefore, they need to start again. All the nodes back to your wallet receive this block. As they receive the block, they validate it, just like they validate every transaction. As they validate it, and they are looking at the transactions that are in there, they go, this transaction was in my mempool, but it is now in a block. I am going to take it out of the mempool and consider it confirmed. They take transactions out of their mempool once they know that that transaction is confirmed. Eventually, this block will propagate all the way back until it reaches your wallet, at which point your wallet will know that its transaction has one confirmation, and then the process continues. That is the entire life cycle of a transaction.