<p><strong>Background</strong></p>

<p>In order to answer the question let's first identify the key components inside a Bitcoin wallet:</p>

<p>Bitcoin <em>public keys</em> are derived by applying Elliptic Curve maths to a large random number (the <em>private key</em>).</p>

<p>A Bitcoin <em>address</em> is, in turn, derived by applying a series of transformations to a public key.</p>

<p>One private key is associated with one public key, and each public key creates one Bitcoin address. The <a href="https://en.bitcoin.it/wiki/Address" rel="nofollow noreferrer">Bitcoin wiki</a> provides details and examples.</p>

<p>A standard wallet typically contains and manages several private keys and their associated public keys and addresses.</p>

<p><a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" rel="nofollow noreferrer">BIP32</a> specifies a schema for creating a Hierarchical Deterministic (HD) wallet that uses a <em>seed phrase</em> to reliably and repeatably generate a single <em>master private key</em> and set of addresses.</p>

<p>When we speak of "cold storage", it can mean that we either store bitcoin in </p>

<ul>
<li>a single standard address with a single private key, or</li>
<li>an HD wallet - a set of addresses with a common master private key - all of which can be recreated from the seed phrase, or the <code>xprv</code> format private key</li>
</ul>

<p>The client mechanism for creating a standard address is different from the mechanism for creating an HD extended private key and its associated set of addresses. However, the mechanism for creating each is standardized. Wallet clients, like Electrum, can generally create addresses by either mechanism but implement their own schema for generating the HD seed phrase. Variations and changes are evident between different clients and even between different versions of the same client, e.g. the length of Electrum's seed phrase was changed some years ago.</p>

<p>The Bitcoin protocol accepts addresses produced by either method - the network simply sees valid Bitcoin address referenced in a transaction.</p>

<p><strong>Conclusion</strong></p>

<p>So, coming to your concern about HD client maintenance and its implications for cold storage, yes, there are risks. Who knows what the future holds, right?</p>

<p>Storing bitcoin, long-term, in a standard address means that you only have to back-up and secure the underlying private key. The bitcoin can be accessed easily and reliably, in future, by simply importing the private key into any standard wallet client or address tool script.</p>

<p>Using an HD wallet application for long-term storage could have the outcome that, after years or decades, the application has fallen out of maintenance or has changed its HD implementation. A solution would be to keep a backup of the application version that you had originally used to create the HD wallet. Also, exporting and securing the HD <em>master private key</em> in <code>xprv</code> format could be a mitigation. However, I have witnessed instances where <code>xprv</code> exports from one client fail to import to other HD clients, for whatever reason.</p>

<p>HD is useful and convenient for everyday use - provided it is frequently updated to new client versions. Otherwise, the HD client software will become outdated and may cease to function. Even when storing the original version, after years and decades, its dependencies on outdated software libraries and CPU/hardware architecture may render it inoperable.</p>

<p>For long-term cold storage a good rule of thumb is: simple and standard is safest.</p>

CC BY-SA 3.0
2017-06-23T01:41:10.303Z
"A solution would be to keep a backup of the application version that you had originally used to create the HD wallet. " 
Can it be that in the future the old HD-client that I save now cannot send transactions anymore?
Ini
CC BY-SA 3.0
2017-06-23T01:49:55.373Z
It could, plausibly, happen that transaction format changes in future. While I'm sure the developers would ensure backwards compatibility, it may - for some reason or another - turn out your client version (from 50 years ago!) does not construct valid transactions. However, if you can access your private key(s) via the old version, then you will be able to import them to a modern client at that time in order to spend your bitcoin.
venzen
CC BY-SA 3.0
2017-06-23T01:53:09.807Z
Provided the ancient client software, with its outdated libraries, is able to run in your future operating system! Hmmm... another reason for favoring standard address cold storage.
venzen
CC BY-SA 3.0
2017-06-23T01:56:16.573Z
You would just run the old operating system?
Ini
CC BY-SA 3.0
2017-06-23T02:08:13.530Z
That would work, but only if its CPU architecture still exists at that time! :)
venzen
CC BY-SA 4.0
2020-11-27T22:44:09.657Z
I still have my iPhone 1st Gen and my 2006 macbook...:)
bomben
CC BY-SA 3.0
2017-06-23T01:26:10.963Z
2017-06-23T02:24:10.747Z
2017-06-23T02:24:10.747Z
venzen
<p>(newby-question)</p>

