Fee
The fee is calculated to be 0.0001 for each 1000 bytes of transaction size. This way the fee matches the minimum relay fee enforced by bitcoin nodes. If you go below that you risk that your transaction gets stuck in the network and never confirms. If we allow users to go below that, and blame it on us when their transactions get stuck.
I totally get your point.
Nonetheless, can you please (only in Expert mode, and perhaps with the information from your quote above as warning) add the possibility to customize the fee? How about: in Export mode by default still use 0.1 mBTC per 1000 bytes, but make it editable, and mention "recommended fee = xxx" in the edit fee screen/popup.
There are many occasions where I really don't care if a tx gets somewhat delayed or not (when transferring funds to myself, for example) and in Expert mode, one can be assumed to understand the difference.
The thing is that your transaction may not only "get somewhat delayed", it may never confirm at all. By paying 0.0001 for each 1000 bytes of transaction size (round up) it stays above the minimum relay fee required by nodes relaying the transaction to miners. Those are the rules of the network.
If we don't follow those rules users will experience transactions getting stuck. "freeing" your coins after that can be a nightmare, there are many threads on this forum on this topic. This will hit us (the developers) with a slew of angry users, as they will blame the wallet, and I really hate having angry users.
Fees in Bitcoin are quite complex and most users who consider themselves experts do not understand how it works.
All that said there is something we can do. The rules of the relaying nodes are not there to guarantee the miner some mining profit. The rules are there to limit transaction spam... a DOS attack filter, that prevents someone to send transactions to himself indefinitely, filling up the memory pool of relaying nodes. When the relay rules were introduced a portion of the memory pool / block size was reserved for what is called priority transactions. In short a transaction gets a priority according to the "age" of its inputs. If the "age" is sufficiently "old" (
details here). Nodes will relay a priority transaction with a zero fee. Relaying does not guarantee inclusion in a block, and if the network continues to grow without the 1 MB block limit rising (or some other technical advancement) then the fees are bound to rise above the minimum relay fee.
Until now Mycelium has not considered zero fee high priority transactions. Something to work on.