Skip to content

Commit afae144

Browse files
committed
Update README formatting
1 parent 8aa0115 commit afae144

File tree

3 files changed

+280
-260
lines changed

3 files changed

+280
-260
lines changed

README.org

Lines changed: 54 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#+title: Ethereum SLIP-39 Account Generation
1+
#+title: SLIP-39 Wallet "Seed" Generation & Backup
22
#+author: Perry Kundert
33
44
#+date: 2021-12-20 10:55:00
@@ -26,47 +26,57 @@ nil
2626
#+BEGIN_ABSTRACT
2727
Creating Ethereum, Bitcoin and other accounts is complex and fraught with potential for loss of funds.
2828

29-
A BIP-39 seed recovery phrase helps, but a *single* lapse in security dooms the account (and all
30-
derived accounts, in fact). If someone finds your recovery phrase (or you lose it), the accounts
31-
derived from that seed are /gone/.
29+
A 12- or 24-word BIP-39 seed recovery Mmnemonic Phrase helps, but a *single* lapse in security dooms
30+
the account (and all derived accounts, in fact). If someone finds your recovery phrase (or you lose
31+
it), the accounts derived from that seed are /gone/.
3232

3333
The SLIP-39 standard allows you to split the seed between 1, 2, or more groups of several mnemonic
3434
recovery phrases. This is better, but creating such accounts is difficult; presently, only the
35-
Trezor supports these, and they can only be created "manually". Writing down 5 or more sets of 20
36-
words is difficult, error-prone and time consuming.
37-
38-
The [[https://github.com/pjkundert/python-slip39.git][python-slip39]] project (and the [[https://slip39.com/app][SLIP-39 macOS/win32 App]]) exists to assist in the safe creation
39-
and documentation of [[https://wolovim.medium.com/ethereum-201-hd-wallets-11d0c93c87][Hierarchical Deterministic (HD) Wallet]] seeds and derived accounts, with
40-
various SLIP-39 sharing parameters. It generates the new random wallet seed, and generates the
41-
expected standard Ethereum account(s) (at [[https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2][derivation path]] =m/44'/60'/0'/0/0= by default) and Bitcoin
42-
accounts (at Bech32 derivation path =m/84'/0'/0'/0/0= by default), with wallet address and QR code
43-
(compatible with Trezor and Ledger derivations). It produces the required SLIP-39 phrases, and outputs a
44-
single PDF containing all the required printable cards to document the seed (and the specified
45-
derived accounts).
46-
47-
Output of BIP-38 or JSON encrypted Paper Wallets is supported, for import into standard software
48-
cryptocurrency wallets.
49-
50-
On an secure (ideally air-gapped) computer, new seeds can safely be generated and the PDF saved to a
51-
USB drive for printing (or directly printed without the file being saved to disk.). Presently,
52-
=slip39= can output example ETH, BTC, LTC, DOGE, BNB, CRO and XRP addresses derived from the seed,
53-
to /illustrate/ what accounts are associated with the backed-up seed. Recovery of the seed to a
54-
[[https://shop.trezor.io/product/trezor-model-t?offer_id=15&aff_id=10388][Trezor "Model T"]] is simple, by entering the mnemonics right on the device.
55-
56-
We also support backup of existing insecure and unreliable BIP-39 Seed Phrases as SLIP-39 Mnemonic
57-
cards, for existing BIP-39 hardware wallets like the [[https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f][Ledger Nano]], etc.! Recover from your existing
58-
BIP-39 Seed Phrase Mnemonic, select "Using BIP-39" (and enter your BIP-39 passphrase), and generate
59-
a set of SLIP-39 Mnemonic cards. Later, use the SLIP-39 App to recover from your SLIP-39 Mnemonic
60-
cards, click "Using BIP-39" to get your BIP-39 Mnemonic back, and use it (and your passphrase) to
61-
recover your accounts to your Ledger (or other) hardware wallet.
35+
Trezor supports these directly, and they can only be created "manually". Writing down 5 or more
36+
sets of 20 words is difficult, error-prone and time consuming.
6237
#+END_ABSTRACT
6338

6439
#+TOC: headlines 3
6540

41+
* Hardware Wallet "Seed" Configuration
42+
43+
#+BEGIN_QUOTE
44+
Your keys, your Bitcoin. Not your keys, not your Bitcoin.
45+
46+
---Andreas Antonopoulos
47+
#+END_QUOTE
48+
49+
The [[https://github.com/pjkundert/python-slip39.git][python-slip39]] project (and the [[https://slip39.com/app][SLIP-39 macOS/win32 App]]) exists to assist in the safe creation,
50+
backup and documentation of [[https://wolovim.medium.com/ethereum-201-hd-wallets-11d0c93c87][Hierarchical Deterministic (HD) Wallet]] seeds and derived accounts,
51+
with various SLIP-39 sharing parameters. It generates the new random wallet seed, and generates
52+
the expected standard Ethereum account(s) (at [[https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2][derivation path]] *m/44'/60'/0'/0/0* by default) and
53+
Bitcoin accounts (at Bech32 derivation path *m/84'/0'/0'/0/0* by default), with wallet address and
54+
QR code (compatible with Trezor and Ledger derivations). It produces the required SLIP-39
55+
phrases, and outputs a single PDF containing all the required printable cards to document the seed
56+
(and the specified derived accounts).
57+
58+
On an secure (ideally air-gapped) computer, new seeds can /safely/ be generated (*without*
59+
trusting this program) and the PDF saved to a USB drive for printing (or directly printed without
60+
the file being saved to disk.). Presently, =slip39= can output example ETH, BTC, LTC, DOGE, BNB,
61+
CRO and XRP addresses derived from the seed, to /illustrate/ what accounts are associated with the
62+
backed-up seed. Recovery of the seed to a [[https://shop.trezor.io/product/trezor-model-t?offer_id=15&aff_id=10388][Trezor "Model T"]] is simple, by entering the mnemonics
63+
right on the device.
64+
65+
We also support the backup of existing insecure and unreliable 12- or 24-word BIP-39 Mnemonic
66+
Phrases as SLIP-39 Mnemonic cards, for existing BIP-39 hardware wallets like the [[https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f][Ledger Nano]],
67+
etc.! Recover from your existing BIP-39 Seed Phrase Mnemonic, select "Using BIP-39" (and enter
68+
your BIP-39 passphrase), and generate a set of SLIP-39 Mnemonic cards. Later, use the SLIP-39 App
69+
to recover from your SLIP-39 Mnemonic cards, click "Using BIP-39" to get your BIP-39 Mnemonic
70+
back, and use it (and your passphrase) to recover your accounts to your Ledger (or other) hardware
71+
wallet.
72+
73+
Output of BIP-38 or JSON encrypted Paper Wallets is also supported, for import into standard
74+
software cryptocurrency wallets.
75+
6676
* Security with Availability
6777

6878
For both BIP-39 and SLIP-39, a 128- or 256-bit random "seed" is the source of an unlimited
69-
sequence of Ethereum and Bitcoin HD (Heirarchical Deterministic) derived Wallet accounts. Anyone
79+
sequence of Ethereum and Bitcoin Heirarchical Deterministic (HD) derived Wallet accounts. Anyone
7080
who can obtain this seed gains control of all Ethereum, Bitcoin (and other) accounts derived from
7181
it, so it must be securely stored.
7282

@@ -212,9 +222,9 @@ recover your accounts to your Ledger (or other) hardware wallet.
212222
#+LATEX: {\scriptsize
213223
#+BEGIN_SRC bash :exports both :results output
214224
slip39-recovery -v \
215-
--mnemonic "material leaf acrobat romp charity capital omit skunk change firm eclipse crush fancy best tracks flip grownup plastic chew peanut" \
225+
--mnemonic "material leaf acrobat romp charity capital omit skunk change firm eclipse crush fancy best tracks flip grownup plastic chew peanut" \
216226
--mnemonic "material leaf beard romp disaster duke flame uncover group slice guest blue gums duckling total suitable trust guitar payment platform" \
217-
2>&1
227+
2>&1
218228
#+END_SRC
219229

220230
#+RESULTS:
@@ -230,11 +240,11 @@ recover your accounts to your Ledger (or other) hardware wallet.
230240
#+LATEX: {\scriptsize
231241
#+BEGIN_SRC bash :exports both :results output
232242
slip39-recovery \
233-
--mnemonic "material leaf acrobat romp charity capital omit skunk change firm eclipse crush fancy best tracks flip grownup plastic chew peanut" \
243+
--mnemonic "material leaf acrobat romp charity capital omit skunk change firm eclipse crush fancy best tracks flip grownup plastic chew peanut" \
234244
--mnemonic "material leaf beard romp disaster duke flame uncover group slice guest blue gums duckling total suitable trust guitar payment platform" \
235245
| slip39 -c ETH -c BTC -c DOGE -c LTC --secret - \
236246
--no-card --wallet password --wallet-hint 'bad:pass...' \
237-
2>&1
247+
2>&1
238248
#+END_SRC
239249

240250
#+RESULTS:
@@ -728,9 +738,9 @@ recover your accounts to your Ledger (or other) hardware wallet.
728738
( python3 -m slip39.recovery --bip39 --mnemonic 'zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong' \
729739
| python3 -m slip39.generator --secret - --xpub --path "../-2'" --encrypt 'password' \
730740
| python3 -m slip39.generator -v --receive --decrypt 'password' \
731-
| while IFS=':' read num json; do \
732-
echo "--- $(( num ))"; \
733-
echo "$json" | jq -c '.[]'; \
741+
| while IFS=':' read num json; do \
742+
echo "--- $(( num ))"; \
743+
echo "$json" | jq -c '.[]'; \
734744
done \
735745
) 2>&1
736746
#+END_SRC
@@ -759,11 +769,11 @@ recover your accounts to your Ledger (or other) hardware wallet.
759769
( python3 -m slip39.recovery --bip39 --mnemonic 'zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong' \
760770
| python3 -m slip39.generator --secret - --xpub --path "../-2'" --encrypt 'password' \
761771
| python3 -m slip39.generator -v --receive --decrypt 'password' \
762-
| while IFS=':' read num json; do \
763-
echo "--- $(( num ))"; \
764-
echo "$json" | jq -cr '.[]|"--crypto " + .[0] + " --secret " + .[2]' | while read command; do \
765-
python3 -m slip39.cli -v --no-json addresses $command --paths m/0/-2; \
766-
done; \
772+
| while IFS=':' read num json; do \
773+
echo "--- $(( num ))"; \
774+
echo "$json" | jq -cr '.[]|"--crypto " + .[0] + " --secret " + .[2]' | while read command; do \
775+
python3 -m slip39.cli -v --no-json addresses $command --paths m/0/-2; \
776+
done; \
767777
done \
768778
) 2>&1
769779
#+END_SRC

README.pdf

3.83 KB
Binary file not shown.

0 commit comments

Comments
 (0)