26

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?

eMansipater
  • 14,456
  • 10
  • 50
  • 79
ADenis
  • 537
  • 1
  • 4
  • 8

3 Answers3

22

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 173.242.112.53.)

David Schwartz
  • 51,554
  • 6
  • 106
  • 178
  • 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 Sep 27 '11 at 08: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. – David Schwartz Sep 27 '11 at 08:07
  • Ok but the problem yesterday was that the bitcoin client did not let me insert the trasaction , it show me a message asking for paying a fee of 0.005 – ADenis Sep 27 '11 at 09:06
  • 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.) – David Schwartz Sep 27 '11 at 09:10
  • 2
    Those comments were really important, mind including them in the answer itself? – mafu Oct 15 '11 at 07: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 Feb 21 '13 at 22:18
  • @lunboks: Yeah, but then your coins would be newer, so it wouldn't help all that much. – David Schwartz Feb 21 '13 at 22:24
  • @DavidSchwartz That's true, if I wanted right-now results. I'm assuming it doesn't make a difference whether my coins are a year or a month old though. – a cat Feb 21 '13 at 22:29
  • Some wallets (such as Unowallet) allow you to send zero fee transactions at your own risk. If less than 0.1, those transactions mostly get returned back to the wallet after a couple of days (coins are not lost). – Jus12 Aug 05 '13 at 19:01
  • Can you be more specific about what "stable" means? Is this a particular number of confirmations, or an amount of time, or something else? Also, what number is the maximum number of "small" transaction outputs that doesn't trigger this behavior? And what is "small"? And is this an artificial constraint by the client, or is this something inherent in the bitcoin protocol? – B T Sep 18 '14 at 23:54
4

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.

lurf jurv
  • 2,714
  • 4
  • 23
  • 28
  • 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 Sep 18 '14 at 23:56
-1

Sometimes Services provides Something that just work…

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

user2284570
  • 286
  • 2
  • 14