Deterministic wallet tools: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Danda (talk | contribs)
Lopp (talk | contribs)
m →‎Online Services: remove dead link to bitcore playground
 
(10 intermediate revisions by 6 users not shown)
Line 8: Line 8:


=== Online Services ===
=== Online Services ===
 
* [https://bitaps.com/bip32 bitaps.com/bip32]: BIP32 calculator. Calculate addresses and keys from BIP32 extended private or public keys.
* [https://bitaps.com/mnemonic bitaps.com/mnemonic]: Mnemonic tools. Create, verify or restore wallet using BIP39 mnemonic code. Split mnemonic with threshold secrets or combine secrets with Shamir secret sharing.
* [https://blockpath.com/wallets/new?action=appxpub Blockpath]: Automatically scan all derivation paths for an xPub/yPub/zPub and view the balance of each used address, or generate all addresses and export them as text.
* [http://bip32.org/ bip32.org]: A tool for displaying information derived from bip32 extended key, or nmenonic phrase.  Appears to list only the first address.
* [http://bip32.org/ bip32.org]: A tool for displaying information derived from bip32 extended key, or nmenonic phrase.  Appears to list only the first address.
* [https://iancoleman.github.io/bip39/ Mnemonic Code Converter]:  A tool for listing keys and addresses from a bip32 mnemonic phrase.  The tool can be saved as a file and used without any internet connection.
* [https://iancoleman.github.io/bip39/ Mnemonic Code Converter]:  A tool for listing keys and addresses from a bip39 mnemonic phrase.  The tool can be saved as a file and used without any internet connection.
* [https://webhdwallet.github.io/ WebHDWallet]: Implementing the Hierarchical Deterministic Wallet proposal BIP32, with the aim of creating easy to use, secure, and powerful tools for managing HD wallets and the funds within.
* [https://webhdwallet.github.io/ WebHDWallet]: Implementing the Hierarchical Deterministic Wallet proposal BIP32, with the aim of creating easy to use, secure, and powerful tools for managing HD wallets and the funds within.
* [https://mybitprices.info/hd-wallet-addrs.html mybitprices.info]: A tool that can derive all used wallet addresses from an extended public key and can further lookup historic price information for all wallet transactions and create gain/loss reports.
* [https://mybitprices.info/hd-wallet-addrs.html mybitprices.info]: A tool that can derive all used wallet addresses from an extended public key and can further lookup historic price information for all wallet transactions and create gain/loss reports.
* [https://bitcore.io/playground/#/hdkeys bitcore playground]: Derive HD keys from a private or public extended key and a path.
* [https://jlopp.github.io/xpub-converter/ xpub version converter]: Convert an extended public key between xpub / ypub / zpub etc.


=== Offline Command-line software ===
=== Offline Command-line software ===


* [https://github.com/trezor/python-mnemonic]: Reference implementation of BIP-0039: Mnemonic code for generating deterministic keys
* [https://github.com/trezor/python-mnemonic python-mnemonic]: Reference implementation of BIP-0039: Mnemonic code for generating deterministic keys
* [https://github.com/dan-da/hd-wallet-derive hd-wallet-derive]: A command-line tool that derives bip32 addresses and private keys from bip32 extended keys or mnemonic.
* [https://github.com/dan-da/hd-wallet-derive hd-wallet-derive]: A command-line tool that derives bip32 addresses and private keys from bip32 extended keys or mnemonic, and can generate new master keys as well.  Supports segwit (p2sh,bech32) and hundreds of altcoins.
* [https://github.com/dan-da/hd-wallet-addrs hd-wallet-addrs]: A command-line tool for finding bitcoin hd-wallet addresses that have actually received funds, including change addresses.  (note: key derivation occurs offline, but funds lookup requires internet connection.)
* [https://github.com/dan-da/hd-wallet-addrs hd-wallet-addrs]: A command-line tool for finding bitcoin hd-wallet addresses that have actually received funds, including change addresses.  (note: key derivation occurs offline, but funds lookup requires internet connection.)
* [https://github.com/vbuterin/pybitcointools pybitcointools]: Simple, common-sense Bitcoin-themed Python ECC library.  by Vitalik Buterin.
* [https://github.com/vbuterin/pybitcointools pybitcointools]: Simple, common-sense Bitcoin-themed Python ECC library.  by Vitalik Buterin.
* [https://github.com/trezor/python-trezor python-trezor]: Client side implementation for TREZOR-compatible Bitcoin hardware wallets.


=== Risks associated with sharing extended keys with a third party ===
=== Risks associated with sharing extended keys with a third party ===


==== Risks of Sharing an Extended Private Key (xprv) ====
==== Risks of Sharing an Extended Private Key (xprv) DO-NOT-DO-THIS!!! ====


# '''The recipient can spend (steal) all your wallet funds.'''
# '''The recipient can spend (steal) all your wallet funds.'''
Line 30: Line 33:
# The recipient can identify and view all your historic transactions.
# The recipient can identify and view all your historic transactions.
# The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.
# The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.
Don't do this!


==== Risks of Sharing an Extended Public Key (xpub) ====
==== Risks of Sharing an Extended Public Key (xpub) ====
Line 42: Line 42:
# The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.
# The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.
# If, and only if, the recipient ''also'' obtains a single private key from your wallet, the recipient can obtain all your private keys and steal your funds, just as if they had your xprv key.
# If, and only if, the recipient ''also'' obtains a single private key from your wallet, the recipient can obtain all your private keys and steal your funds, just as if they had your xprv key.
[[Category:Wallets]]

Latest revision as of 14:37, 19 September 2020

List of tools/services for working with Hierarchical Deterministic Wallets, aka hd-wallets aka bip32 wallets.

Tools listed on this page can typically perform some form of key derivation and list hd-wallet addresses.

Warning: You should never give an online service your master extended private key (xprv) as they could use it to drain your entire wallet. Even sharing an extended public key entails risks. If using an online hosted javascript tool, be careful to work with it offline only.

See also Deterministic Wallet.

Online Services

  • bitaps.com/bip32: BIP32 calculator. Calculate addresses and keys from BIP32 extended private or public keys.
  • bitaps.com/mnemonic: Mnemonic tools. Create, verify or restore wallet using BIP39 mnemonic code. Split mnemonic with threshold secrets or combine secrets with Shamir secret sharing.
  • Blockpath: Automatically scan all derivation paths for an xPub/yPub/zPub and view the balance of each used address, or generate all addresses and export them as text.
  • bip32.org: A tool for displaying information derived from bip32 extended key, or nmenonic phrase. Appears to list only the first address.
  • Mnemonic Code Converter: A tool for listing keys and addresses from a bip39 mnemonic phrase. The tool can be saved as a file and used without any internet connection.
  • WebHDWallet: Implementing the Hierarchical Deterministic Wallet proposal BIP32, with the aim of creating easy to use, secure, and powerful tools for managing HD wallets and the funds within.
  • mybitprices.info: A tool that can derive all used wallet addresses from an extended public key and can further lookup historic price information for all wallet transactions and create gain/loss reports.
  • xpub version converter: Convert an extended public key between xpub / ypub / zpub etc.

Offline Command-line software

  • python-mnemonic: Reference implementation of BIP-0039: Mnemonic code for generating deterministic keys
  • hd-wallet-derive: A command-line tool that derives bip32 addresses and private keys from bip32 extended keys or mnemonic, and can generate new master keys as well. Supports segwit (p2sh,bech32) and hundreds of altcoins.
  • hd-wallet-addrs: A command-line tool for finding bitcoin hd-wallet addresses that have actually received funds, including change addresses. (note: key derivation occurs offline, but funds lookup requires internet connection.)
  • pybitcointools: Simple, common-sense Bitcoin-themed Python ECC library. by Vitalik Buterin.
  • python-trezor: Client side implementation for TREZOR-compatible Bitcoin hardware wallets.

Risks associated with sharing extended keys with a third party

Risks of Sharing an Extended Private Key (xprv) DO-NOT-DO-THIS!!!

  1. The recipient can spend (steal) all your wallet funds.
  2. The recipient can obtain all your wallet keys and addresses, private and public.
  3. The recipient can identify and view all your historic transactions.
  4. The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.

Risks of Sharing an Extended Public Key (xpub)

In general it is safest NOT to share an extended public key.

  1. The recipient can obtain all your wallet public keys and addresses, but not your private keys.
  2. The recipient can identify and view all your historic transactions.
  3. The recipient can link all your wallet transactions together, possibly linking anonymous transactions with those associated with your identity.
  4. If, and only if, the recipient also obtains a single private key from your wallet, the recipient can obtain all your private keys and steal your funds, just as if they had your xprv key.