Copy your public receiving addresses from Bitcoin-Qt.
Go to the Bitcoin-Qt console: click Help/Debug Window and then select the Console tab.
Run walletpassphrase [your password] [timeout in seconds] to unlock your password protected wallet.
Run dumpprivkey [Receiving Bitcoin Address] for each receiving address to be migrated to MultiBit. There ...
Currently, Electrum is more secure than MultiBit as the MultiBit wallets are not encrypted. The next version of MultiBit, version 0.5.9, supports encrypted wallets. (Disclaimer: I am the lead MultiBit dev)
Security in Bitcoin is related to many things. Here are some of them:
1) Is the code open source and do the developers have a track record ?
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 ...
WARNING: While this answer may be a solution to the issue in the question, it involves exposing your wallet seed to a tool on the internet. Please be very careful when doing this!
Can't add comments so extend Chris.J's answer:
Here are my notes on how to recover / rebuild / regenerate / extract ALL addresses and keys used by MultiBit HD:
Go to https://...
Here is one way to do it without the "command line geeky stuff".
Visit https://blockchain.info/wallet/import-wallet. Drag the Bitcoin-Qt wallet.dat file into the dotted area. Follow the instructions.
Login to the new wallet. Under the Backup heading click download.
Open multibit choose Tools -> Import Private Keys. Now import the wallet.aes.json file just ...
In case you have a beta7 wallet which is not BIP32 compliant you cannot use the method @chris-j has put forward.
The easiest way for me was to hook into MultiBit HD's signing capabilities and log the private key being used to the console:
diff --git a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java b/mbhd-core/src/main/java/org/...
Tools -> Import Private Keys
Create a file with the private key inside it. If you do not add the time of creation of this address, you get this message:
"There were missing dates. Have to go back to genesis block."
I think this date should be the first transaction date registered in the block chain.
Key createdAt is in UTC format as specified by ISO ...
The developers of Multibit have explicitly disabled such a feature to change the transaction fee, citing concerns that having little or very low transaction fees would result in the transaction taking too long to process (which is going to be unbearable for the average user only interested in sending and receiving money quickly).
From the GitHub issue ...
In the current version 2.8.3 of Electrum it's very easy to import Multibit wallets (meaning, migrating from Multibit to Electrum). An important reason to migrate is because Multibit (not HD but the classic one) does not allow to change network fees, which makes it very hard or even unreliable to move funds.
Select wallet in Multibit and choose Tools > ...
For MultiBit you could use the command line utility called WalletTool that Mike Hearn wrote. You can use it to create bitcoinj wallets (which is what MultiBit uses).
There is a description of it here:
You could wrap calls to it in your favourite scripting tool fairly easily I imagine.
Like all the Bitcoin clients, MultiBit is like a duck paddling on a lake. On the surface everything is calm but the legs underwater are kicking continuously. There is a lot of activity under the surface talking to the network, updating and saving the wallet etc.
The Send bitcoin button is greyed out when the client is either busy, or waiting for something ...
Importing private keys into MultiBit:
Create a file with the extension ".key" (like "mybitcoinkeys.key")
Put each private key on a separate line.
Next to each private key, type a space and then the date that the private key was created (in UTC format).
(this last step is important because MultiBit will only check the blockchain from that date forward)
MultiBit connects to (typically) four bitcoinds at random at start up. It then picks the best peer (using ping times, advertised blockchain height and the version of the peer to decide) and uses that as the download peer to get the block headers from.
It is thus using one peer to catch up the blockchain from where it previously knew about.
It listens to ...
That particular transaction is an attempt at something that has become known as "dust spam". The idea is that the sender sends a very small amount of bitcoin to many different addresses, hoping that people will notice and investigate further. It's possible to find out who sent this if you look hard enough, but most people won't bother. The effectiveness of ...
Electrum is not peer-to-peer (P2P). It only connects to electrum-specific servers to broadcast your transactions and to receive transactions. It's very similar to a web-wallet, however you're the one who holds the keys. So the Electrum client signs the transaction with your private key (that you hold), and then sends it to electrum-specific servers that take ...
The files with the .cipher suffix are the regular wallets encrypted with 256 bit AES.
The password used is the one you use to first encrypt your wallet. MultiBit goes through all the unencrypted wallets, creates an encrypted copy and secure deletes the unencrypted one.
You can open the .cipher wallets using File | Open wallet and it asks you for the ...
I can confirm that the "MultiBit" software downloadable from MultiBit.tv is a trojan. The version I downloaded seems to be slightly different than OP's, but similar.
After decompiling the trojan, I found (one of?) the bitcoin-stealing changes made. Here's the original source code inside SendBitcoinConfirmAction::actionPerformed():
The reason is privacy.
If you reuse the same key for every transaction, everyone who ever transacts with you can infer your entire balance.
No, public keys should not be identities, exactly because the transactions to them are public too. Your ability to create many pseudonyms in the system the only way through which it has any privacy. By reusing ...
Because the private keys and addresses are created deterministically from your wallet words you just need to keep your wallet words safe - there is no need to expose individual private keys. You can use your wallet words to recreate your wallet in either MultiBit HD (use the Restore button on the 'Enter password' screen) or using other tools.
For instance, ...
In 2013, MultiBit was not using Hierachal Deterministic (HD) wallets. The latest version is MultiBit HD. If you want to use the older version you can use MultiBit Classic and that should let you import your multibit.wallet file.
Here is what you need to do. Make sure you have the seed from multibit.
You create a new wallet, select I already have seed, when you type seed you need to click the "options" button and select BIP39 seed.
It will ask for a derivation path... you need to use: m/0' (note the ' it is important... m/0')
4.Suggest you do ...
You can ask the vendor for the transaction id of the transaction where they sent the bitcoin to you. Look it up on https://blockchain.info to check it exists and is sending bitcoin to your receiving address correctly. Look at the date of the transaction. Go into MultiBit, select your wallet and choose the menu option 'Tools | Reset blockchain and ...
You can try this utility called pywallet. You don't need to run pywallet from the command line though - just put it in the same directory, do import pywallet, and you can use any of the functions in there. You should try running it from the command line first though, because it'll show you any missing dependencies.
Functions you might find interesting:
It does not answer your question of getting your private keys out of bitcoin-qt, but this link explains how you import a single private key into MultiBit:
If you have more than one private key it is simply more rows in the import file.
The date alongside each key is a bit non-obvious. It has to be before the ...
When you create a Bitcoin transaction, your client will broadcast that information to peer nodes and generally within seconds every node that is connected will know of that transaction.
That's likely why the recipient wallet's balance rose.
That transaction though must be included in a mined block before the client you are using will allow those funds to ...