<p>Creating a transaction requires access to the blockchain in order to know which outputs can be spent by the wallet. Access to the blockchain requires access to the internet, thus any such computer will be online.</p>

CC BY-SA 4.0
2021-03-06T02:01:22.953Z
maybe sometimes but not always, right?  I have a paper wallet, I know what it's address is holding, I'm ready to do my transaction offline - 2 steps.
davidbak
CC BY-SA 4.0
2021-03-06T02:44:29.533Z
@davidbak Knowing the address that your coins are assigned to isn't enough. You need to know the txid and output index that actually credited the address in order to produce a transaction that spends.
Pieter Wuille
CC BY-SA 4.0
2021-03-06T02:51:30.333Z
ah.  i've got a blockchain on my offline computer that I keep fairly up to date by transferring an entire hard disk.  maybe that's why it works.
davidbak
CC BY-SA 4.0
2021-03-05T17:49:33.557Z
2021-03-05T17:49:33.557Z
Ava Chow
<p>Building the unsigned transaction requires the input data(transaction IDs, vout, values), and is also good practice to check the network fee climate prior to setting a fee in the transaction you are building.</p>
<p>Technically yes you could do it in two steps but it would be considered for advanced users only and still prone to typos or other errors during the input data entry.</p>
<p>Related repository of mine that lets you skip step 1 and do it in 2 steps if you choose. (NOT A RECOMMENDATION, EXAMPLE ONLY TEST SOFTWARE USE AT OWN RISK) <a href="https://coinables.github.io/coldsigner/" rel="nofollow noreferrer">https://coinables.github.io/coldsigner/</a></p>

CC BY-SA 4.0
2021-03-06T02:02:52.897Z
you can check the network fee on any site that provides that information on any computer that's handy - you don't have to create your unsigned transaction right there with internet access, right?
davidbak
CC BY-SA 4.0
2021-03-06T02:12:36.187Z
Yes of course, I suppose my reference to the fee isn't really pertinent here.
m1xolyd1an
CC BY-SA 4.0
2021-03-05T20:24:54.977Z
2021-03-06T02:42:21.677Z
2021-03-06T02:42:21.677Z
m1xolyd1an
<p>I was reading about cold/offline storage and from what I have seen all clients seem to work the same. Requiring you to create the transaction on the online computer, getting it to the offline computer and signing it, then getting it back to the online computer to broadcast, but I don't get why? It seems to me you should be able to make this in two steps and it would also make it more secure as data only ever have to flow in one direction. You create and sign the transaction on the offline computer then you get it to the online computer to broadcast. So why is it not implemented like this in clients?</p>

CC BY-SA 4.0
2021-03-06T02:07:31.727Z
It isn't _necessary_, but it is convenient.  On the very few occasions I need to create a transaction _from_ an address I own I do it all on the offline computer.  I create a new key/address pair for the unspent amount on that offline computer.  Yes, I type in the private key from my paper wallet, it's not hard.  I open up a brand new SD card package, put the signed transaction on the new card, move that to my online computer, inject the transaction into the network, and break the sd card. (Last step isn't strictly necessary but its fun and makes everything seem "final".)
davidbak
<transactions><coldstorage>
Why does all cold/offline storage setup require three steps?
Dragon Creature
# Why does all cold/offline storage setup require three steps?

(Asked by: username_0 on 2021-03-05)

I was reading about cold/offline storage and from what I have seen all clients seem to work the same. Requiring you to create the transaction on the online computer, getting it to the offline computer and signing it, then getting it back to the online computer to broadcast, but I don't get why? It seems to me you should be able to make this in two steps and it would also make it more secure as data only ever have to flow in one direction. You create and sign the transaction on the offline computer then you get it to the online computer to broadcast. So why is it not implemented like this in clients?

**Tags:** transactions, coldstorage

> **Comments:**
> **username_1**: It isn't _necessary_, but it is convenient.  On the very few occasions I need to create a transaction _from_ an address I own I do it all on the offline computer.  I create a new key/address pair for the unspent amount on that offline computer.  Yes, I type in the private key from my paper wallet, it's not hard.  I open up a brand new SD card package, put the signed transaction on the new card, move that to my online computer, inject the transaction into the network, and break the sd card. (Last step isn't strictly necessary but its fun and makes everything seem "final".)  

---

## 2 answers

### Answer by username_4 on 2021-03-05. Score: 3 | Accepted answer

Building the unsigned transaction requires the input data(transaction IDs, vout, values), and is also good practice to check the network fee climate prior to setting a fee in the transaction you are building.

Technically yes you could do it in two steps but it would be considered for advanced users only and still prone to typos or other errors during the input data entry.

Related repository of mine that lets you skip step 1 and do it in 2 steps if you choose. (NOT A RECOMMENDATION, EXAMPLE ONLY TEST SOFTWARE USE AT OWN RISK) <https://coinables.github.io/coldsigner/>

> **Comments:**
> **username_1**: you can check the network fee on any site that provides that information on any computer that's handy - you don't have to create your unsigned transaction right there with internet access, right?  
> **username_4**: Yes of course, I suppose my reference to the fee isn't really pertinent here.  

---

### Answer by username_2 on 2021-03-05. Score: 1

Creating a transaction requires access to the blockchain in order to know which outputs can be spent by the wallet. Access to the blockchain requires access to the internet, thus any such computer will be online.

> **Comments:**
> **username_1**: maybe sometimes but not always, right?  I have a paper wallet, I know what it's address is holding, I'm ready to do my transaction offline - 2 steps.  
> **username_3**: @username_1 Knowing the address that your coins are assigned to isn't enough. You need to know the txid and output index that actually credited the address in order to produce a transaction that spends.  
> **username_1**: ah.  i've got a blockchain on my offline computer that I keep fairly up to date by transferring an entire hard disk.  maybe that's why it works.  

---

