Skip to content

Commit 498972a

Browse files
committed
Release to PyPI
1 parent 2bbb039 commit 498972a

26 files changed

+374
-318
lines changed

.github/workflows/release.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
pypi-publish:
10+
name: Upload release to PyPI
11+
runs-on: ubuntu-latest
12+
environment:
13+
name: pypi
14+
url: https://pypi.org/p/python-slip39
15+
permissions:
16+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v3
20+
- name: Set up Python
21+
uses: actions/setup-python@v4
22+
- name: Build
23+
run: |
24+
python -m pip install -r requirements-dev.txt
25+
python -m build .
26+
- name: Publish package distributions to PyPI
27+
uses: pypa/gh-action-pypi-publish@release/v1

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ dist/
2929
private_keys
3030
images/SLIP-39.iconset
3131
.coverage*
32+
/SLIP39-20*.pdf

App.org

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,28 @@ nil
2525
Creating personal Ethereum, Bitcoin and other cryptocurrency accounts is /urgently/ needed, but is
2626
complex and fraught with potential for loss of funds.
2727

28-
All Crypto wallets start with a "Seed": a large, random number used to derive all of your actual
28+
All Crypto wallets start with a large, random number "Seed" used to derive all of your actual
2929
Bitcoin, Ethereum, etc. wallets. You do not want to try to generate such a Seed by yourself, or
3030
trust any hardware/software solution for this -- even us! So, we architected the SLIP-39 App
3131
so you /don't need to trust it/.
3232

