slip39


Nameslip39 JSON
Version 13.1.0 PyPI version JSON
download
home_pagehttps://github.com/pjkundert/python-slip39
SummaryStandards-compliant SLIP-39 cryptocurrency seed generation and recovery, compatible with Trezor hardware wallets
upload_time2024-12-08 22:07:30
maintainerNone
docs_urlNone
authorPerry Kundert
requires_python>=3.9
licenseDual License; GPLv3 and Proprietary
keywords ethereum bitcoin dogecoin litecoin cryptocurrency slip-39 bip-39 seed recovery pdf bip-38 paper wallet
VCS
bugtrack_url
requirements base58 chacha20poly1305 click crypto-licensing cx_Freeze fpdf2 hdwallet-slip39 tabulate-slip39 mnemonic qrcode shamir-mnemonic-slip39
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.58556s