<p>Yes, all three assumptions are correct. You can with some effort keep your private keys offline for their entire life.</p>

<p>A description of how to sign transactions offline is found here: <a href="https://bitcoin.stackexchange.com/q/8101/5406">How to sign a transaction using only an offline computer?</a></p>

<hr>

<p>Adding a bit of detail on Assumption 3 along the lines of Tim S.'s comment: A computer that is offline would obviously not get updates from the network, so it would also not know which transaction outputs are available for spending. This could be mitigated by importing the blockchain data to the offline computer (for example with the <a href="https://bitcoin.stackexchange.com/q/16769/5406"><code>bootstrap.dat</code></a>). </p>

<p>However, it would be much easier to create a two wallet setup, where one online wallet knows only the addresses, and the offline wallet has the private keys. You then create the transaction on the online wallet, which has the transactional information and sign it on the offline wallet. That's what is described in the above linked question as well.</p>

<p>Update in 2017: The creation of a transaction on the online device and signing on the offline device is essentially what hardware wallets such as Trezor do.</p>

CC BY-SA 3.0
2015-01-14T17:37:02.680Z
There are also solutions like [Ledger Wallet](https://www.ledgerwallet.com) in which private keys are kept on a hardware chip and never leave the hardware; it performs signing on-chip.
Chuck Batson
CC BY-SA 3.0
2015-01-14T14:15:10.337Z
2017-05-23T16:49:55.243Z
2017-05-23T16:49:55.243Z
Murch
<p>I am new to Bitcoin and this question is based on 3 assumptions that may be incorrect.</p>

<p><strong>Assumption 1:</strong>
If I understand correctly, the Bitcoin address is generated algorithmically independent of the network, so I should be able to create a public address and private key offline correct?</p>

<p><strong>Assumption 2:</strong>
I can receive funds through the network using my public address without ever having to make my private key known to anyone correct?</p>

<p><strong>Assumption 3:</strong>
Now when it's time to spend my funds, offline I can create a Bitcoin transaction authorizing the transfer from my address to another location and sign it with my private key entirely offline. I can then transfer that transaction to a separate computer with internet access and then publish that transaction to the Bitcoin network to be mined/verified in the blockchain?</p>

<p><strong>Conclusion:</strong>
If all 3 points are true then I should be able to keep my private key from the internet for it's entire life correct?</p>

CC BY-SA 3.0
2015-01-14T18:02:05.480Z
Yep, only nitpick is on assumption 3, the transaction is not just "pay from my address to other address(es)", but "pay from transaction(s) xyz to other address(es)". What this means in practice is that you'll get the transaction ready on an online computer, sign it on the offline computer, then publish it from the online computer.
Tim S.
<transactions><blockchain><private-key><public-key>
Can private keys remain offline for their entire life?
Usman Mutawakil
# Can private keys remain offline for their entire life?

(Asked by: username_0 on 2015-01-14)

I am new to Bitcoin and this question is based on 3 assumptions that may be incorrect.

**Assumption 1:**
If I understand correctly, the Bitcoin address is generated algorithmically independent of the network, so I should be able to create a public address and private key offline correct?

**Assumption 2:**
I can receive funds through the network using my public address without ever having to make my private key known to anyone correct?

**Assumption 3:**
Now when it's time to spend my funds, offline I can create a Bitcoin transaction authorizing the transfer from my address to another location and sign it with my private key entirely offline. I can then transfer that transaction to a separate computer with internet access and then publish that transaction to the Bitcoin network to be mined/verified in the blockchain?

**Conclusion:**
If all 3 points are true then I should be able to keep my private key from the internet for it's entire life correct?

**Tags:** transactions, blockchain, private-key, public-key

> **Comments:**
> **username_1**: Yep, only nitpick is on assumption 3, the transaction is not just "pay from my address to other address(es)", but "pay from transaction(s) xyz to other address(es)". What this means in practice is that you'll get the transaction ready on an online computer, sign it on the offline computer, then publish it from the online computer.  

---

## 1 answers

### Answer by username_2 on 2015-01-14. Score: 12 | Accepted answer

Yes, all three assumptions are correct. You can with some effort keep your private keys offline for their entire life.

A description of how to sign transactions offline is found here: [How to sign a transaction using only an offline computer?](https://bitcoin.stackexchange.com/q/8101/5406)

---

Adding a bit of detail on Assumption 3 along the lines of username_1.'s comment: A computer that is offline would obviously not get updates from the network, so it would also not know which transaction outputs are available for spending. This could be mitigated by importing the blockchain data to the offline computer (for example with the [`bootstrap.dat`](https://bitcoin.stackexchange.com/q/16769/5406)).

However, it would be much easier to create a two wallet setup, where one online wallet knows only the addresses, and the offline wallet has the private keys. You then create the transaction on the online wallet, which has the transactional information and sign it on the offline wallet. That's what is described in the above linked question as well.

Update in 2017: The creation of a transaction on the online device and signing on the offline device is essentially what hardware wallets such as Trezor do.

> **Comments:**
> **username_3**: There are also solutions like [Ledger Wallet](https://www.ledgerwallet.com) in which private keys are kept on a hardware chip and never leave the hardware; it performs signing on-chip.  

---

