slip39


Nameslip39 JSON
Version 12.0.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-03-04 19:51:13
maintainer
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 mnemonic qrcode shamir-mnemonic
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][1] project (and the [slip39-app][2]) 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 *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-model-t][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][4],
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.

[1]: <https://github.com/pjkundert/python-slip39.git> "python-slip39"

[2]: <https://slip39.com/app> "SLIP-39 App"

[3]: <https://trezor.go2cloud.org/SH1Y> "Trezor Model T"

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

## 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": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "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/ac/22/826786ac4cc7ddee33cc255dabb7e4ad0b59381bb7509c2625e2dd49e5fa/slip39-12.0.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][1] project (and the [slip39-app][2]) exists to assist in the safe creation,\nbackup and documentation of Hierarchical Deterministic (HD) Wallet seeds and derived accounts,\nwith various SLIP-39 sharing parameters.  It generates the new random wallet seed, and generates\nthe expected standard Ethereum account(s) (at *m/44'/60'/0'/0/0* by default) and\nBitcoin accounts (at Bech32 derivation path *m/84'/0'/0'/0/0* by default), with wallet address and\nQR code (compatible with Trezor and Ledger derivations).  It produces the required SLIP-39\nphrases, and outputs a single PDF containing all the required printable cards to document the seed\n(and the specified derived accounts).\n\nOn an secure (ideally air-gapped) computer, new seeds can /safely/ be generated (*without*\ntrusting this program) and the PDF saved to a USB drive for printing (or directly printed without\nthe file being saved to disk.).  Presently, =slip39= can output example ETH, BTC, LTC, DOGE, BSC,\nand XRP addresses derived from the seed, to /illustrate/ what accounts are associated with the\nbacked-up seed.  Recovery of the seed to a [trezor-model-t][3] is simple, by entering the mnemonics\nright on the device.\n\nWe also support the backup of existing insecure and unreliable 12- or 24-word BIP-39 Mnemonic\nPhrases as SLIP-39 Mnemonic cards, for existing BIP-39 hardware wallets like the [ledger-nano][4],\netc.!  Recover from your existing BIP-39 Seed Phrase Mnemonic, select \"Using BIP-39\" (and enter\nyour BIP-39 passphrase), and generate a set of SLIP-39 Mnemonic cards.  Later, use the SLIP-39 App\nto recover from your SLIP-39 Mnemonic cards, click \"Using BIP-39\" to get your BIP-39 Mnemonic\nback, and use it (and your passphrase) to recover your accounts to your Ledger (or other) hardware\nwallet.\n\nOutput of BIP-38 or JSON encrypted Paper Wallets is also supported, for import into standard\nsoftware cryptocurrency wallets.\n\n[1]: <https://github.com/pjkundert/python-slip39.git> \"python-slip39\"\n\n[2]: <https://slip39.com/app> \"SLIP-39 App\"\n\n[3]: <https://trezor.go2cloud.org/SH1Y> \"Trezor Model T\"\n\n[4]: <https://shop.ledger.com/pages/ledger-nano-x?r=2cd1cb6ae51f> \"Ledger Nano\"\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": "12.0.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": "4692aa39aab6bef5aff39b698576c5bd4497439fb67128c394de1bee00e9d941",
                "md5": "bb343465600ee78138bc74db71f5513b",
                "sha256": "9745f9af3d684403ae416c79629301809ed33400af9b1abc36da844489b12a12"
            },
            "downloads": -1,
            "filename": "slip39-12.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bb343465600ee78138bc74db71f5513b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 2522214,
            "upload_time": "2024-03-04T19:51:08",
            "upload_time_iso_8601": "2024-03-04T19:51:08.979095Z",
            "url": "https://files.pythonhosted.org/packages/46/92/aa39aab6bef5aff39b698576c5bd4497439fb67128c394de1bee00e9d941/slip39-12.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac22826786ac4cc7ddee33cc255dabb7e4ad0b59381bb7509c2625e2dd49e5fa",
                "md5": "1ca10419f5db4d83a12b10774d4454e4",
                "sha256": "a94ea9f8774a2e4e38905c1fd048f51324c17d6b34e6910bdbc3dded2cbd7cb9"
            },
            "downloads": -1,
            "filename": "slip39-12.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "1ca10419f5db4d83a12b10774d4454e4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 4998609,
            "upload_time": "2024-03-04T19:51:13",
            "upload_time_iso_8601": "2024-03-04T19:51:13.562565Z",
            "url": "https://files.pythonhosted.org/packages/ac/22/826786ac4cc7ddee33cc255dabb7e4ad0b59381bb7509c2625e2dd49e5fa/slip39-12.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-04 19:51:13",
    "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": [
                [
                    ">=",
                    "2.0.1"
                ],
                [
                    "<",
                    "3"
                ]
            ]
        },
        {
            "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": [
                [
                    "<",
                    "3"
                ],
                [
                    ">=",
                    "2.7.6"
                ]
            ]
        },
        {
            "name": "hdwallet",
            "specs": [
                [
                    "<",
                    "3"
                ],
                [
                    ">=",
                    "2.2.1"
                ]
            ]
        },
        {
            "name": "mnemonic",
            "specs": [
                [
                    ">=",
                    "0.2"
                ],
                [
                    "<",
                    "1"
                ]
            ]
        },
        {
            "name": "qrcode",
            "specs": [
                [
                    ">=",
                    "7.3"
                ]
            ]
        },
        {
            "name": "shamir-mnemonic",
            "specs": [
                [
                    ">=",
                    "0.2.2"
                ],
                [
                    "<",
                    "1"
                ]
            ]
        }
    ],
    "lcname": "slip39"
}
        
Elapsed time: 0.21514s