4

I've used bitcoins for quite a while, but about a year ago I decided to dump having a thin client on my machine, and I've just kept my coins in various exchanges.

Yesterday, however, I wanted to check out the current state of the bitcoin client and I was a bit surprised to see that on Bitcoin.org, you now have three options. That's good!

I downloaded the Multi-bit and installed it on my Mac. I generated a payment address and I sent myself about .45 BTC. After about an hour, I saw that it was confirmed. I also set my mining pool account to send my payments to this new wallet, so I get a bit-cent sent to it every 12-16 hours (yeah, I'm not getting much, but I enjoy the free money.)

After a day, I now have a few transactions on this wallet. My confirmed balance is around .5 BTC. I just sent 2, .02 btc transactions. Right after sending these two transactions, I tried to send a third for .06, Multi-bit gave me a message stating:

There are not enough funds in your wallet to send .06 BTC. The transaction fee is set at .0001 BTC. Note that you can only spend confirmed transactions.

I don't understand. My confirmed balance is currently around .43 BTC. These coins have been confirmed for at least 12 hours, yet I'm getting this message telling me my balance was too low?

Has something changed within the Bitcoin protocol in the last year that I'm not aware of or is this a known bug in the Multi-bit client. My biggest worry is that if and when I decide to move my coins from this wallet to an e-wallet, the thin-client is going to give me this same message when I try to make a big withdrawal because of this bug. What is going on?

2
  • Added tag 'multibit'
    – ripper234
    Jul 5, 2012 at 4:56
  • You're going to have a very hard time spending all those small outputs. You're much better off getting a smaller number of larger transactions. Otherwise, when you try to "gather" all those small payments, it will make a huge transaction with a correspondingly huge transaction fee. Jul 5, 2012 at 22:36

4 Answers 4

10

I don't use MultiBit, but just checked its source code to see what the message you quoted means.

It turns out that the message is shown when the amount you're asking to send plus fees is less than the "available balance", which is defined as:

Balance that can be safely used to create new spends. This is all confirmed unspent outputs minus the ones spent by pending transactions, but not including the outputs of those pending transactions.

The source code also says:

Consider a real-world example: you buy a snack costing $5 but you only have a $10 bill. At the start you have $10 viewed from every possible angle. After you order the snack you hand over your $10 bill. From the perspective of your wallet you have zero dollars (AVAILABLE). But you know in a few seconds the shopkeeper will give you back $5 change so most people in practice would say they have $5 (ESTIMATED).

So my guess would be that your balance includes some unconfirmed change from your previous transaction(s), and that simply waiting for that change to confirm will solve your problem.

In other words MultiBit doesn't allow you to spend the $5 change until you have it back from the shopkeeper. Note that the Satoshi client does allow you to spend unconfirmed change outputs.

4
  • Yes, I would think this is it. My guess is that since I have only one payment address that I've used, when I would spend some of my bitcoins, I can't immediately send another transaction. After further observation, it looks like I can usually send another payment when the current block is processed.
    – RLH
    Jul 4, 2012 at 23:42
  • You should be able to immediately send another transaction so long as you have enough in there that you don't need to break into the "change" you just received. It looks to me like MultiBit will attempt to make the payment using just what it calls the "available balance" (the confirmed coins, not including new change). Jul 5, 2012 at 3:46
  • I'm not sure what it may be but I was wrong. I can't send a transaction again, until the last one has received a confirmation (but doesn't have to be fully confirmed.) It's really odd.
    – RLH
    Jul 5, 2012 at 17:04
  • You can spend any transaction output that is not involved in a current spend, but it is not easy to tell (without looking at the transaction in detail). MultiBit will only let you spend transactions and change that have been confirmed on the blockchain, hence the delay.
    – jim618
    Jul 7, 2012 at 10:10
2

I think Chris is right - it sounds like MultiBit is waiting for the change to be seen in the next block that contains the transaction.

It can be a bit annoying, but it does have the advantage that anyone that you SEND bitcoin to will always be sent bitcoins using transaction outputs of transactions that are already on the blockchain ie confirmed at least once. The recipient should get a trouble free confirmation.

'Available to spend' is quite a confusing concept so I have added drill down help for it in the MultiBit user interface. If you click on the 'Available to spend' text in the MultiBit header it opens up the appropriate help, namely: http://multibit.org/help_availableToSpend.html

You can do a right click on a transaction in the Transactions panel and it shows you the transaction status. On that details dialog you can also click on the 'View at blockchain.info' button and it will open up blockchain.info in a browser for that transaction. I use that quite often to check on the transaction's status in the network.

1
0

I first used Multibit today and got the Insufficient Funds error.

The help file says:

I get the error 'Insufficient funds' when I try to send bitcoin

What is the symptom ?

You try to send some bitcoin but when you press the 'Send' button you get the error 'Insufficient funds' appearing in a dialog box.

What does 'Insufficient funds' mean ?

In your wallet you can normally only spend bitcoin that have confirmed. This is shown graphically in the '  Transactions' tab when the status icon is no longer empty. If you have unconfirmed transactions you get an 'Available to spend' balance in the MultiBit header. This shows the amount in your wallet that is available to spend. See What does 'available to spend mean ?' for more details.

Also, you need to take into account the fee that is added to your transaction. The fee varies according to the size of the transaction but is typically 0.0001 BTC. For instance, if you have 10 BTC in your wallet and the fee is 0.0001 BTC then you can only spend a maximum of 10 - 0.0001 = 9.9999 BTC.

I reduced the amount of bitcoin I wanted to send by 0.0001 and it worked.

-3

nah... its defective programming, i have 10 bitcoin, say, fully confirmed 347 times last week, I spend 1 satoshi and the entire contents of the wallet are locked up until that spend is confirmed.. explain that any way you want it isnt going to cause the code to rewrite itself.. beta = beta

2
  • I am sure you appreciate what the spend of that 1 Satoshi means - you've got a new transaction in the system that is not confirmed. Obviously the code is not going to rewrite itself - if you notice in the latest code transactions track the peers they have been seen by. This is the first step in changing the spending policy so you can spend change that is coming from you and that the network has seen (so that you can be confident it will end up on a block).
    – jim618
    Nov 16, 2012 at 13:15
  • Are you sure you didn't want this to be a comment, rather than an answer?
    – ThePiachu
    Nov 16, 2012 at 13:59

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