I am using the 0.4.0 release. Is it possible to send bitcoins without paying a fee? Who gets the fee ? Is it only miners discovering new blocks?

  • It would also be interesting to compare bitcoin with credit card fees, which are quoted 2/4%, in terms of speed/guarantees. Commented Dec 11, 2020 at 9:07

3 Answers 3


It is possible to send Bitcoins without paying any fee. The easiest way is if your transaction meets the following requirements:

  1. The transaction only sends coins to one address, plus the return of change. (No more than two 'out' scripts.)

  2. The transaction doesn't need to gather a large number of small transaction outputs. (You are spending funds you received in a sensible way, not as a large number of micro-transactions.)

  3. The funds are stable. That is, you aren't spending funds you recently received.

Otherwise, the transaction fee goes to the miner who includes your transaction in a block.

Currently, it is possible to get any valid, standard transaction into a block without paying a fee if you are willing to be sufficiently patient. You may need to specifically configure your client to connect to a client known to accept such transactions and known to relay them to miners. (Luke Dash Jr. runs one such node, with IP address

  • Yesterday bitcoin client never send my bitcoins and today it seem to work perhaps is it required more than 50 confirmations to send bitcoins without fee?
    – ADenis
    Commented Sep 27, 2011 at 8:04
  • 3
    The client tries periodically to send out the transaction. I won't retry too often because it's trying to disguise itself as the source of the transaction. As it tries over and over and as the transaction's priority increases, it will send the transaction to a client that's willing to relay it. Commented Sep 27, 2011 at 8:07
  • 5
    By default, the Bitcoin client will not create a transaction it will not relay. This is because it provides no way to remove a transaction, so you could get stuck and wind up with unspendable coins. You can set MIN_RELAY_TX_FEE to 0 in main.h and recompile yourself, but be warned, you can get stuck transactions that can take days to process. (Make sure all transaction outputs are greater than .01 Bitcoins or it will get stuck forever.) Commented Sep 27, 2011 at 9:10
  • 2
    Those comments were really important, mind including them in the answer itself?
    – mafu
    Commented Oct 15, 2011 at 7:50
  • 1
    Regarding #2, would it be possible to "defragment" your funds by sending your entire wallet's worth to yourself? Seems like the only factor that one doesn't really have control over.
    – a cat
    Commented Feb 21, 2013 at 22:18

If you're comfortable with putting your private key in JavaScript, you can go to brainwallet.org and under the transactions tab, you can hand craft a transaction message where you set the fee to whatever you want. Keep in mind that if it's nothing, brainwallet won't keep on retransmitting it. Also, it's possible that it will never be confirmed, but most clients will delete unconfirmed transactions after three days.

  • 1
    "Putting your private key in javascript" is meaningless. Javascript isn't some magical place you can put data. Its a programming langauge. What you need to be comfortable with exactly, when using brainwallet, is that their web application truely doesn't send your keys over the internet, and you need to be comfortable that your browser isn't compromised.
    – B T
    Commented Sep 18, 2014 at 23:56

Sometimes Services provides Something that just work…

https://pro.coinbase.com/ pays miners fees for you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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