Why does Bitcoin Core mention "Coinbase transactions", and what are they? Quote:
&quot;category&quot; : &quot;str&quot;,                  (string) The transaction category.
                                           &quot;send&quot;                  Transactions sent.
                                           &quot;receive&quot;               Non-coinbase transactions received.
                                           &quot;generate&quot;              Coinbase transactions received with more than 100 confirmations.
                                           &quot;immature&quot;              Coinbase transactions received with 100 or fewer confirmations.
                                           &quot;orphan&quot;                Orphaned coinbase transactions received.

Source: https://bitcoincore.org/en/doc/0.20.0/rpc/wallet/listsinceblock/
I get &quot;send&quot; and &quot;receive&quot;, but what are &quot;generate&quot;, &quot;immature&quot; and &quot;orphan&quot;? And why is Coinbase (the exchange?!) mentioned several times in core (no pun intended) Bitcoin Core functionality?!
Once again, there's nothing but cryptic, very short &quot;descriptions&quot; of this, leaving me (and supposedly many others) guessing wildly.
Coinbase transactions are the coin generation transaction of a block. They are the first transaction in a block. These are special transactions which do not spend any UTXOs and only create UTXOs &quot;out of thin air&quot;. Hence UTXOs created by coinbase transactions are categorized as &quot;generate&quot;.
Coinbase transactions are completely unrelated to the exchange named Coinbase. They named themselves after these special transactions.
UTXOs created by a coinbase transaction cannot be spent until they have more than 100 confirmations. This is known as the coinbase maturity period. While there are less than or equal to 100 confirmations, the transaction is considered to be &quot;immature&quot;. Once there are more than 100 confirmations, the transaction and its UTXOs are considered to be &quot;mature&quot;.
The reason there is a maturity requirement is because sometimes blocks do not become part of the main chain. These are referred to as stale or orphan blocks. To avoid issues where a transaction spends a UTXO from a coinbase of a stale block, the consensus rules require that enough blocks have been mined on top of the block with that coinase transaction such that it is extremely unlikely to be reorged out of the main chain. But for the coinbase transactions that are part of stale blocks, they are categorized as &quot;orphan&quot;.