Standards-compliant SLIP-39 cryptocurrency seed generation and recovery, compatible with Trezor hardware wallets
Project description
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, BNB, 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slip39-14.1.0.tar.gz.
File metadata
- Download URL: slip39-14.1.0.tar.gz
- Upload date:
- Size: 5.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aeacb2026bd956008b236fbbb59a9b2421445da4fd02f77a72403460e5d8352
|
|
| MD5 |
f7a6d9346355b5dbdc427a48c1980966
|
|
| BLAKE2b-256 |
2dbc567883b2a4c287c6b7e4f0b5fefe3790e93c3060975053ee1b66509f2743
|
Provenance
The following attestation bundles were made for slip39-14.1.0.tar.gz:
Publisher:
release.yml on pjkundert/python-slip39
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slip39-14.1.0.tar.gz -
Subject digest:
8aeacb2026bd956008b236fbbb59a9b2421445da4fd02f77a72403460e5d8352 - Sigstore transparency entry: 798847804
- Sigstore integration time:
-
Permalink:
pjkundert/python-slip39@efdf877d983f342596d540d12ad1a10c9485ddf5 -
Branch / Tag:
refs/tags/v14.1.0 - Owner: https://github.com/pjkundert
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@efdf877d983f342596d540d12ad1a10c9485ddf5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file slip39-14.1.0-py3-none-any.whl.
File metadata
- Download URL: slip39-14.1.0-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e8f91e7658222f5d74c7119517a8a098b696e5a28600cfd9b288083037ac4f9
|
|
| MD5 |
d359fab9ea6b108dfe14bfc2cd213853
|
|
| BLAKE2b-256 |
de3f98cd1715a84328ec709aac2228cac5fe5b0a02463ee23e8f340c8f281b06
|
Provenance
The following attestation bundles were made for slip39-14.1.0-py3-none-any.whl:
Publisher:
release.yml on pjkundert/python-slip39
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slip39-14.1.0-py3-none-any.whl -
Subject digest:
3e8f91e7658222f5d74c7119517a8a098b696e5a28600cfd9b288083037ac4f9 - Sigstore transparency entry: 798847806
- Sigstore integration time:
-
Permalink:
pjkundert/python-slip39@efdf877d983f342596d540d12ad1a10c9485ddf5 -
Branch / Tag:
refs/tags/v14.1.0 - Owner: https://github.com/pjkundert
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@efdf877d983f342596d540d12ad1a10c9485ddf5 -
Trigger Event:
push
-
Statement type: