Transferring coins from Bitcoin-Qt to Electrum
This guide is intended for users of Bitcoin Core who do not want to wait for their wallet to be synchronized with the network, which may take many hours or days depending on the hardware spec.
It's a somewhat common situation that users don't open their wallet for months or years, after which they come back to find it will take them hours to have be able to use Bitcoin Core. Another example is where the block files on hard disk have become corrupted requiring parts of the blockchain to be downloaded and verified again.
Before reading this page, users should note that directly manipulating ECDSA private keys is dangerous and can result in losing bitcoins. This guide is for the impatient or time-stressed, it is recommended that users of Bitcoin Core simply wait out the blockchain synchronization. There are many benefits to running a Full node including trustlessness, security and privacy which lightweight wallets cannot match.
Obtain new Electrum wallet
Download Electrum, verify the signature to prove it was not modified in transit. Create a new normal wallet (not watch-only!). Write down the mnemonic recovery seed on paper.
Obtain private key(s) from Bitcoin-Qt
Click Help -> Debug. Click the Console tab.
If your wallet is encrypted, use this command to decrypt it for 5 minutes:
walletpassphrase your-wallet-passphrase 300
Use the dumpprivkey command to get the private key. Repeat for as many bitcoin addresses as have money in them.
dumpprivkey <your bitcoin address>
Sweep private keys with Electrum
In the Electrum window, click Wallet -> Private Keys -> Sweep. Paste the private keys from Bitcoin-Qt here. Check the resulting transaction is okay and click Broadcast to sweep from the addresses in Bitcoin Core to the Electrum wallet.
The transaction will be relayed to every node in the bitcoin network and should soon be visible as unconfirmed in Electrum's window. It is likely to soon be mined into a block giving it confirmations that make it an irreversible transaction.