<p>You only need to have the private key of the address. So if you have a wallet with lots of address, you need to store at least the private key for each of these addresses.</p>

<p>To export/import the private keys from/into a wallet file you can use <a href="https://github.com/jackjack-jj/pywallet" rel="nofollow noreferrer">Pywallet</a> (check <a href="https://bitcoin.stackexchange.com/questions/447/is-there-some-way-to-merge-two-wallets-or-to-import-export-addresses">this question</a>).</p>

<p>For long term archival it is common to write down private keys in a piece of paper and keep it in a safe place. <a href="https://www.bitaddress.org" rel="nofollow noreferrer">Bitaddress.org</a> might be useful for that. </p>

CC BY-SA 3.0
2011-10-19T17:25:22.633Z
Deterministic wallets are also growing in popularity, and allow you to generate a series of privkeys from a passphrase. This is especially handy since most folks will have far more than one privkey in their wallet.
David Perry
CC BY-SA 3.0
2011-10-19T11:41:50.993Z
2011-10-19T11:41:50.993Z
2017-04-13T12:47:34.187Z
nmat
<p>Any 256-bit value is a valid private key. And <em>any</em> value at all has a SHA-256 hash that is a 256-bit value. So essentially, anything that an attacker cannot predict is sufficient.</p>

<p>The method is as follows:</p>

<ol>
<li><p>Pick something an attacker cannot predict, like "U cannot h4z my b1tCOINz!!".</p></li>
<li><p>Compute the SHA-256 hash of that string.</p></li>
<li><p>Compute the corresponding public key for that ECDSA private key.</p></li>
<li><p>Compute the corresponding bitcoin address for that public key.</p></li>
<li><p>Send the funds to that address.</p></li>
</ol>

<p>To retrieve the funds, perform step 2 again, import that private key into your wallet, and re-scan.</p>

<p><a href="https://www.casascius.com/" rel="nofollow">Casascius</a> uses this same method in their physical bitcoins. They use it to minimize the amount of information that needs to be printed inside the coin. So you can actually use the same tools.</p>

CC BY-SA 3.0
2011-10-26T12:06:27.520Z
Nice clear steps! That's pretty cool what Casascius have done with a physical representation, wasn't aware of that!
barrymac
CC BY-SA 3.0
2011-10-19T18:21:33.900Z
2011-10-19T18:21:33.900Z
David Schwartz
<p>Nmat answer is correct the absolute minimum you would need to rebuild a wallet is the private key of the address.</p>

<p>An alternative is a deterministic wallet.  </p>

<p><a href="https://bitcoin.stackexchange.com/questions/718/what-is-a-deterministic-wallet">What is a deterministic wallet?</a></p>

<p>A deterministic wallet can use cryptographic algorithms to create (and recreate) and wallet containing multiple public/private keys from a single passphrase.</p>

<p>A deterministic wallet has the advantage of being able to create an infinite number of addresses from a single passphrase.</p>

<p>A deterministic wallet has the disadvantage that if the passphrase is retained but the software &amp; algorithm is lost then the addresses can never be recreated and all value lost.</p>

<p>That risk could be partially mitigated by keeping multiple copies of the wallet generation software both online and offline.  As a final backup the algorithm (and optionally  the passphrase) could be etched or cut into a thin sheet of aluminum (8.5" x 11" to simplify storage) using a laser cutter.  This would provide a time resistant disaster recovery method.  Using a sheet with dimensions of standard documents would allow it to be easily stored in a safe or safety deposit box.  This task is simplified because many cryptographic algorithms can be expressed using diagrams which reduces the amount of space necessary to express the algorithm.</p>

<p>For example SHA-256 (and SHA-512) can be partially expressed by this diagram:</p>

<p><img src="https://i.sstatic.net/DH5xw.png" alt="SHA-256 diagram"></p>

<p>To completely express the algorithm you also need to record each variable, the number of rounds, and the meaning of the symbol operators.</p>

CC BY-SA 3.0
2011-10-19T12:36:45.837Z
2011-10-21T13:17:06.713Z
2017-04-13T12:47:36.707Z
DeathAndTaxes
<p>As far as I gather a wallet can remain offline indefinitely transactions are being sent to it. The network will keep track of the transaction so that the next time it is connected it will catch up. </p>

<p>Is the entire wallet file necessary for this process? is it possible in theory to strip it down at all and recreate from even less than a minimal wallet file? </p>

