<p>The design/structure of a paper wallet is not something is set in stone, but the main idea is writing public and private key pairs on a piece of paper.</p>
<p>The universal flow for generating an address is:</p>
<ol>
<li>A public key is derived from private key</li>
<li>A bitcoin address is derived from public key</li>
</ol>
<p>The common flow (Mnemonic) for generating an address is:</p>
<ol>
<li>Master private key is derived from mnemonic phrases</li>
<li>A private key is derived from master private key</li>
<li>A public key is derived from private key</li>
<li>A bitcoin address is derived from public key</li>
</ol>
<p>As you can see 3rd and 4th steps of Mnemonic key-generation flow are the same as universal key-generation flow. You can unlock your Bitcoin with plain private key without mnemonic phrases. Mnemonic phrases are just used to derive private key, so you can simply write down public key(65-byte or 33-byte) and private key(32-byte) onto a piece of paper regardless how you generated your key-pairs.</p>

CC BY-SA 4.0
2020-11-11T11:55:39.027Z
2020-11-11T12:05:30.233Z
2020-11-11T12:05:30.233Z
Brqoo
<p>I'm installing <code>bitcoin-core</code> with <code>snap</code> on <code>Ubuntu</code> for a <a href="https://bitcoin.stackexchange.com/q/99945/111738">dry-run at generating a paper</a> wallet.</p>
<p>Perhaps naively, I thought to &quot;write down&quot; something like:</p>
<pre><code>nicholas@mordor:~/bitcoin$ 
nicholas@mordor:~/bitcoin$ ls
nicholas@mordor:~/bitcoin$ 
nicholas@mordor:~/bitcoin$ ssh-keygen -t ed25519 -C saunders.nicholas@gmail.com
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/nicholas/.ssh/id_ed25519): ./bitcoin_wallet
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ./bitcoin_wallet
Your public key has been saved in ./bitcoin_wallet.pub
The key fingerprint is:
SHA256:MtZQUFLqDWU0fJbkFhner+ZRF1WZ1MacM0WOBbGPvCc saunders.nicholas@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|      o*O.++  +B&amp;|
|       *.+=o   @*|
|      +  o+ . oo+|
|     . = .   o o.|
|      = S     = o|
|     . o     o o |
|            + E .|
|           o . o |
|            .    |
+----[SHA256]-----+
nicholas@mordor:~/bitcoin$ 
nicholas@mordor:~/bitcoin$ ls
bitcoin_wallet  bitcoin_wallet.pub
nicholas@mordor:~/bitcoin$ 
nicholas@mordor:~/bitcoin$ cat bitcoin_wallet
-----BEGIN OPENSSH PRIVATE KEY-----
b3...AAtzc2gtZW
QyNTUxOQAAACD...AAAKBLLY/ISy2P
yAAAAAt...jpB6ZXAZLiLoXx+D9kw
AA..JYB62mUlxCESA
KyOkHp...LmNvbQEC
-----END OPENSSH PRIVATE KEY-----
nicholas@mordor:~/bitcoin$ 
nicholas@mordor:~/bitcoin$ cat bitcoin_wallet.pub 
ssh-ed25519 AAA..IuhfH4P2T saunders.nicholas@gmail.com
nicholas@mordor:~/bitcoin$ 
</code></pre>
<p>where I need the public and private key.  Obviously, very easy to make a mistake, but isn't that what's required??</p>
<p>I'm not understanding all this mention of writing down seed words or passphrases.  Isn't the key pair required?</p>
<hr />
<p><em>leaving aside QR codes or other automated tools for storing keys.</em></p>

CC BY-SA 4.0
2020-11-11T20:42:22.263Z
Bitcoin Core doesn't really support paper wallets. It's possible to kind of do it if you really know what you're doing, but it's not advisable. The supported mode of operation is backing up your wallet.dat file.
Pieter Wuille
<bitcoin-core><paper-wallet><wallet-security><coldstorage><hardware-wallet>
What needs to be written down for a paper wallet?
Nicholas Saunders
# What needs to be written down for a paper wallet?

(Asked by: username_0 on 2020-11-11)

I'm installing `bitcoin-core` with `snap` on `Ubuntu` for a [dry-run at generating a paper](https://bitcoin.stackexchange.com/q/99945/111738) wallet.

Perhaps naively, I thought to "write down" something like:

```
username_0@mordor:~/bitcoin$ 
username_0@mordor:~/bitcoin$ ls
username_0@mordor:~/bitcoin$ 
username_0@mordor:~/bitcoin$ ssh-keygen -t ed25519 -C username_0.username_0@gmail.com
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/username_0/.ssh/id_ed25519): ./bitcoin_wallet
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ./bitcoin_wallet
Your public key has been saved in ./bitcoin_wallet.pub
The key fingerprint is:
SHA256:MtZQUFLqDWU0fJbkFhner+ZRF1WZ1MacM0WOBbGPvCc username_0.username_0@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|      o*O.++  +B&|
|       *.+=o   @*|
|      +  o+ . oo+|
|     . = .   o o.|
|      = S     = o|
|     . o     o o |
|            + E .|
|           o . o |
|            .    |
+----[SHA256]-----+
username_0@mordor:~/bitcoin$ 
username_0@mordor:~/bitcoin$ ls
bitcoin_wallet  bitcoin_wallet.pub
username_0@mordor:~/bitcoin$ 
username_0@mordor:~/bitcoin$ cat bitcoin_wallet
-----BEGIN OPENSSH PRIVATE KEY-----
b3...AAtzc2gtZW
QyNTUxOQAAACD...AAAKBLLY/ISy2P
yAAAAAt...jpB6ZXAZLiLoXx+D9kw
AA..JYB62mUlxCESA
KyOkHp...LmNvbQEC
-----END OPENSSH PRIVATE KEY-----
username_0@mordor:~/bitcoin$ 
username_0@mordor:~/bitcoin$ cat bitcoin_wallet.pub 
ssh-ed25519 AAA..IuhfH4P2T username_0.username_0@gmail.com
username_0@mordor:~/bitcoin$ 

```

where I need the public and private key. Obviously, very easy to make a mistake, but isn't that what's required??

I'm not understanding all this mention of writing down seed words or passphrases. Isn't the key pair required?

---

*leaving aside QR codes or other automated tools for storing keys.*

**Tags:** bitcoin-core, paper-wallet, wallet-security, coldstorage, hardware-wallet

> **Comments:**
> **username_1**: Bitcoin Core doesn't really support paper wallets. It's possible to kind of do it if you really know what you're doing, but it's not advisable. The supported mode of operation is backing up your wallet.dat file.  

---

## 1 answers

### Answer by username_2 on 2020-11-11. Score: 2 | Accepted answer

The design/structure of a paper wallet is not something is set in stone, but the main idea is writing public and private key pairs on a piece of paper.

The universal flow for generating an address is:

1. A public key is derived from private key
2. A bitcoin address is derived from public key

The common flow (Mnemonic) for generating an address is:

1. Master private key is derived from mnemonic phrases
2. A private key is derived from master private key
3. A public key is derived from private key
4. A bitcoin address is derived from public key

As you can see 3rd and 4th steps of Mnemonic key-generation flow are the same as universal key-generation flow. You can unlock your Bitcoin with plain private key without mnemonic phrases. Mnemonic phrases are just used to derive private key, so you can simply write down public key(65-byte or 33-byte) and private key(32-byte) onto a piece of paper regardless how you generated your key-pairs.


---

