Satoshi's Client has a set fee of 0.0005 BTC, although it enables you to "choose the fee". If you choose a lower one, youll get an error message once you actually try to send a tx. Sometimes you also have to pay more, like 5 times as much as the minimum fee (0.0005), dont know if that is somehow part of change?
As I understand, the Satoshi client selects a fee based on transaction data size, priority, and dust outputs. Only the data size fee is user-selectable; the client will enforce a minimum fee on low-priority transactions and transactions with dust outputs, but high-priority transactions with no dust outputs can be sent with no fee if the data size fee is set to zero (at least, I think that's how it works).
Not quite right, I just had to look through my posting history for the appropriate informative post...
An answer I posted in a noob thread, what I gathered from the Wiki, how many confirmations required before resending coins is TX-fee-free:
Transactions need to have a priority above 57,600,000 to avoid the enforced fee in the official client. Transaction priority is calculated as a value-weighted sum of input age, divided by transaction size in bytes:
priority = sum(input_value_in_base_units * confirmations)/size_in_bytes
For sending 0.05 BTC (5,000,000 base units) from one address, in 225 bytes (a minimal size, a one input, one output transaction with no remainder)
free when confirmations > 57,600,000 * 225 / 5,000,000 -- 2,592 confirmations
Having Bitcoins from multiple payments fund the transaction is where the "sum" in the formula above comes into play.
The above is for determining
when a fee will be required by the client and miners that use standard Bitcoin rules. In addition, amounts below 0.01 always require the minimum fee (0.3.21).
There are also some odd rules mentioned in the Wiki that increase fees when the queue of transactions gets too deep. I haven't reviewed the Bitcoin code to comment further how these are enforced by miners and when sending in the client:
"If the blocksize (size of all transactions currently waiting to be included in a block) is less than 27 kB, transactions are free.
If the blocksize is more than 250 kB, transactions get increasingly more expensive as the blocksize approaches the limit of 500 kB." The size of the queue of unconfirmed transactions waiting for inclusion is known by your client but can't be viewed. It can be seen here:
http://bitcoincharts.com/bitcoin/txlist/. At this immediate moment, there are 2763 unconfirmed transactions (1454847 bytes). That would seem to me to be larger than the maximum blocksize indicated above, so the above rule about higher transaction fees may be kicking in on the miner's side for inclusion of transactions (but the client isn't prompting).
The
amount of the per-KB minimum fee for low-priority transactions was reduced from .01 BTC to .0005 BTC in Bitcoin 0.3.22 (for relay and inclusion in blockchain) and Bitcoin 0.3.23 (when sending). The reduction decision was made when Bitcoin was $30 and increasing exponentially.
The problem clogging up Bitcoin is that xx dice is sending and resending and resending coins with no confirmations. It becomes a house of cards where hundreds of transactions are funded by earlier transactions still waiting for inclusion in the blockchain with some confirmations.
Pool withdraw fees can go into this list of "who's not paying fees" too. There are many "where's my deepbit withdrawl" threads, caused by deepbit not sending with fee, and sometimes even sending immature coins.