<p>I would essentially like to know what is the minimum theoretical data footprint required to obtain access to balance. The motivation behind my question is that many long term archival data formats are not very dense. Like stone etchings for example</p>

CC BY-SA 3.0
2011-10-26T12:12:19.910Z
Wow amazing answers for this. Very interesting stuff! thanks to all!
barrymac
<wallet><backup><future-proof>
What is the absolute minimum amount of information required to have access to a bitcoin balance and or a wallet file?
barrymac
# What is the absolute minimum amount of information required to have access to a bitcoin balance and or a wallet file?

(Asked by: username_0 on 2011-10-19)

As far as I gather a wallet can remain offline indefinitely transactions are being sent to it. The network will keep track of the transaction so that the next time it is connected it will catch up.

Is the entire wallet file necessary for this process? is it possible in theory to strip it down at all and recreate from even less than a minimal wallet file?

I would essentially like to know what is the minimum theoretical data footprint required to obtain access to balance. The motivation behind my question is that many long term archival data formats are not very dense. Like stone etchings for example

**Tags:** wallet, backup, future-proof

> **Comments:**
> **username_0**: Wow amazing answers for this. Very interesting stuff! thanks to all!  

---

## 3 answers

### Answer by username_4 on 2011-10-19. Score: 7 | Accepted answer

username_1 answer is correct the absolute minimum you would need to rebuild a wallet is the private key of the address.

An alternative is a deterministic wallet.

[What is a deterministic wallet?](https://bitcoin.stackexchange.com/questions/718/what-is-a-deterministic-wallet)

A deterministic wallet can use cryptographic algorithms to create (and recreate) and wallet containing multiple public/private keys from a single passphrase.

A deterministic wallet has the advantage of being able to create an infinite number of addresses from a single passphrase.

A deterministic wallet has the disadvantage that if the passphrase is retained but the software & algorithm is lost then the addresses can never be recreated and all value lost.

That risk could be partially mitigated by keeping multiple copies of the wallet generation software both online and offline. As a final backup the algorithm (and optionally the passphrase) could be etched or cut into a thin sheet of aluminum (8.5" x 11" to simplify storage) using a laser cutter. This would provide a time resistant disaster recovery method. Using a sheet with dimensions of standard documents would allow it to be easily stored in a safe or safety deposit box. This task is simplified because many cryptographic algorithms can be expressed using diagrams which reduces the amount of space necessary to express the algorithm.

For example SHA-256 (and SHA-512) can be partially expressed by this diagram:

![SHA-256 diagram](https://i.sstatic.net/DH5xw.png)

To completely express the algorithm you also need to record each variable, the number of rounds, and the meaning of the symbol operators.


---

### Answer by username_1 on 2011-10-19. Score: 4

You only need to have the private key of the address. So if you have a wallet with lots of address, you need to store at least the private key for each of these addresses.

To export/import the private keys from/into a wallet file you can use [Pywallet](https://github.com/jackjack-jj/pywallet) (check [this question](https://bitcoin.stackexchange.com/questions/447/is-there-some-way-to-merge-two-wallets-or-to-import-export-addresses)).

For long term archival it is common to write down private keys in a piece of paper and keep it in a safe place. [Bitaddress.org](https://www.bitaddress.org) might be useful for that.

> **Comments:**
> **username_2**: Deterministic wallets are also growing in popularity, and allow you to generate a series of privkeys from a passphrase. This is especially handy since most folks will have far more than one privkey in their wallet.  

---

### Answer by username_3 on 2011-10-19. Score: 3

Any 256-bit value is a valid private key. And *any* value at all has a SHA-256 hash that is a 256-bit value. So essentially, anything that an attacker cannot predict is sufficient.

The method is as follows:

1. Pick something an attacker cannot predict, like "U cannot h4z my b1tCOINz!!".
2. Compute the SHA-256 hash of that string.
3. Compute the corresponding public key for that ECDSA private key.
4. Compute the corresponding bitcoin address for that public key.
5. Send the funds to that address.

To retrieve the funds, perform step 2 again, import that private key into your wallet, and re-scan.

[Casascius](https://www.casascius.com/) uses this same method in their physical bitcoins. They use it to minimize the amount of information that needs to be printed inside the coin. So you can actually use the same tools.

> **Comments:**
> **username_0**: Nice clear steps! That's pretty cool what Casascius have done with a physical representation, wasn't aware of that!  

---