33-
The best practice for using these Seed-generated wallets is to load this "Seed" (usually in the form
34-
of a 12- or 24-word BIP-39 Phrase) into a secure hardware device, like a [[https://trezor.go2cloud.org/SH1Y][Trezor "Model T"]] or a
35-
(newer, less costly) [[https://affil.trezor.io/SHUD]["Model One"]] hardware wallet. SLIP-39 Mnemonic cards contain the recovery
36-
words, which are typed directly into the Trezor device to recover the Seed, and all of its
37-
cryptocurrency accounts. For the [[https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f][Ledger Nano]] and other hardware wallets supporting only BIP-39
38-
Mnemonics, you can now use the SLIP-39 App to securely and reliably back up these BIP-39 phrases.
39-
40-
[[https://github.com/pjkundert/python-slip39/releases/latest][Download the macOS (.pkg) or win32 (.msi) SLIP-39 App]] to generate Mnemonic cards and back up this
41-
Seed, securely and reliably, by distributing Mnemonic cards for the Seed to partners, family and
42-
friends. Also, encrypted "Paper Wallets" can be output, to support software cryptocurrency wallets
43-
such as Metamask, Brave or various mobile-phone and computer-based wallets.
44-
45-
Later, if you (or your heirs!) need to recover *all* of your cryptocurrency accounts, they can
46-
collect a sufficient threshold of the cards and regain access to all of the cryptocurrency accounts
47-
related to the Seed.
33+
[[https://github.com/pjkundert/python-slip39/releases/latest][Download the macOS (.pkg) or win32 (.msi) SLIP-39 App]] to generate Mnemonic cards to create (or back
34+
up an existing BIP-39) Seed securely and reliably, by distributing Mnemonic cards for recovering the
35+
Seed to partners, family and friends. Also, encrypted "Paper Wallets" can be output, to support
36+
software cryptocurrency wallets such as Metamask, Brave or various mobile-phone and computer-based
37+
wallets.
38+
39+
The best practice for /using/ these Seed-generated wallets is to load this Seed into a secure
40+
hardware device, like a [[https://affil.trezor.io/SHdv][Trezor Safe 3]] hardware wallet which supports both SLIP-39 and BIP-39 Seeds.
41+
SLIP-39 Mnemonic cards contain the recovery words, which can be typed directly into the Trezor
42+
device to recover the Seed, and all of its cryptocurrency accounts.
43+
44+
For the [[https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f][Ledger Nano]] and all other hardware wallets supporting /only/ BIP-39 Mnemonics, *you can now
45+
use the SLIP-39 App to securely and reliably /back up/ these fragile BIP-39 Mnemonic phrases*.
46+
47+
Later, when you (or your heirs!) need to recover *all* of your cryptocurrency accounts, someone can
48+
collect a sufficient threshold of all of the SLIP-39 cards and regain access to all of the
49+
cryptocurrency accounts related to the Seed.
4850
#+END_ABSTRACT
4951

5052
#+TOC: headlines 2
@@ -60,7 +62,7 @@ related to the Seed.
6062
Losing this Seed means that *all* of the HD Wallet accounts derived from it are permanently lost.
6163
Therefore, it must be backed up reliably, and be readily accessible.
6264

63-
Therefore, we must:
65+
Therefore, we must /both/:
6466

6567
- Ensure that nobody untrustworthy can recover the Seed, but
6668
- Store the Seed in many places with several (some perhaps untrustworthy) people.
@@ -80,7 +82,7 @@ related to the Seed.
8082

8183
#+ATTR_LATEX: :width 4in
8284
#+CAPTION: SLIP-39 App
83-
[[./images/slip39.png]]
85+
[[../../images/slip39.png]]
8486

8587
** SLIP-39 Mnemonic Recovery Cards
8688

@@ -90,7 +92,7 @@ related to the Seed.
9092
Instead, generate a number of SLIP-39 Mnemonic cards, which can be collected to recover the Seed:
9193
#+ATTR_LATEX: :width 4in
9294
#+CAPTION: SLIP-39 Cards PDF
93-
[[./images/slip39-cards.png]]
95+
[[../../images/slip39-cards.png]]
9496

9597
*** Why Not a BIP-39 Mnemonic Phrase?
9698

@@ -143,7 +145,7 @@ related to the Seed.
143145

144146
#+ATTR_LATEX: :width 4in
145147
#+CAPTION: [[https://youtu.be/t70rRr08vBY][SLIP-39 Overview -- BIP-39 Mnemonic Backup]]
146-
[[./images/slip39-overview-youtube.png]]
148+
[[../../images/slip39-overview-youtube.png]]
147149

148150
** Paper Wallets
149151

@@ -152,7 +154,7 @@ related to the Seed.
152154

153155
#+ATTR_LATEX: :width 4in
154156
#+CAPTION: Paper Wallets
155-
[[./images/slip39-wallets.png]]
157+
[[../../images/slip39-wallets.png]]
156158

157159
*** Walking-Around Money
158160

@@ -181,15 +183,19 @@ related to the Seed.
181183

182184
** Trezor
183185

184-
The [[https://trezor.go2cloud.org/SH1Y][Trezor "Model T"]] hardware wallet has built-in SLIP-39 generation and recovery capability.
186+
The [[https://trezor.go2cloud.org/SHdv][Trezor Safe 3]] hardware wallet has built-in SLIP-39 generation and recovery capability.
185187
Enter the words on the SLIP-39 cards directly into the screen of the Trezor to recover your
186188
cryptocurrency accounts.
187189

188190
#+BEGIN_EXPORT html
189-
<a href="https://trezor.go2cloud.org/aff_c?offer_id=134&aff_id=10388&file_id=583" target="_blank"><img src="https://media.go2speed.org/brand/files/trezor/134/Trezor_Model_T_banner_728x90_3.png" width="728" height="90" border="0" /></a><img src="https://trezor.go2cloud.org/aff_i?offer_id=134&file_id=583&aff_id=10388" width="0" height="0" style="position:absolute;visibility:hidden;" border="0" />
191+
<!-- Javascript Ad Tag: 1696 -->
192+
<div id="trezor1696wHdtBw"></div>
193+
<script src="http://affil.trezor.io/aff_ad?campaign_id=1696&aff_id=10388&format=js&divid=trezor1696wHdtBw" type="text/javascript"></script>
194+
<noscript><iframe src="http://affil.trezor.io/aff_ad?campaign_id=1696&aff_id=10388&format=iframe" scrolling="no" frameborder="0" marginheight="0" marginwidth="0" width="728" height="90"></iframe></noscript>
195+
<!-- // End Ad Tag -->
190196
#+END_EXPORT
191197

192-
We recommend the Trezor "Model T" for this reason. No other hardware wallet yet supports direct,
198+
We recommend the Trezor Safe 3 for this reason. No other hardware wallet yet supports direct,
193199
on-screen SLIP-39 Seed recovery.
194200

195201
If you already have one of the less expensive Trezor wallets that only support BIP-39 backup, we

App.pdf

-1.35 MB
Binary file not shown.

App.txt

Lines changed: 63 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,34 @@ Creating personal Ethereum, Bitcoin and other cryptocurrency accounts is
1212
/urgently/ needed, but is complex and fraught with potential for loss of
1313
funds.
1414

15-
All Crypto wallets start with a "Seed": a large, random number used to
15+
All Crypto wallets start with a large, random number "Seed" used to
1616
derive all of your actual Bitcoin, Ethereum, etc. wallets. You do not
1717
want to try to generate such a Seed by yourself, or trust any
1818
hardware/software solution for this – even us! So, we architected the
1919
SLIP-39 App so you /don't need to trust it/.
2020

21-
The best practice for using these Seed-generated wallets is to load this
22-
"Seed" (usually in the form of a 12- or 24-word BIP-39 Phrase) into a
23-
secure hardware device, like a [Trezor "Model T"] or a (newer, less
24-
costly) ["Model One"] hardware wallet. SLIP-39 Mnemonic cards contain
25-
the recovery words, which are typed directly into the Trezor device to
26-
recover the Seed, and all of its cryptocurrency accounts. For the
27-
[Ledger Nano] and other hardware wallets supporting only BIP-39
28-
Mnemonics, you can now use the SLIP-39 App to securely and reliably back
29-
up these BIP-39 phrases.
30-
3121
[Download the macOS (.pkg) or win32 (.msi) SLIP-39 App] to generate
32-
Mnemonic cards and back up this Seed, securely and reliably, by
33-
distributing Mnemonic cards for the Seed to partners, family and
34-
friends. Also, encrypted "Paper Wallets" can be output, to support
35-
software cryptocurrency wallets such as Metamask, Brave or various
36-
mobile-phone and computer-based wallets.
37-
38-
Later, if you (or your heirs!) need to recover *all* of your
39-
cryptocurrency accounts, they can collect a sufficient threshold of the
40-
cards and regain access to all of the cryptocurrency accounts related to
41-
the Seed.
22+
Mnemonic cards to create (or back up an existing BIP-39) Seed securely
23+
and reliably, by distributing Mnemonic cards for recovering the Seed to
24+
partners, family and friends. Also, encrypted "Paper Wallets" can be
25+
output, to support software cryptocurrency wallets such as Metamask,
26+
Brave or various mobile-phone and computer-based wallets.
27+
28+
The best practice for /using/ these Seed-generated wallets is to load
29+
this Seed into a secure hardware device, like a [Trezor Safe 3] hardware
30+
wallet which supports both SLIP-39 and BIP-39 Seeds. SLIP-39 Mnemonic
31+
cards contain the recovery words, which can be typed directly into the
32+
Trezor device to recover the Seed, and all of its cryptocurrency
33+
accounts.
34+
35+
For the [Ledger Nano] and all other hardware wallets supporting /only/
36+
BIP-39 Mnemonics, *you can now use the SLIP-39 App to securely and
37+
reliably /back up/ these fragile BIP-39 Mnemonic phrases*.
38+
39+
Later, when you (or your heirs!) need to recover *all* of your
40+
cryptocurrency accounts, someone can collect a sufficient threshold of
41+
all of the SLIP-39 cards and regain access to all of the cryptocurrency
42+
accounts related to the Seed.
4243

4344
Table of Contents
4445
─────────────────
@@ -55,16 +56,14 @@ Table of Contents
5556
3. Privacy Policy
5657

5758

58-
[Trezor "Model T"] <https://trezor.go2cloud.org/SH1Y>
59+
[Download the macOS (.pkg) or win32 (.msi) SLIP-39 App]
60+
<https://github.com/pjkundert/python-slip39/releases/latest>
5961

60-
["Model One"] <https://affil.trezor.io/SHUD>
62+
[Trezor Safe 3] <https://affil.trezor.io/SHdv>
6163

6264
[Ledger Nano]
6365
<https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f>
6466

65-
[Download the macOS (.pkg) or win32 (.msi) SLIP-39 App]
66-
<https://github.com/pjkundert/python-slip39/releases/latest>
67-
6867

6968
1 Security with Availability
7069
════════════════════════════
@@ -80,7 +79,7 @@ Table of Contents
8079
from it are permanently lost. Therefore, it must be backed up
8180
reliably, and be readily accessible.
8281

83-
Therefore, we must:
82+
Therefore, we must /both/:
8483

8584
• Ensure that nobody untrustworthy can recover the Seed, but
8685
• Store the Seed in many places with several (some perhaps
@@ -104,7 +103,7 @@ Table of Contents
104103
store in different locations. If you lose some of them, you can still
105104
recover the BIP-39 recovery phrase!
106105

107-
<./images/slip39.png>
106+
<../../images/slip39.png>
108107

109108

110109
[SLIP-39 App] <https://slip39.com/app>
@@ -119,7 +118,7 @@ Table of Contents
119118

120119
Instead, generate a number of SLIP-39 Mnemonic cards, which can be
121120
collected to recover the Seed:
122-
<./images/slip39-cards.png>
121+
<../../images/slip39-cards.png>
123122

124123

125124
1.2.1 Why Not a BIP-39 Mnemonic Phrase?
@@ -160,14 +159,45 @@ Table of Contents
160159
exposed to this risk of loss.
161160

162161

162+
1.2.3 Recovering your BIP-39 Seed Phrase
163+
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
164+
165+
If you already have a BIP-39 Mnemonic, and would like back it up using
166+
SLIP-39 for more security and recovery reliability, you can use the
167+
SLIP-39 App's Backup Controls to do so. After you create your Seed
168+
Data (or enter an existing BIP-39 Seed Phrase), select "Using BIP-39".
169+
This will generate a set of SLIP-39 Mnemonic Cards that *backs up your
170+
existing BIP-39 Seed Phrase*.
171+
172+
Later, when you need to recover your BIP-39 Mnemonic (say, to
173+
initialize a fresh replacement Ledger hardware wallet), use the
174+
SLIP-39 App, select the Recover Controls, and enter sufficient SLIP-39
175+
card Mnemonics – and click "Using BIP-39" to reveal your original
176+
BIP-39 Seed Phrase. Then, proceed with Ledger wallet recovery as
177+
normal, using the BIP-39 Mnemonic.
178+
179+
This may not /seem/ like an impressive feat. But, it is unexpectedly
180+
important and powerful! Your existing BIP-39 Seed Phrase is
181+
*extremely* risky; it can /easily/ be lost or stolen. By using
182+
SLIP-39 to Backup your BIP-39 Seed Phrase, you can distribute the safe
183+
and reliable SLIP-39 Mnemonic cards to friends and family, and reduce
184+
the risks of theft or loss of your critical cryptocurrency accounts
185+
Seed data.
186+
187+
Learn how to use the SLIP-39 App to "back up" your BIP-39 Mnemonic
188+
Phrase:
189+
190+
<../../images/slip39-overview-youtube.png>
191+
192+
163193
1.3 Paper Wallets
164194
─────────────────
165195

166196
If desired, you can produce encrypted Paper Wallets, to support
167197
software crypto wallets (eg. Metamask, Brave or various mobile- and
168198
computer-based wallets):
169199

170-
<./images/slip39-wallets.png>
200+
<../../images/slip39-wallets.png>
171201

172202

173203
1.3.1 Walking-Around Money
@@ -206,12 +236,12 @@ Table of Contents
206236
2.1 Trezor
207237
──────────
208238

209-
The [Trezor "Model T"] hardware wallet has built-in SLIP-39 generation
239+
The [Trezor Safe 3] hardware wallet has built-in SLIP-39 generation
210240
and recovery capability. Enter the words on the SLIP-39 cards
211241
directly into the screen of the Trezor to recover your cryptocurrency
212242
accounts.
213243

214-
We recommend the Trezor "Model T" for this reason. No other hardware
244+
We recommend the Trezor Safe 3 for this reason. No other hardware
215245
wallet yet supports direct, on-screen SLIP-39 Seed recovery.
216246

217247
If you already have one of the less expensive Trezor wallets that only
@@ -220,7 +250,7 @@ Table of Contents
220250
traditional hardware wallets.
221251

222252

223-
[Trezor "Model T"] <https://trezor.go2cloud.org/SH1Y>
253+
[Trezor Safe 3] <https://trezor.go2cloud.org/SHdv>
224254

225255

226256
2.2 Ledger
@@ -245,31 +275,6 @@ Table of Contents
245275
[Ledger Nano X]
246276
<https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f>
247277

248-
2.2.1 Recovering your BIP-39 Seed Phrase
249-
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
250-
251-
If you already have a BIP-39 Mnemonic, and would like back it up using
252-
SLIP-39 for more security and recovery reliability, you can use the
253-
SLIP-39 App's Backup Controls to do so. After you create your Seed
254-
Data (or enter an existing BIP-39 Seed Phrase), select "Using BIP-39".
255-
This will generate a set of SLIP-39 Mnemonic Cards that *backs up your
256-
existing BIP-39 Seed Phrase*.
257-
258-
Later, when you need to recover your BIP-39 Mnemonic (say, to
259-
initialize a fresh replacement Ledger hardware wallet), use the
260-
SLIP-39 App, select the Recover Controls, and enter sufficient SLIP-39
261-
card Mnemonics – and click "Using BIP-39" to reveal your original
262-
BIP-39 Seed Phrase. Then, proceed with Ledger wallet recovery as
263-
normal, using the BIP-39 Mnemonic.
264-
265-
This may not /seem/ like an impressive feat. But, it is unexpectedly
266-
important and powerful! Your existing BIP-39 Seed Phrase is
267-
*extremely* risky; it can /easily/ be lost or stolen. By using
268-
SLIP-39 to Backup your BIP-39 Seed Phrase, you can distribute the safe
269-
and reliable SLIP-39 Mnemonic cards to friends and family, and reduce
270-
the risks of theft or loss of your critical cryptocurrency accounts
271-
Seed data.
272-
273278

274279
2.3 Netcoins.app
275280
────────────────

GNUmakefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ CXFREEZE_EXT ?= win-$(CXFREEZE_ARCH)-$(CXFREEZE_VER)
4747
#SIGNTOOL ?= "/c/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86"
4848
SIGNTOOL ?= "c:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe"
4949

50-
NIX_OPTS ?= --pure
50+
NIX_OPTS ?= # --pure
5151

5252
# PY[3] is the target Python interpreter; require 3.11+. Detect if it is named python3 or python.
5353
PY3 ?= $(shell python3 --version >/dev/null 2>&1 && echo python3 || echo python )
@@ -225,8 +225,8 @@ $(WHEEL): FORCE
225225
install: $(WHEEL) FORCE
226226
$(PY3) -m pip install --force-reinstall $<[all]
227227

228-
install-tests:
229-
$(PY3) -m pip install --upgrade -r requirements-tests.txt
228+
install-%: # ...-dev, -tests
229+
$(PY3) -m pip install --upgrade -r requirements-$*.txt
230230

231231
# Building / Signing / Notarizing and Uploading the macOS or win32 App
232232
# o TODO: no signed and notarized package yet accepted for upload by macOS App Store

0 commit comments

Comments
 (0)