user8826: 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?

user11761: Actually you can spend these if you REALLY need it creating a raw transaction:

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.
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.
Concatenate all  inputs like this '[{in1},{in2},...,{inN}]' where each {inX} is what you annotated earlier in step 2. Note the opening and closing ' !
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.
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.
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).
Double check the transaction using RPC decoderawtransaction hexStep6. Check that outputs are fine and fee is not too much/little.
If "complete: true" and the transaction has been double-checked, broadcast it using RPC: sendrawtransaction hexStep6.


user4241: 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. 

8826: <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>
 11761: <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>
 4241: <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>
