I tried sending one satoshi (0.00000001 BTC) to one of my friend and the client always showed a dialog prompting me to pay 0.0005 BTC in fee, with the only options being OK (pay the fee) or cancel (cancel the transaction). The transaction was using one input and possiby two output (with how the clients jungle with the addresses).

I checked the option and the fee was at 0.00000000 BTC, but the client would not let me placed the transaction.

up vote 3 down vote accepted

The standard client, as distributed by the Bitcoin developer team, does not permit transactions without a fee for amounts less than 0.01BTC. It adheres to the fee calculation suggestion in the transaction.

That said, not all clients enforce this rule. See Can different clients have different transaction fees?

  • 2
    In certain cases (either too large in bytes, creating very small outputs, or using to small/recent inputs), the reference client considers feeless transactions as spam and does not relay them. To prevent transactions from getting stuck, the client will force a fee under those same conditions (mostly because it doesn't deal well with non-confirmation transactions). In the normal case, free transactions are not a problem. – Pieter Wuille Jan 18 '13 at 21:27
  • Yes that was the answer I was looking for. – Gopoi Jan 18 '13 at 23:20

Yes, however the answer is a bit more advanced than for your everyday consumer:

It is recommended to have some knowledge of JSON if using this method

WORD OF WARNING: Using this method can cause large amounts of inputs being set as miners fees. I suggest you continue with caution and start by using small inputs.

That being said...

A transaction must be compiled and submitted via the bitcoin-qt console using the commands listunspent, createrawtransaction, signrawtransaction and submitrawtransaction.

To access the Bitcoin-qt console:

launch your bitcoin client as usual and wait for it to load the blockchain and start up
click on 'help' in the menu bar (top right)
click on 'debug window'
select the 'console' tab
  1. Use listunspent to get an array of you spendable inputs in your wallet
  2. This is where you set you transaction fee: Use createrawtransaction to generate a transaction in the form createrawtransaction [{\"txid\":\"[txid of the input transaction]\",\"vout\":[vout that relates to the txid of the input transaction]},...] {\"[address to send your bitcoins to]\":[amount of bitcoins to send to this address],...} If you want a no fee transaction you must make sure all inputs equal the output. All inputs that are not spent in a transaction are used as miners fees.
  3. Use signrawtransaction [the output of createrawtransaction] to sign your generated transaction Note: Your wallet must be unlocked to perform this command. If not type walletpassphrase [your passphrase] 21600
  4. Use submitrawtransaction [the output of signrawtransaction] to send your signed transaction to the network to be included into a block

You can see your transaction by going to http://blockchain.info/tx/[txid output from submitrawtrasaction]

Maybe this was added recently, but I don't think so. You can change the fee in your Bitcoin Core client settings. Go to:

Settings -> Options -> Wallet (tab) -> "Pay transaction fee"

set it to 0 and you're good to send fee-less transactions. Keep in mind it may take longer for your transaction to be pulled into the blockchain without a fee.

enter image description here

  • Recently, feeless transactions might actually never go through : ( - We've gotta wait for this blocksize debate to be decided to go back to good ole free transactions. – B T Mar 24 '17 at 21:32

Today, we cannot do transactions without any fees. Miners wouldn't choose to include such transactions and the Bitcoin clients also drop these transactions. We could do as the following article suggested to minimize the fees level: http://coinour.com/index.php/how-to-minimize-bitcoin-transaction-fees/

  • Thank you for adding an updated answer to an old question, your answer would be more helpful if it included a summary of the relevant information from the linked page, and thus went over the bare minimum answer. – Murch Mar 25 '17 at 8:47

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.