<p>Basically what Murch said. You have to use the private key to sign the transaction.</p>

<p>There is a point I want to add, however. It <em>is</em> possible to send coins without importing the private key into a computer which is connected to the Internet. In fact, this is how a properly run exchange or online wallet service ought to maintain its cold storage. Normally, funds are just sent to the public address of the cold storage. When it comes time to send coins out of cold storage, the private key is imported into an offline computer, the transaction is generated and signed, and the signed transaction is then broadcast using a different computer (which is connected to the network). This increases security as it prevents malicious attackers from gaining access to the private key because they simply have no way of connecting to the offline computer on which it is stored.</p>

CC BY-SA 3.0
2014-03-18T10:08:04.147Z
Excellent point about generating the signature in an offline computer and then transferring only the signature (never the private key) to an online computer for sending. This can be done with freely available [open source](http://en.wikipedia.org/wiki/Open-source_software) software, for example [Armory](https://bitcoinarmory.com/).
trichoplax is on Codidact now
CC BY-SA 3.0
2014-03-18T09:46:10.027Z
2014-03-18T09:46:10.027Z
Tony
<p>Since you need the private key in order to sign the transaction, you cannot send a transaction without touching your private key at some point.</p>

<p>However, you could use a thin client such as <a href="https://multibit.org/" rel="nofollow">MultiBit</a> instead of Bitcoin-Qt in order to get around syncing the full blockchain.</p>

CC BY-SA 3.0
2014-03-18T09:16:34.773Z
2014-03-18T09:16:34.773Z
Murch
<p>I have a cold storage wallet that I periodically move funds into.  I want to be able to send funds out of the wallet quickly.  Right now, I have to keep a clean VM up with the full blockchain, then import the key, send my funds, and basically revert my VM.  While it's manageable, i'm curious if there is a more elegant solution.</p>

CC BY-SA 3.0
2014-03-21T22:19:15.453Z
Don't think a clean VM protects you against all attacks. The host (hypervisor) needs to be clean too, as it can access anything inside the VM too and do keylogging etc. Malware may not be sophisticated enough YET but I'm sure it will be sooner than later.
Jannes
<bitcoin-core><bitcoind><wallet.dat><coldstorage>
Is it possible to send coins WITHOUT importing private key?
Richie Lai
# Is it possible to send coins WITHOUT importing private key?

(Asked by: username_0 on 2014-03-18)

I have a cold storage wallet that I periodically move funds into. I want to be able to send funds out of the wallet quickly. Right now, I have to keep a clean VM up with the full blockchain, then import the key, send my funds, and basically revert my VM. While it's manageable, i'm curious if there is a more elegant solution.

**Tags:** bitcoin-core, bitcoind, wallet.dat, coldstorage

> **Comments:**
> **username_1**: Don't think a clean VM protects you against all attacks. The host (hypervisor) needs to be clean too, as it can access anything inside the VM too and do keylogging etc. Malware may not be sophisticated enough YET but I'm sure it will be sooner than later.  

---

## 2 answers

### Answer by username_2 on 2014-03-18. Score: 8

Basically what username_4 said. You have to use the private key to sign the transaction.

There is a point I want to add, however. It *is* possible to send coins without importing the private key into a computer which is connected to the Internet. In fact, this is how a properly run exchange or online wallet service ought to maintain its cold storage. Normally, funds are just sent to the public address of the cold storage. When it comes time to send coins out of cold storage, the private key is imported into an offline computer, the transaction is generated and signed, and the signed transaction is then broadcast using a different computer (which is connected to the network). This increases security as it prevents malicious attackers from gaining access to the private key because they simply have no way of connecting to the offline computer on which it is stored.

> **Comments:**
> **username_3**: Excellent point about generating the signature in an offline computer and then transferring only the signature (never the private key) to an online computer for sending. This can be done with freely available [open source](http://en.wikipedia.org/wiki/Open-source_software) software, for example [Armory](https://bitcoinarmory.com/).  

---

### Answer by username_4 on 2014-03-18. Score: 2

Since you need the private key in order to sign the transaction, you cannot send a transaction without touching your private key at some point.

However, you could use a thin client such as [MultiBit](https://multibit.org/) instead of Bitcoin-Qt in order to get around syncing the full blockchain.


---

