<p>Actually you can spend these if you <strong>REALLY</strong> need it creating a <a href="https://en.bitcoin.it/wiki/Raw_Transactions" rel="nofollow">raw transaction</a>:</p>

<ol>
<li>Collect unspent outputs. RPC <code>listunspent</code> does this, but IIRC it's empty until you download the whole blockchain. You can also check Blockchain.info for known transactions.</li>
<li>For each unspent output grab the transaction id (<code>txid</code>), output index (<code>vout</code>) and script (<code>scriptPubKey</code>) and write down as <code>{"txid":"exampleID","vout":x,"scriptPubKey":"exampleScript"}</code>. We'll call each one of these <code>{in1}</code>, <code>{in2}</code>, ..., <code>{inN}</code> for <code>N</code> inputs.</li>
<li>Concatenate all  inputs like this <code>'[{in1},{in2},...,{inN}]'</code> where each <code>{inX}</code> is what you annotated earlier in step 2. Note the opening and closing <code>'</code> !</li>
<li>Concatenate destination addresses and amounts like this <code>'{"out1":amt1,"out2":amt2,...,"outM":amtM}</code>. <strong>Remember to send unspent change to yourself!</strong> Change not sent back will be sent as a mining fee. Remember to set a sensible fee too.</li>
<li>Use RPC: <code>createrawtransaction '[{in1},{in2},...,{inN}]' '{"out1":amt1,"out2":amt2,...,"outX":amtM}'</code>. This will return a hex string composed of numbers <code>0-9</code> and letters <code>A-F</code>.</li>
<li>Use RPC: <code>signrawtransaction "resultStep5" '[{in1},{in2},...,{inN}]'</code>. This will return <code>{"hex": "string of 0-9 A-F", "complete": true}</code>. If complete says <code>false</code> the transaction is not signed (perhaps wrong input, or missing private keys).</li>
<li>Double check the transaction using RPC <code>decoderawtransaction hexStep6</code>. Check that outputs are fine and fee is not too much/little.</li>
<li>If <code>"complete: true"</code> and the transaction has been double-checked, broadcast it using RPC: <code>sendrawtransaction hexStep6</code>.</li>
</ol>

CC BY-SA 3.0
2014-01-11T07:47:12.913Z
+1 for a great answer.. I just wanted to clarify. I think kaoD knows this already, judging by his answer but I just wanted to let others know this does not allow you to double spend anything. Its not that easy (!)
Danny Smith
CC BY-SA 3.0
2014-01-10T16:35:40.773Z
2014-01-10T16:35:40.773Z
kaoD
<p>No, because Bitcoin-Qt still has no way of knowing if you actually have those bitcoins.</p>

<p>Imagine you had the same wallet on two separate computers one with the block chain fully downloaded and one with it only half downloaded. Now Imagine you have 10 bitcoins. On the wallet with the block chain fully downloaded you send all 10 coins to your friend. This computer now reflects that you have 0 bitcoins while the one with the half downloaded block chain still says you have 10. If Bitcoin-Qt allowed you to send those bitcoins, it would be opening the network up to double spending. </p>

CC BY-SA 3.0
2013-11-17T06:53:55.623Z
It should be noted that there are lightweight clients such as Electrum, that can be used without downloading the blockchain.  I know that is not the focus of the question but someone may find that information relevant to the question at hand.
Mark S.
CC BY-SA 3.0
2013-11-16T16:34:00.827Z
2013-11-16T16:34:00.827Z
Loourr
<p>If I have Bitcoins in my wallet and I have downloaded the blockchain far enough so that I can see that I have received them, can I send them without having a fully updated blockchain?</p>

CC BY-SA 3.0
2013-11-16T15:11:18.230Z
Why not try it and see?
Nate Eldredge
<transactions><bitcoin-core>
Can you send Bitcoins from Bitcoin-Qt without downloading the whole blockchain?
Scintillo
# Can you send Bitcoins from Bitcoin-Qt without downloading the whole blockchain?

(Asked by: username_0 on 2013-11-16)

If I have Bitcoins in my wallet and I have downloaded the blockchain far enough so that I can see that I have received them, can I send them without having a fully updated blockchain?

**Tags:** transactions, bitcoin-core

> **Comments:**
> **username_1**: Why not try it and see?  

---

## 2 answers

### Answer by username_2 on 2014-01-10. Score: 2 | Accepted answer

Actually you can spend these if you **REALLY** need it creating a [raw transaction](https://en.bitcoin.it/wiki/Raw_Transactions):

1. Collect unspent outputs. RPC `listunspent` does this, but IIRC it's empty until you download the whole blockchain. You can also check Blockchain.info for known transactions.
2. For each unspent output grab the transaction id (`txid`), output index (`vout`) and script (`scriptPubKey`) and write down as `{"txid":"exampleID","vout":x,"scriptPubKey":"exampleScript"}`. We'll call each one of these `{in1}`, `{in2}`, ..., `{inN}` for `N` inputs.
3. Concatenate all inputs like this `'[{in1},{in2},...,{inN}]'` where each `{inX}` is what you annotated earlier in step 2. Note the opening and closing `'` !
4. Concatenate destination addresses and amounts like this `'{"out1":amt1,"out2":amt2,...,"outM":amtM}`. **Remember to send unspent change to yourself!** Change not sent back will be sent as a mining fee. Remember to set a sensible fee too.
5. Use RPC: `createrawtransaction '[{in1},{in2},...,{inN}]' '{"out1":amt1,"out2":amt2,...,"outX":amtM}'`. This will return a hex string composed of numbers `0-9` and letters `A-F`.
6. Use RPC: `signrawtransaction "resultStep5" '[{in1},{in2},...,{inN}]'`. This will return `{"hex": "string of 0-9 A-F", "complete": true}`. If complete says `false` the transaction is not signed (perhaps wrong input, or missing private keys).
7. Double check the transaction using RPC `decoderawtransaction hexStep6`. Check that outputs are fine and fee is not too much/little.
8. If `"complete: true"` and the transaction has been double-checked, broadcast it using RPC: `sendrawtransaction hexStep6`.

> **Comments:**
> **username_3**: +1 for a great answer.. I just wanted to clarify. I think username_2 knows this already, judging by his answer but I just wanted to let others know this does not allow you to double spend anything. Its not that easy (!)  

---

### Answer by username_4 on 2013-11-16. Score: 3

No, because Bitcoin-Qt still has no way of knowing if you actually have those bitcoins.

Imagine you had the same wallet on two separate computers one with the block chain fully downloaded and one with it only half downloaded. Now Imagine you have 10 bitcoins. On the wallet with the block chain fully downloaded you send all 10 coins to your friend. This computer now reflects that you have 0 bitcoins while the one with the half downloaded block chain still says you have 10. If Bitcoin-Qt allowed you to send those bitcoins, it would be opening the network up to double spending.

> **Comments:**
> **username_5**: It should be noted that there are lightweight clients such as Electrum, that can be used without downloading the blockchain.  I know that is not the focus of the question but someone may find that information relevant to the question at hand.  

---

