Creating Ethereum, Bitcoin and other accounts is complex and fraught
with potential for loss of funds.
A BIP-39 seed recovery phrase helps, but a *single* lapse in security
dooms the account (and all derived accounts, in fact). If someone finds
your recovery phrase (or you lose it), the accounts derived from that
seed are /gone/.
The SLIP-39 standard allows you to split the seed between 1, 2, or more
groups of several mnemonic recovery phrases. This is better, but
creating such accounts is difficult; presently, only the Trezor supports
these, and they can only be created "manually". Writing down 5 or more
sets of 20 words is difficult, error-prone and time consuming.
# Hardware Wallet "Seed" Configuration
> Your keys, your Bitcoin. Not your keys, not your Bitcoin.
>
> ---Andreas Antonopoulos
The [python-slip39] project (and the [SLIP-39 macOS/win32 App]) exists
to assist in the safe creation, backup and documentation of
[Hierarchical Deterministic (HD) Wallet] seeds and derived accounts,
with various SLIP-39 sharing parameters. It generates the new random
wallet seed, and generates the expected standard Ethereum account(s)
(at [derivation path] *m/44'/60'/0'/0/0* by default) and Bitcoin
accounts (at Bech32 derivation path *m/84'/0'/0'/0/0* by default),
with wallet address and QR code (compatible with Trezor and Ledger
derivations). It produces the required SLIP-39 phrases, and outputs a
single PDF containing all the required printable cards to document the
seed (and the specified derived accounts).
On an secure (ideally air-gapped) computer, new seeds can /safely/ be
generated (*without trusting this program*) and the PDF saved to a USB
drive for printing (or directly printed without the file being saved
to disk.). Presently, `slip39' can output example ETH, BTC, LTC,
DOGE, BSC, and XRP addresses derived from the seed, to /illustrate/
what accounts are associated with the backed-up seed. Recovery of the
seed to a [Trezor Safe 3] is simple, by entering the mnemonics right
on the device.
We also support the backup of existing insecure and unreliable 12- or
24-word BIP-39 Mnemonic Phrases as SLIP-39 Mnemonic cards, for
existing BIP-39 hardware wallets like the [Ledger Nano], etc.!
Recover from your existing BIP-39 Seed Phrase Mnemonic, select "Using
BIP-39" (and enter your BIP-39 passphrase), and generate a set of
SLIP-39 Mnemonic cards. Later, use the SLIP-39 App to recover from
your SLIP-39 Mnemonic cards, click "Using BIP-39" to get your BIP-39
Mnemonic back, and use it (and your passphrase) to recover your
accounts to your Ledger (or other) hardware wallet.
Output of BIP-38 or JSON encrypted Paper Wallets is also supported,
for import into standard software cryptocurrency wallets.
<./images/slip39.png>
[python-slip39] <https://github.com/pjkundert/python-slip39.git>
[SLIP-39 macOS/win32 App] <https://slip39.com/app>
[Hierarchical Deterministic (HD) Wallet]
<https://wolovim.medium.com/ethereum-201-hd-wallets-11d0c93c87>
[derivation path]
<https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2>
[Trezor Safe 3] <https://trezor.go2cloud.org/SHdf>
[Ledger Nano]
<https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f>
## The SLIP-39 App for Generation and Backup
Download the SLIP-39 App from [slip39-download][5] for Windows (.msi) or macOS (.dmg).
The Graphical User Interface (GUI) also supports Linux:
$ python3 -m pip install slip39[gui]
$ slip39-gui
![SLIP-39 App GUI][slip39-gui]
[5]: <https://github.com/pjkundert/python-slip39/releases/latest> "SLIP-39 App Download"
[slip39-gui]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39.png "SLIP-39 App GUI"
## Generating SLIP-39 on the Command Line
$ python3 -m slip39 -v Personal # or run: slip39 -v Personal
2022-01-26 13:55:30 slip39 First(1/1): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)
2022-01-26 13:55:30 slip39 1st 1 sister 8 cricket 15 unhappy
2022-01-26 13:55:30 slip39 2 acid 9 mental 16 ocean
2022-01-26 13:55:30 slip39 3 acrobat 10 veteran 17 mayor
2022-01-26 13:55:30 slip39 4 romp 11 phantom 18 promise
2022-01-26 13:55:30 slip39 5 anxiety 12 grownup 19 wrote
2022-01-26 13:55:30 slip39 6 laser 13 skunk 20 romp
2022-01-26 13:55:30 slip39 7 cricket 14 anatomy
2022-01-26 13:55:30 slip39 Second(1/1): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)
2022-01-26 13:55:30 slip39 1st 1 sister 8 belong 15 spirit
2022-01-26 13:55:30 slip39 2 acid 9 survive 16 royal
2022-01-26 13:55:30 slip39 3 beard 10 home 17 often
2022-01-26 13:55:30 slip39 4 romp 11 herd 18 silver
2022-01-26 13:55:30 slip39 5 again 12 mountain 19 grocery
2022-01-26 13:55:30 slip39 6 orbit 13 august 20 antenna
2022-01-26 13:55:30 slip39 7 very 14 evening
2022-01-26 13:55:30 slip39 Fam(2/4): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)
2022-01-26 13:55:30 slip39 1st 1 sister 8 rainbow 15 husky
2022-01-26 13:55:30 slip39 2 acid 9 swing 16 crowd
2022-01-26 13:55:30 slip39 3 ceramic 10 credit 17 learn
2022-01-26 13:55:30 slip39 4 roster 11 piece 18 priority
2022-01-26 13:55:30 slip39 5 already 12 puny 19 hand
2022-01-26 13:55:30 slip39 6 quiet 13 senior 20 watch
2022-01-26 13:55:30 slip39 7 erode 14 listen
2022-01-26 13:55:30 slip39 2nd 1 sister 8 holy 15 revenue
2022-01-26 13:55:30 slip39 2 acid 9 execute 16 junction
2022-01-26 13:55:30 slip39 3 ceramic 10 lift 17 elite
2022-01-26 13:55:30 slip39 4 scared 11 spark 18 flexible
2022-01-26 13:55:30 slip39 5 domestic 12 yoga 19 inform
2022-01-26 13:55:30 slip39 6 exact 13 medical 20 predator
2022-01-26 13:55:30 slip39 7 finger 14 grief
...
2022-01-26 13:55:30 slip39 ETH m/44'/60'/0'/0/0 : 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1
2022-01-26 13:55:30 slip39 BTC m/84'/0'/0'/0/0 : bc1q6u7qk0tepkxdm8wkhpqzwwy0w8zfls9yvghaxq
...
2022-01-26 13:55:30 slip39 Wrote SLIP39-encoded wallet for 'Personal' to: Personal-2022-01-26+13.55.30-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.pdf
## Recover from SLIP-39 Mnemonics
Later, if you need to recover the Ethereum wallet, keep entering SLIP-39 mnemonics until the secret
is recovered (invalid/duplicate mnemonics will be ignored):
$ python3 -m slip39.recovery -v # or run: slip39-recovery -v
Enter 1st SLIP-39 mnemonic: sister acid acrobat romp anxiety laser cricket cricket mental veteran phantom grownup skunk anatomy unhappy ocean mayor promise wrote romp
2021-12-29 13:24:25 slip39.recovery Could not recover SLIP-39 master secret with 1 supplied mnemonics: Insufficient number of mnemonic groups. The required number of groups is 2.
Enter 2nd SLIP-39 mnemonic: a bc
2021-12-29 13:24:53 slip39.recovery Could not recover SLIP-39 master secret with 2 supplied mnemonics: Invalid mnemonic word 'a'.
Enter 3rd SLIP-39 mnemonic: sister acid ceramic roster already quiet erode rainbow swing credit piece puny senior listen husky crowd learn priority hand watch
2021-12-29 13:24:58 slip39.recovery Could not recover SLIP-39 master secret with 3 supplied mnemonics: Invalid mnemonic word 'a'.
Enter 4th SLIP-39 mnemonic: sister acid ceramic scared domestic exact finger holy execute lift spark yoga medical grief revenue junction elite flexible inform predator
2021-12-29 13:25:14 slip39.recovery Recovered SLIP-39 secret with 3 (1st, 3rd, 4th) of 4 supplied mnemonics
2021-12-29 13:25:14 slip39.recovery Recovered SLIP-39 secret; To re-generate, send it to: python3 -m slip39 --secret -
32448aabb50cb6b022fdf17d960720df
Finally, regenerate the Ethereum wallet, perhaps including an encrypted JSON wallet file for import
into a software wallet; note that the same Ethereum wallet address 0x8FBC...3bf1 is recovered:
$ python3 -m slip39 --secret 32448aabb50cb6b022fdf17d960720df --json -
2022-01-26 14:06:14 slip39 It is recommended to not use '-s|--secret <hex>'; specify '-' to read from input
2022-01-26 14:06:14 slip39 ETH m/44'/60'/0'/0/0 : 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1
2022-01-26 14:06:14 slip39 BTC m/84'/0'/0'/0/0 : bc1q6u7qk0tepkxdm8wkhpqzwwy0w8zfls9yvghaxq
JSON key file password:
2022-01-26 14:06:21 slip39 Wrote JSON SLIP39's encrypted ETH wallet 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1 derived at m/44'/60'/0'/0/0 to: SLIP39-2022-01-26+14.06.14-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.json
2022-01-26 14:06:21 slip39 Wrote SLIP39-encoded wallet for '' to: SLIP39-2022-01-26+14.06.14-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.pdf
The whole toolchain is suitable for pipelining:
$ python3 -m slip39 --text --no-card -q \
| sort -r \
| python3 -m slip39.recovery \
| python3 -m slip39 --secret - --no-card -q
2021-12-28 10:55:17 slip39 ETH m/44'/60'/0'/0/0 : 0x68dD9B59D5dF605f4e9612E8b427Ab31187E2C54
2021-12-28 10:55:18 slip39.recovery Recovered SLIP-39 secret with 4 (1st, 2nd, 7th, 8th) of 8 supplied mnemonics
2021-12-28 10:55:18 slip39 ETH m/44'/60'/0'/0/0 : 0x68dD9B59D5dF605f4e9612E8b427Ab31187E2C54
## SLIP-39 Mnemonic Cards PDF
Here's an example of PDF containing the SLIP-39 recovery mnemonic cards produced:
![SLIP-39 Mnemonic Cards PDF][slip39-cards]
If desired, you can output encrypted "Paper Wallets", compatible for import into standard software
cryptocurrency wallets (BIP-38 for Bitcoin, etc., and standard JSON wallets for Ethereum):
![Encrypted Paper Wallets PDF][slip39-wallets]
[slip39-cards]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39-cards.png "SLIP-39 Mnemonic Cards PDF"
[slip39-wallets]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39-wallets.png "Encrypted Paper Wallets PDF"
Raw data
{
"_id": null,
"home_page": "https://github.com/pjkundert/python-slip39",
"name": "slip39",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "Ethereum Bitcoin Dogecoin Litecoin cryptocurrency SLIP-39 BIP-39 seed recovery PDF BIP-38 paper wallet",
"author": "Perry Kundert",
"author_email": "perry@dominionrnd.com",
"download_url": "https://files.pythonhosted.org/packages/8b/9e/f260709ed39603a8a13e6761f427ec2811e065f77d8a2a579abe8bec4839/slip39-13.1.0.tar.gz",
"platform": null,
"description": "Creating Ethereum, Bitcoin and other accounts is complex and fraught\nwith potential for loss of funds.\n\nA BIP-39 seed recovery phrase helps, but a *single* lapse in security\ndooms the account (and all derived accounts, in fact). If someone finds\nyour recovery phrase (or you lose it), the accounts derived from that\nseed are /gone/.\n\nThe SLIP-39 standard allows you to split the seed between 1, 2, or more\ngroups of several mnemonic recovery phrases. This is better, but\ncreating such accounts is difficult; presently, only the Trezor supports\nthese, and they can only be created \"manually\". Writing down 5 or more\nsets of 20 words is difficult, error-prone and time consuming.\n\n# Hardware Wallet \"Seed\" Configuration\n\n> Your keys, your Bitcoin. Not your keys, not your Bitcoin.\n> \n> ---Andreas Antonopoulos\n\nThe [python-slip39] project (and the [SLIP-39 macOS/win32 App]) exists\nto assist in the safe creation, backup and documentation of\n[Hierarchical Deterministic (HD) Wallet] seeds and derived accounts,\nwith various SLIP-39 sharing parameters. It generates the new random\nwallet seed, and generates the expected standard Ethereum account(s)\n(at [derivation path] *m/44'/60'/0'/0/0* by default) and Bitcoin\naccounts (at Bech32 derivation path *m/84'/0'/0'/0/0* by default),\nwith wallet address and QR code (compatible with Trezor and Ledger\nderivations). It produces the required SLIP-39 phrases, and outputs a\nsingle PDF containing all the required printable cards to document the\nseed (and the specified derived accounts).\n\nOn an secure (ideally air-gapped) computer, new seeds can /safely/ be\ngenerated (*without trusting this program*) and the PDF saved to a USB\ndrive for printing (or directly printed without the file being saved\nto disk.). Presently, `slip39' can output example ETH, BTC, LTC,\nDOGE, BSC, and XRP addresses derived from the seed, to /illustrate/\nwhat accounts are associated with the backed-up seed. Recovery of the\nseed to a [Trezor Safe 3] is simple, by entering the mnemonics right\non the device.\n\nWe also support the backup of existing insecure and unreliable 12- or\n24-word BIP-39 Mnemonic Phrases as SLIP-39 Mnemonic cards, for\nexisting BIP-39 hardware wallets like the [Ledger Nano], etc.!\nRecover from your existing BIP-39 Seed Phrase Mnemonic, select \"Using\nBIP-39\" (and enter your BIP-39 passphrase), and generate a set of\nSLIP-39 Mnemonic cards. Later, use the SLIP-39 App to recover from\nyour SLIP-39 Mnemonic cards, click \"Using BIP-39\" to get your BIP-39\nMnemonic back, and use it (and your passphrase) to recover your\naccounts to your Ledger (or other) hardware wallet.\n\nOutput of BIP-38 or JSON encrypted Paper Wallets is also supported,\nfor import into standard software cryptocurrency wallets.\n\n<./images/slip39.png>\n\n\n[python-slip39] <https://github.com/pjkundert/python-slip39.git>\n\n[SLIP-39 macOS/win32 App] <https://slip39.com/app>\n\n[Hierarchical Deterministic (HD) Wallet]\n<https://wolovim.medium.com/ethereum-201-hd-wallets-11d0c93c87>\n\n[derivation path]\n<https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2>\n\n[Trezor Safe 3] <https://trezor.go2cloud.org/SHdf>\n\n[Ledger Nano]\n<https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f>\n\n## The SLIP-39 App for Generation and Backup\n\nDownload the SLIP-39 App from [slip39-download][5] for Windows (.msi) or macOS (.dmg).\n\nThe Graphical User Interface (GUI) also supports Linux:\n\n $ python3 -m pip install slip39[gui]\n $ slip39-gui\n\n![SLIP-39 App GUI][slip39-gui]\n\n[5]: <https://github.com/pjkundert/python-slip39/releases/latest> \"SLIP-39 App Download\"\n[slip39-gui]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39.png \"SLIP-39 App GUI\"\n\n## Generating SLIP-39 on the Command Line\n\n $ python3 -m slip39 -v Personal # or run: slip39 -v Personal\n 2022-01-26 13:55:30 slip39 First(1/1): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)\n 2022-01-26 13:55:30 slip39 1st 1 sister 8 cricket 15 unhappy\n 2022-01-26 13:55:30 slip39 2 acid 9 mental 16 ocean\n 2022-01-26 13:55:30 slip39 3 acrobat 10 veteran 17 mayor\n 2022-01-26 13:55:30 slip39 4 romp 11 phantom 18 promise\n 2022-01-26 13:55:30 slip39 5 anxiety 12 grownup 19 wrote\n 2022-01-26 13:55:30 slip39 6 laser 13 skunk 20 romp\n 2022-01-26 13:55:30 slip39 7 cricket 14 anatomy\n 2022-01-26 13:55:30 slip39 Second(1/1): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)\n 2022-01-26 13:55:30 slip39 1st 1 sister 8 belong 15 spirit\n 2022-01-26 13:55:30 slip39 2 acid 9 survive 16 royal\n 2022-01-26 13:55:30 slip39 3 beard 10 home 17 often\n 2022-01-26 13:55:30 slip39 4 romp 11 herd 18 silver\n 2022-01-26 13:55:30 slip39 5 again 12 mountain 19 grocery\n 2022-01-26 13:55:30 slip39 6 orbit 13 august 20 antenna\n 2022-01-26 13:55:30 slip39 7 very 14 evening\n 2022-01-26 13:55:30 slip39 Fam(2/4): Recover w/ 2 of 4 groups First(1), Second(1), Fam(2/4), Frens(2/6)\n 2022-01-26 13:55:30 slip39 1st 1 sister 8 rainbow 15 husky\n 2022-01-26 13:55:30 slip39 2 acid 9 swing 16 crowd\n 2022-01-26 13:55:30 slip39 3 ceramic 10 credit 17 learn\n 2022-01-26 13:55:30 slip39 4 roster 11 piece 18 priority\n 2022-01-26 13:55:30 slip39 5 already 12 puny 19 hand\n 2022-01-26 13:55:30 slip39 6 quiet 13 senior 20 watch\n 2022-01-26 13:55:30 slip39 7 erode 14 listen\n 2022-01-26 13:55:30 slip39 2nd 1 sister 8 holy 15 revenue\n 2022-01-26 13:55:30 slip39 2 acid 9 execute 16 junction\n 2022-01-26 13:55:30 slip39 3 ceramic 10 lift 17 elite\n 2022-01-26 13:55:30 slip39 4 scared 11 spark 18 flexible\n 2022-01-26 13:55:30 slip39 5 domestic 12 yoga 19 inform\n 2022-01-26 13:55:30 slip39 6 exact 13 medical 20 predator\n 2022-01-26 13:55:30 slip39 7 finger 14 grief\n ...\n 2022-01-26 13:55:30 slip39 ETH m/44'/60'/0'/0/0 : 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1\n 2022-01-26 13:55:30 slip39 BTC m/84'/0'/0'/0/0 : bc1q6u7qk0tepkxdm8wkhpqzwwy0w8zfls9yvghaxq\n ...\n 2022-01-26 13:55:30 slip39 Wrote SLIP39-encoded wallet for 'Personal' to: Personal-2022-01-26+13.55.30-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.pdf\n\n## Recover from SLIP-39 Mnemonics\n\nLater, if you need to recover the Ethereum wallet, keep entering SLIP-39 mnemonics until the secret\nis recovered (invalid/duplicate mnemonics will be ignored):\n\n $ python3 -m slip39.recovery -v # or run: slip39-recovery -v\n Enter 1st SLIP-39 mnemonic: sister acid acrobat romp anxiety laser cricket cricket mental veteran phantom grownup skunk anatomy unhappy ocean mayor promise wrote romp\n 2021-12-29 13:24:25 slip39.recovery Could not recover SLIP-39 master secret with 1 supplied mnemonics: Insufficient number of mnemonic groups. The required number of groups is 2.\n Enter 2nd SLIP-39 mnemonic: a bc\n 2021-12-29 13:24:53 slip39.recovery Could not recover SLIP-39 master secret with 2 supplied mnemonics: Invalid mnemonic word 'a'.\n Enter 3rd SLIP-39 mnemonic: sister acid ceramic roster already quiet erode rainbow swing credit piece puny senior listen husky crowd learn priority hand watch\n 2021-12-29 13:24:58 slip39.recovery Could not recover SLIP-39 master secret with 3 supplied mnemonics: Invalid mnemonic word 'a'.\n Enter 4th SLIP-39 mnemonic: sister acid ceramic scared domestic exact finger holy execute lift spark yoga medical grief revenue junction elite flexible inform predator\n 2021-12-29 13:25:14 slip39.recovery Recovered SLIP-39 secret with 3 (1st, 3rd, 4th) of 4 supplied mnemonics\n 2021-12-29 13:25:14 slip39.recovery Recovered SLIP-39 secret; To re-generate, send it to: python3 -m slip39 --secret -\n 32448aabb50cb6b022fdf17d960720df\n\nFinally, regenerate the Ethereum wallet, perhaps including an encrypted JSON wallet file for import\ninto a software wallet; note that the same Ethereum wallet address 0x8FBC...3bf1 is recovered:\n\n $ python3 -m slip39 --secret 32448aabb50cb6b022fdf17d960720df --json -\n 2022-01-26 14:06:14 slip39 It is recommended to not use '-s|--secret <hex>'; specify '-' to read from input\n 2022-01-26 14:06:14 slip39 ETH m/44'/60'/0'/0/0 : 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1\n 2022-01-26 14:06:14 slip39 BTC m/84'/0'/0'/0/0 : bc1q6u7qk0tepkxdm8wkhpqzwwy0w8zfls9yvghaxq\n JSON key file password:\n 2022-01-26 14:06:21 slip39 Wrote JSON SLIP39's encrypted ETH wallet 0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1 derived at m/44'/60'/0'/0/0 to: SLIP39-2022-01-26+14.06.14-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.json\n 2022-01-26 14:06:21 slip39 Wrote SLIP39-encoded wallet for '' to: SLIP39-2022-01-26+14.06.14-ETH-0x8FBCe53111817DcE01F9f4C4A6319eA1Ca0c3bf1.pdf\n\nThe whole toolchain is suitable for pipelining:\n\n $ python3 -m slip39 --text --no-card -q \\\n | sort -r \\\n | python3 -m slip39.recovery \\\n | python3 -m slip39 --secret - --no-card -q\n 2021-12-28 10:55:17 slip39 ETH m/44'/60'/0'/0/0 : 0x68dD9B59D5dF605f4e9612E8b427Ab31187E2C54\n 2021-12-28 10:55:18 slip39.recovery Recovered SLIP-39 secret with 4 (1st, 2nd, 7th, 8th) of 8 supplied mnemonics\n 2021-12-28 10:55:18 slip39 ETH m/44'/60'/0'/0/0 : 0x68dD9B59D5dF605f4e9612E8b427Ab31187E2C54\n\n## SLIP-39 Mnemonic Cards PDF\n\nHere's an example of PDF containing the SLIP-39 recovery mnemonic cards produced:\n\n![SLIP-39 Mnemonic Cards PDF][slip39-cards]\n\nIf desired, you can output encrypted \"Paper Wallets\", compatible for import into standard software\ncryptocurrency wallets (BIP-38 for Bitcoin, etc., and standard JSON wallets for Ethereum):\n\n![Encrypted Paper Wallets PDF][slip39-wallets]\n\n[slip39-cards]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39-cards.png \"SLIP-39 Mnemonic Cards PDF\"\n[slip39-wallets]: https://github.com/pjkundert/python-slip39/raw/master/images/slip39-wallets.png \"Encrypted Paper Wallets PDF\"\n",
"bugtrack_url": null,
"license": "Dual License; GPLv3 and Proprietary",
"summary": "Standards-compliant SLIP-39 cryptocurrency seed generation and recovery, compatible with Trezor hardware wallets",
"version": "13.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/pjkundert/python-slip39/issues",
"Homepage": "https://github.com/pjkundert/python-slip39"
},
"split_keywords": [
"ethereum",
"bitcoin",
"dogecoin",
"litecoin",
"cryptocurrency",
"slip-39",
"bip-39",
"seed",
"recovery",
"pdf",
"bip-38",
"paper",
"wallet"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f09e849aaa294c627ede69b6880e59bcc2afc8ed379f572cd905d9cd9a92880d",
"md5": "842232d589e13fe484f1d5d942420c6b",
"sha256": "d23956633678cc4b1fdfddea0f2c36fae516ab526990b3d7c78cd992d48cd1d8"
},
"downloads": -1,
"filename": "slip39-13.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "842232d589e13fe484f1d5d942420c6b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2513559,
"upload_time": "2024-12-08T22:07:28",
"upload_time_iso_8601": "2024-12-08T22:07:28.319481Z",
"url": "https://files.pythonhosted.org/packages/f0/9e/849aaa294c627ede69b6880e59bcc2afc8ed379f572cd905d9cd9a92880d/slip39-13.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8b9ef260709ed39603a8a13e6761f427ec2811e065f77d8a2a579abe8bec4839",
"md5": "85f288d991ad57f301acc72ebae84278",
"sha256": "4cc9842f388077fcc5c9cfc4c88db2f68d3c958defccbd886a364c42d3cb4805"
},
"downloads": -1,
"filename": "slip39-13.1.0.tar.gz",
"has_sig": false,
"md5_digest": "85f288d991ad57f301acc72ebae84278",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 5005988,
"upload_time": "2024-12-08T22:07:30",
"upload_time_iso_8601": "2024-12-08T22:07:30.693494Z",
"url": "https://files.pythonhosted.org/packages/8b/9e/f260709ed39603a8a13e6761f427ec2811e065f77d8a2a579abe8bec4839/slip39-13.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-08 22:07:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pjkundert",
"github_project": "python-slip39",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "base58",
"specs": [
[
"<",
"3"
],
[
">=",
"2.0.1"
]
]
},
{
"name": "chacha20poly1305",
"specs": [
[
">=",
"0.0.3"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.1.3"
],
[
"<",
"9"
]
]
},
{
"name": "crypto-licensing",
"specs": [
[
"<",
"4"
],
[
">=",
"3.3.2"
]
]
},
{
"name": "cx_Freeze",
"specs": [
[
">=",
"6.12"
]
]
},
{
"name": "fpdf2",
"specs": [
[
">=",
"2.7.6"
],
[
"<",
"3"
]
]
},
{
"name": "hdwallet-slip39",
"specs": [
[
"<",
"3"
],
[
">=",
"2.3.0"
]
]
},
{
"name": "tabulate-slip39",
"specs": [
[
">=",
"0.10.0"
]
]
},
{
"name": "mnemonic",
"specs": [
[
">=",
"0.21"
],
[
"<",
"1"
]
]
},
{
"name": "qrcode",
"specs": [
[
">=",
"7.3"
]
]
},
{
"name": "shamir-mnemonic-slip39",
"specs": [
[
"<",
"0.5"
],
[
">=",
"0.4.0"
]
]
}
],
"lcname": "slip39"
}