The reason is because sometimes these companies have agreements saying in exchange for including blocks with fees you also need to complete any blocks without fees in order for those orders to not get stuck. It would stink if someone accidentally sent something without a fee and it got stuck so neither party could access it.
What manner of nonsense be this??
I understand this is bc the miners require an incentive to include it in their blocks, so no fee means btc purgatory. But why is this not a problem when sending from the standard bitcoin app? The amt was 3.91 so it's not microtransaction.
A transaction is a message transmitting a desire to send money. The money isn't someone else's until it is included in the blockchain, also known as "being confirmed". Technically it's still in your wallet.
A transaction that doesn't include the minimum relay fee will be retransmitted by very few other nodes on the network. The message will be essentially blocked if it resembles spam. Most of these do find their way to some miner that includes them, although it may take hours or days.
A fee isn't always required, but even if it's not, not including one will likely delay blockchain inclusion. I just search my posting history to find an appropriate quote of a quote...
The age of the coins and the amount you are sending will determine whether you can send for free. Sending without the minimum fee when it is required will cause you headaches later, and the Bitcoin client won't let you do it.
First, recognize that a transaction is made of:
- inputs - the funding source(s), the individual payments you previously received, and
- outputs - the amount(s) you are sending to different addresses. Typically only one or two outputs, but you can send to many people in one transaction if you want.
The baseline calculation for "when it becomes free" is 1 BTC after one day. If the input of your transaction is a single 1 BTC payment you received over a day ago (144 confirmations), then Bitcoin-qt won't require a fee, even if you are only sending .1 BTC to someone else (the other .9 is also sent, but it's sent back to your wallet as another output). Likewise, if your balance is from a single 0.1 BTC, a transaction using that payment would be free to send after 10 days of confirmations.
The above examples are when your transaction is made of one input. Often a transaction will be made of many smaller previous payments to you, put together by Bitcoin in whatever way it calculates will minimize the change that needs to be sent back to you. Therefore, it can be harder to know if you will need a fee without actually attempting to send the transaction. No "warning, requires a fee" message? That means a fee was not required, and only your optional fee (if set above 0) will be included.
If any output of your transaction is less than 0.01 BTC, a minimum fee is required regardless, to keep people from cheaply spamming the blockchain by sending the same money over and over.
A transaction sending 0.4 BTC with 100 confirmations is not high enough priority to send with no fee.
priority = sum(input_value_in_base_units * input_age)/size_in_bytes
((0.4 * 100,000,000) * 100) / 258 = 15,503,875
Transactions need to have a priority above 57,600,000 to avoid the enforced limit. I would recommend ANY payment include a fee even if it would qualify to be free, as "free transaction" space in blocks is limited, and profit-motivated miners have no incentive to include free transactions over those with fees.