Skip to content

Commit 8aa0115

Browse files
committed
Update README, App w/ some serial port documentation
1 parent 686859d commit 8aa0115

File tree

9 files changed

+256
-137
lines changed

9 files changed

+256
-137
lines changed

App.org

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -222,35 +222,39 @@ related to the Seed.
222222
support a wide range of cryptocurrencies; presently, only BTC, ETH, XRP, LTC, BCH, USDC, and a
223223
few other lesser-known coins.
224224

225+
They also have a crypto-backed credit card which works well in Canada.
226+
225227
** Crypto.com
226228

227229
Use my referral link for [[https://crypto.com/app/2x4hk92dnf][Crypto.com (referral code: 2x4hk92dnf)]] to sign up for Crypto.com and we
228230
both get $25 USD :)
229231

230232
The Crypto.com exchange has many more coins available, as well as a crypto-funded credit card
231-
that presently works in Canada.
233+
that works in Canada.
232234

233235
** Protecting your SLIP-39 Cards
234236

235237
Protect your printed SLIP-39 cards from water damage by laminating them in plastic or storing
236-
them in [[https://amzn.to/3KxvQ1G][foil ziplock bags]] before [[https://amzn.to/3HCX8lv][mailing them]].
238+
them in [[https://amzn.to/3EgdfGb][foil ziplock bags]] before [[https://amzn.to/3G5zOjk][mailing them]].
237239
#+BEGIN_EXPORT html
238-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08G8JNLVX&linkId=ef9c22a5d125ab5b1a8d3f3cd27456fb"></iframe>
239-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07WXMYX87&linkId=06e0f5d889c93f5427c379ddc5fa6857"></iframe>
240+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08G8JNLVX&linkId=e584b2c9a1ab8e3b9451241d50e99994"></iframe>
241+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07WXMYX87&linkId=d36eaab43ae10799576d1bf6aa06db48"></iframe>
240242
#+END_EXPORT
241243

242244
Print the SLIP-39 cards and cut them out, and then lay them out with 1/2" margins (so you can cut
243-
them out after lamination and retain 1/4" borders), either with [[https://amzn.to/3K6wp2p][self-adhesive full-page
244-
laminating sheets]] - no machine required (or [[https://amzn.to/3vyyKPw][index-card size]] sheets),
245+
them out after lamination and retain 1/4" borders), either with [[https://amzn.to/3NRr9Tr][full-page self-adhesive]] (or
246+
[[https://amzn.to/3G8NQ3w][index-card size]]) laminating sheets -- no machine required.
245247
#+BEGIN_EXPORT html
246-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00007E7D2&linkId=608ce5dd44a7a227327c9000d6442c92"></iframe>
247-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00ENFRAX8&linkId=4ef3861c37b523826fcf6d3a87349890"></iframe>
248+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B06ZY31ZB3&linkId=9450e15b915a57d90c9a3172194d5269"></iframe>
249+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00ENFRAX8&linkId=2496ae94b1c07ac33bac10452ca754d1"></iframe>
248250
#+END_EXPORT
249-
or with a [[https://amzn.to/3IyMkGt][heat-laminating machine]] in [[https://amzn.to/3C1N3NI][full-page pouches]] (or in [[https://amzn.to/35z7RA5][index-card size pouches]]).
251+
252+
Ideally, use a [[https://amzn.to/3UJqBkB][heat-laminating machine]] in [[https://amzn.to/3G4ZmNu][full-page pouches]] (or in [[https://amzn.to/3G4Zuws][index-card size pouches]]). This is
253+
the best option, in my opinion.
250254
#+BEGIN_EXPORT html
251-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B018UOYJZ4&linkId=12211cd757266604642e6fb78d04377d"></iframe>
252-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00BWU3HNY&linkId=dcc0671406aa42d30b3e09a1cc08154f"></iframe>
253-
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B001B0ES1K&linkId=6c8f34fe77e3b87e6f8c53e3485bf594"></iframe>
255+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B018UOYJZ4&linkId=0513e65d25ae54d508452fd8336bd981"></iframe>
256+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00BWU3HNY&linkId=62ebedd04e75446cc7e35f6333886825"></iframe>
257+
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=pjkundert06-20&language=en_CA&o=15&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B001B0ES1K&linkId=9561218d8582a651832712b8badd2e09"></iframe>
254258
#+END_EXPORT
255259

256260
* Privacy Policy

App.pdf

31 Bytes
Binary file not shown.

App.txt

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ Windows)] <https://github.com/pjkundert/python-slip39/releases/latest>
285285
presently, only BTC, ETH, XRP, LTC, BCH, USDC, and a few other
286286
lesser-known coins.
287287

288+
They also have a crypto-backed credit card which works well in Canada.
289+
288290

289291
[Netcoins.app (referral code: 5YO1MZ)]
290292
<https://netcoins.app/r?ac=5YO1MZ>
@@ -297,7 +299,7 @@ Windows)] <https://github.com/pjkundert/python-slip39/releases/latest>
297299
sign up for Crypto.com and we both get $25 USD :)
298300

299301
The Crypto.com exchange has many more coins available, as well as a
300-
crypto-funded credit card that presently works in Canada.
302+
crypto-funded credit card that works in Canada.
301303

302304

303305
[Crypto.com (referral code: 2x4hk92dnf)]
@@ -312,25 +314,25 @@ Windows)] <https://github.com/pjkundert/python-slip39/releases/latest>
312314
them].
313315
Print the SLIP-39 cards and cut them out, and then lay them out with
314316
1/2" margins (so you can cut them out after lamination and retain 1/4"
315-
borders), either with [self-adhesive full-page laminating sheets] - no
316-
machine required (or [index-card size] sheets),
317-
or with a [heat-laminating machine] in [full-page pouches] (or in
318-
[index-card size pouches]).
317+
borders), either with [full-page self-adhesive] (or [index-card size])
318+
laminating sheets – no machine required.
319+
Ideally, use a [heat-laminating machine] in [full-page pouches] (or in
320+
[index-card size pouches]). This is the best option, in my opinion.
319321

320322

321-
[foil ziplock bags] <https://amzn.to/3KxvQ1G>
323+
[foil ziplock bags] <https://amzn.to/3EgdfGb>
322324

323-
[mailing them] <https://amzn.to/3HCX8lv>
325+
[mailing them] <https://amzn.to/3G5zOjk>
324326

325-
[self-adhesive full-page laminating sheets] <https://amzn.to/3K6wp2p>
327+
[full-page self-adhesive] <https://amzn.to/3NRr9Tr>
326328

327-
[index-card size] <https://amzn.to/3vyyKPw>
329+
[index-card size] <https://amzn.to/3G8NQ3w>
328330

329-
[heat-laminating machine] <https://amzn.to/3IyMkGt>
331+
[heat-laminating machine] <https://amzn.to/3UJqBkB>
330332

331-
[full-page pouches] <https://amzn.to/3C1N3NI>
333+
[full-page pouches] <https://amzn.to/3G4ZmNu>
332334

333-
[index-card size pouches] <https://amzn.to/35z7RA5>
335+
[index-card size pouches] <https://amzn.to/3G4Zuws>
334336

335337

336338
3 Privacy Policy

GNUmakefile

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,18 @@ dist/slip39-$(VERSION)-py3-none-any.whl: build-check FORCE
166166
@ls -last dist
167167

168168
# Install from wheel, including all optional extra dependencies (except dev)
169-
install-dev:
170-
$(PY3) -m pip install --upgrade -r requirements-dev.txt
171-
172169
install: dist/slip39-$(VERSION)-py3-none-any.whl FORCE
173-
$(PY3) -m pip install --force-reinstall $<[gui,serial,wallet]
170+
$(PY3) -m pip install --force-reinstall $<[gui,wallet,serial]
174171

172+
install-dev:
173+
$(PY3) -m pip install --upgrade -r requirements-dev.txt
175174

176175
# Building / Signing / Notarizing and Uploading the macOS or win32 App
177176
# o TODO: no signed and notarized package yet accepted for upload by macOS App Store
178177
#
179178
# Mac: To build the .dmg installer, run:
180179
# make clean
181-
# make installer # continue running every couple of minuts 'til the App is notarized
180+
# make installer # continue running every couple of minutes 'til the App is notarized
182181
#
183182
installer: $(INSTALLER)
184183

README.org

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ and documentation of [[https://wolovim.medium.com/ethereum-201-hd-wallets-11d0c9
4040
various SLIP-39 sharing parameters. It generates the new random wallet seed, and generates the
4141
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
4242
accounts (at Bech32 derivation path =m/84'/0'/0'/0/0= by default), with wallet address and QR code
43-
(compatible with Trezor derivations). It produces the required SLIP-39 phrases, and outputs a
43+
(compatible with Trezor and Ledger derivations). It produces the required SLIP-39 phrases, and outputs a
4444
single PDF containing all the required printable cards to document the seed (and the specified
4545
derived accounts).
4646

@@ -819,6 +819,54 @@ recover your accounts to your Ledger (or other) hardware wallet.
819819

820820
#+LATEX: }
821821

822+
*** Serial Port Connected Secure Seed Enclave
823+
824+
What if you or your company wants to accept Crypto payments, and needs to generate a sequence of
825+
wallets unique to each client? You *can* use an xpubkey and then generate a sequence of unique
826+
addresses from that, which doesn't disclose any of your private key material:
827+
828+
#+LATEX: {\scriptsize
829+
#+BEGIN_SRC bash :exports both :results output
830+
( python3 -m slip39.recovery --bip39 --mnemonic 'zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong' \
831+
| python3 -m slip39.generator --secret - --xpub --path "../-2'" --crypto BTC
832+
) 2>&1
833+
#+END_SRC
834+
835+
#+RESULTS:
836+
: 0: [["BTC", "m/84'/0'/0'", "zpub6rD5AGSXPTDMSnpmczjENMT3NvVF7q5MySww6uxitUsBYgkZLeBywrcwUWhW5YkeY2aS7xc45APPgfA6s6wWfG2gnfABq6TDz9zqeMu2JCY"]]
837+
: 1: [["BTC", "m/84'/0'/1'", "zpub6rD5AGSXPTDMUaSe3aGDqWk4uMTwcrFwytkKuDGmi3ofUkJ4dQxXHZwiXWbHHrELJAor8xGs61F8sbKS2JdQkLZRnu5PGktmr6F32nEBUBb"]]
838+
: 2: [["BTC", "m/84'/0'/2'", "zpub6rD5AGSXPTDMYx2sQPuZgceniniRXDK5tELiREjxfSGJENNxuQD3u2yfpRqnNE1JeH14Pa7MVGrofDJtyXw252ws9HgRcd82X2M4KzkUfpZ"]]
839+
840+
#+LATEX: }
841+
842+
Since you have to generate such an xpubkey from a "hardened" path, such as with =slip39.generate
843+
--xpub ...=, you *still* need to run that tool chain on some secure "air gapped" computer. So,
844+
how do you do that safely, knowing that you need to input your SLIP-39 or BIP-39 Mnemonics on
845+
that computer? Especially, if you want to do this under any kind of automation, and deliver the
846+
output xpubkey to your insecure business computer systems?
847+
848+
One solution is to have the computer hosting your Seed or Mnemonic private key material *only*
849+
connected to your business computer systems with a guaranteed *safe* mechanism. Definitely
850+
*not* with any kind of general purpose network system!
851+
852+
The solution: *The RS-232 Serial Port*
853+
854+
With USB to [[https://amzn.to/3DXSYol][DB-9 female]] to [[https://amzn.to/3toukby][DB-9 male]] serial adapters, any small computer with USB ports (such as
855+
the [[https://amzn.to/3A6Gwlb][Raspberry Pi 400]]) can be connected serially and serve as your "secure" computer, storing
856+
your Seed Mnemonic.
857+
858+
Remember to disable all other wired and wireless networking!
859+
860+
The RS-232 port on the "secure" computer can be protected from all incoming data transmissions,
861+
make an exploit effectively impossible, while still allowing outgoing data (the generated
862+
xpubkeys).
863+
864+
A DB-9 [[https://amzn.to/3EnLEEd][serial breakout]] board or custom serial adapter be easily constructed that disconnects pin
865+
3 (TXD) on the "business" side from pin 2 (RXD) on the "secure" side, eliminating any chance of
866+
data being sent to the "secure" side. The only electronic connection that transmits data to the
867+
"secure" side is the hardware flow control pin 7 (RTS) to pin 8 (CTS). An exploit using this
868+
single-bit approach vector is ... unlikely. :)
869+
822870
** The =slip39= module API
823871

824872
Provide SLIP-39 Mnemonic set creation from a 128-bit master secret, and recovery of the secret
@@ -1652,7 +1700,7 @@ recover your accounts to your Ledger (or other) hardware wallet.
16521700

16531701
To install from Pypi, including the optional requirements to run the PySimpleGUI/tkinter GUI,
16541702
support serial I/O, and to support creating encrypted BIP-38 and Ethereum JSON Paper Wallets:
1655-
: $ python3 -m pip install slip39[gui,paper,serial]
1703+
: $ python3 -m pip install slip39[gui,wallet,serial]
16561704

16571705
** The =slip39= GUI
16581706

README.pdf

2.63 KB
Binary file not shown.

0 commit comments

Comments
 (0)