Crypto

Extract non-sensitive information from a Bitcoin-Core wallet

Learn how to extract limited, non-sensitive information from a Bitcoin Core wallet for a password recovery attempt.

Background

This page describes how to get limited Bitcoin-Core (or Litecoin / Dogecoin / etc.) wallet information for Wallet Recovery Services, so that we cannot steal your bitcoins even if the wallet password is found.

Refer to the long forum thread at bitcointalk.org, which discusses the safety of sending your limited wallet information to a service such as this.

Refer to pywallet on GitHub, see also the Bitcoin Wiki’s Pywallet page, and notes about it in previous forum postings, such as on bitcointalk.org.

Note that the instructions below are for Bitcoin Core, Bitcoin-Qt, Litecoin, Dogecoin, and most other alt-coin wallets, but do not apply to blockchain.info, Multibit, Armory, Electrum, BitGo, BIP38-encoded wallets, or Ethereum wallets.


Instructions

  1. Download and install Python 2.7. For example, for Windows:

    python-2.7.2.msi

  2. Download the open-source file named pywallet.py from Wallet Recovery Services. If you are dumping information from a Litecoin or altcoin wallet, you might need to tweak the directory in which the script searches for the wallet.dat file.

  3. Run the pywallet.py script to dump all the important information from your wallet. This step will dump out the encrypted information for you to see, even though your wallet is encrypted with a forgotten password.

    Start a Windows command prompt (cmd) and use:

    pywallet.py --dumpwallet > temp.txt
    

    This puts the information into a file named temp.txt.

  4. Open the resulting temp.txt file in a text editor.

    To attempt decoding the lost passphrase, we need the mkey section, similar to:

    "mkey": { "crypted_key": "e34577ec23039d05a1b71a37996564ad9c48cd5b8bed7d8875eb88c3d34118e9e113e345631295b323a8ba48764ee51b", "nDerivationMethod": 0, "nDeriveIterations": 165130, "nID": 1, "salt": "89be7331b4068346", "vchOtherDerivationParameters": "" },
    

    And two or more of the address sections, such as:

    {
      "addr": "1DCHJoJidu95uJYZcyD9CgnNf6pLOO8XZU",
      "ckey": "6dc8906af2b0dabf84e6c354f659a031b565ed48a6366a3d88cc43a53e49e9f6288c7c776d870e7bcafbf54708e2f86d",
      "pubkey": "03f9d93ceb0d4ebd243ce90c06bed8b73d45668564e3b9e9406d8fe47186fbc58c",
      "reserve": 1
    }
    

    If you choose two of the address sections above that do not contain money—that is, sections with a reserve line, not a label line—you can ensure that you do not send any information that will allow the theft of bitcoins, even by someone who can decode the wallet for you. In other words, you will only be sending us Bitcoin addresses that have no money in them.

  5. Contact us with the information.