<p>If I plan to use a cold wallet for longterm storage without following the news around bitcoin and my cold wallets application does not get maintained anymore in the meantime, can it be that I cannot access my funds in that wallet anymore or is this totally impossible?</p>

<p>Regarding that question is there a difference between a client that creates a seed of words and a client that creates a private key?</p>

<bitcoin-core><client><multibit><electrum><armory>
Can a bitcoin cold wallet become incompatible
Ini
# Can a bitcoin cold wallet become incompatible

(Asked by: username_0 on 2017-06-22)

(newby-question)

If I plan to use a cold wallet for longterm storage without following the news around bitcoin and my cold wallets application does not get maintained anymore in the meantime, can it be that I cannot access my funds in that wallet anymore or is this totally impossible?

Regarding that question is there a difference between a client that creates a seed of words and a client that creates a private key?

**Tags:** bitcoin-core, client, multibit, electrum, armory


---

## 1 answers

### Answer by username_1 on 2017-06-23. Score: 2 | Accepted answer

**Background**

In order to answer the question let's first identify the key components inside a Bitcoin wallet:

Bitcoin *public keys* are derived by applying Elliptic Curve maths to a large random number (the *private key*).

A Bitcoin *address* is, in turn, derived by applying a series of transformations to a public key.

One private key is associated with one public key, and each public key creates one Bitcoin address. The [Bitcoin wiki](https://en.bitcoin.it/wiki/Address) provides details and examples.

A standard wallet typically contains and manages several private keys and their associated public keys and addresses.

[BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) specifies a schema for creating a Hierarchical Deterministic (HD) wallet that uses a *seed phrase* to reliably and repeatably generate a single *master private key* and set of addresses.

When we speak of "cold storage", it can mean that we either store bitcoin in

* a single standard address with a single private key, or
* an HD wallet - a set of addresses with a common master private key - all of which can be recreated from the seed phrase, or the `xprv` format private key

The client mechanism for creating a standard address is different from the mechanism for creating an HD extended private key and its associated set of addresses. However, the mechanism for creating each is standardized. Wallet clients, like Electrum, can generally create addresses by either mechanism but implement their own schema for generating the HD seed phrase. Variations and changes are evident between different clients and even between different versions of the same client, e.g. the length of Electrum's seed phrase was changed some years ago.

The Bitcoin protocol accepts addresses produced by either method - the network simply sees valid Bitcoin address referenced in a transaction.

**Conclusion**

So, coming to your concern about HD client maintenance and its implications for cold storage, yes, there are risks. Who knows what the future holds, right?

Storing bitcoin, long-term, in a standard address means that you only have to back-up and secure the underlying private key. The bitcoin can be accessed easily and reliably, in future, by simply importing the private key into any standard wallet client or address tool script.

Using an HD wallet application for long-term storage could have the outcome that, after years or decades, the application has fallen out of maintenance or has changed its HD implementation. A solution would be to keep a backup of the application version that you had originally used to create the HD wallet. Also, exporting and securing the HD *master private key* in `xprv` format could be a mitigation. However, I have witnessed instances where `xprv` exports from one client fail to import to other HD clients, for whatever reason.

HD is useful and convenient for everyday use - provided it is frequently updated to new client versions. Otherwise, the HD client software will become outdated and may cease to function. Even when storing the original version, after years and decades, its dependencies on outdated software libraries and CPU/hardware architecture may render it inoperable.

For long-term cold storage a good rule of thumb is: simple and standard is safest.

> **Comments:**
> **username_0**: "A solution would be to keep a backup of the application version that you had originally used to create the HD wallet. "  Can it be that in the future the old HD-client that I save now cannot send transactions anymore?  
> **username_1**: It could, plausibly, happen that transaction format changes in future. While I'm sure the developers would ensure backwards compatibility, it may - for some reason or another - turn out your client version (from 50 years ago!) does not construct valid transactions. However, if you can access your private key(s) via the old version, then you will be able to import them to a modern client at that time in order to spend your bitcoin.  
> **username_1**: Provided the ancient client software, with its outdated libraries, is able to run in your future operating system! Hmmm... another reason for favoring standard address cold storage.  
> **username_0**: You would just run the old operating system?  
> **username_1**: That would work, but only if its CPU architecture still exists at that time! :)  
> **username_2**: I still have my iPhone 1st Gen and my 2006 macbook...:)  

---

