<p>The approach does work. </p>

<p>From the offline setup I sent myself a small amount of BTC.</p>

<p>When the SSD was returned to the online computer, it caught up. The sent coins have been sent and subsequently received.</p>

<p>Apart from the potential inconvenience of moving the disk containing the blockchain between the 2 computers, it's very simple, and it works.</p>

CC BY-SA 4.0
2020-03-24T17:52:10.013Z
2020-03-24T17:52:10.013Z
Sal P
<p>If I understand you correctly, Im not sure your system will work, because your air-gapped laptop is never connected to the internet, the transaction wont get broadcast.  You can try it, I may be wrong.</p>

<p>I have done a similar process using rawtransactions, where you prepare the rawtransaction on an online computer, using an explorer API (<a href="https://chainz.cryptoid.info/api.dws" rel="nofollow noreferrer">https://chainz.cryptoid.info/api.dws</a> is one that I found works) you get the tx input and vin, create the rawtransaction and save the hex output to a small USB (smaller the better).  Then on your airgapped machine use signrawtransaction to sign it, then transfer that hex output back to the online machine and sendrawtransaction.</p>

<p>I automated that process in Python, you can see how it works in more detail on my github <a href="https://github.com/Scalextrix/coinofflinewallet" rel="nofollow noreferrer">https://github.com/Scalextrix/coinofflinewallet</a></p>

<p>It worked with QR codes as well for a fully airgapped solution, but I had a lot of trouble with the Python webcam/QRcode libraries and ended up not bothering.  My code is not extensively tested, its really an example, you should validate it fully before use.</p>

CC BY-SA 4.0
2020-03-21T22:38:47.600Z
I think I might try it.
Sal P
CC BY-SA 4.0
2020-03-21T22:46:29.627Z
It seems to me no different to disabling the network connection and then reconnecting, which you can do from the bottom right of the GUI client. Any transactions sent to the local blockchain should be synchronised when the SSD is moved back to online computer.
Sal P
CC BY-SA 4.0
2020-03-21T17:37:26.617Z
2020-03-21T17:42:50.950Z
2020-03-21T17:42:50.950Z
Scalextrix
<p><strong>Lesson learned the hard way</strong>: I lost a small value of bitcoins due to foolishly  backing up private keys to a file which was uploaded to a cloud server. My wallet used to be bitcoin core.</p>

<p>Right now my keys are in electrum with an air gapped laptop wallet and a watching wallet.</p>

<p>I'd prefer to use bitcoin core because having my own blockchain is preferable.</p>

<p>I know you can use bitkey, but as a Windows user, but it seems too complex. </p>

<p>I'm considering the following solution, and would welcome comments.</p>

<p>Currently, I still run bitcoin core with an empty wallet, on my desktop PC connected to the internet. The blockchain is on a separate SSD disk and I run the empty wallet to keep the blockchain up to date. </p>

<p>I would then keep a core wallet holding the keys to my coins, on the air gapped laptop. When I want to send or receive bitcoins I would move the SSD to the laptop. The SSD would use a SATA to USB connector, so it would be an easy plug in. As soon as I'd done the send or receive I would move the SSD back to the internet PC.</p>

<p>I assume that the blockchain on the SSD would resynch the send and receive transactions.</p>

<p>I could use Electrum Personal Server, but this means running other stuff which I don't understand. Armory is another option, but I'd prefer to stick with core.</p>

<p>Is my approach feasible? Secure? Overkill?</p>

<wallet-security><watch-only><offline-transactions>
Suggestion for Airgap Bitcoin Core - Comments?
Sal P
# Suggestion for Airgap Bitcoin Core - Comments?

(Asked by: username_0 on 2020-03-21)

**Lesson learned the hard way**: I lost a small value of bitcoins due to foolishly backing up private keys to a file which was uploaded to a cloud server. My wallet used to be bitcoin core.

Right now my keys are in electrum with an air gapped laptop wallet and a watching wallet.

I'd prefer to use bitcoin core because having my own blockchain is preferable.

I know you can use bitkey, but as a Windows user, but it seems too complex.

I'm considering the following solution, and would welcome comments.

Currently, I still run bitcoin core with an empty wallet, on my desktop PC connected to the internet. The blockchain is on a separate SSD disk and I run the empty wallet to keep the blockchain up to date.

I would then keep a core wallet holding the keys to my coins, on the air gapped laptop. When I want to send or receive bitcoins I would move the SSD to the laptop. The SSD would use a SATA to USB connector, so it would be an easy plug in. As soon as I'd done the send or receive I would move the SSD back to the internet PC.

I assume that the blockchain on the SSD would resynch the send and receive transactions.

I could use Electrum Personal Server, but this means running other stuff which I don't understand. Armory is another option, but I'd prefer to stick with core.

Is my approach feasible? Secure? Overkill?

**Tags:** wallet-security, watch-only, offline-transactions


---

## 2 answers

### Answer by username_0 on 2020-03-24. Score: 1

The approach does work.

From the offline setup I sent myself a small amount of BTC.

When the SSD was returned to the online computer, it caught up. The sent coins have been sent and subsequently received.

Apart from the potential inconvenience of moving the disk containing the blockchain between the 2 computers, it's very simple, and it works.


---

### Answer by username_1 on 2020-03-21. Score: 0

If I understand you correctly, Im not sure your system will work, because your air-gapped laptop is never connected to the internet, the transaction wont get broadcast. You can try it, I may be wrong.

I have done a similar process using rawtransactions, where you prepare the rawtransaction on an online computer, using an explorer API (<https://chainz.cryptoid.info/api.dws> is one that I found works) you get the tx input and vin, create the rawtransaction and save the hex output to a small USB (smaller the better). Then on your airgapped machine use signrawtransaction to sign it, then transfer that hex output back to the online machine and sendrawtransaction.

I automated that process in Python, you can see how it works in more detail on my github <https://github.com/username_1/coinofflinewallet>

It worked with QR codes as well for a fully airgapped solution, but I had a lot of trouble with the Python webcam/QRcode libraries and ended up not bothering. My code is not extensively tested, its really an example, you should validate it fully before use.

> **Comments:**
> **username_0**: I think I might try it.  
> **username_0**: It seems to me no different to disabling the network connection and then reconnecting, which you can do from the bottom right of the GUI client. Any transactions sent to the local blockchain should be synchronised when the SSD is moved back to online computer.  

---

