There are a few basic steps to installing BTCRecover.
-
Download and unzip the BTCRecover script
-
Download and install Python3
-
Install required packages via Python PIP
-
(Optional) Install PyOpenCL module for GPU Acceleration
-
Test your installation (Optional, but a good idea)
These steps are also covered in Videos below for each supported Operating System.
Note: Depending on your operating system and python environment, you may need to replace the python command with python3. (By default, the command to use will be python in Windows and python3 in Linux) Most non-technical users are on Windows, so all example commands will use python to match the defaults for this platform
Video Tutorials
Windows: https://youtu.be/JveLyJqEgLk
Ubuntu Linux: https://youtu.be/Met3NbxcZTU
MacOS: https://youtu.be/PMxkf4VYnkk
Android via Termux: https://youtu.be/QrCWigmJFjA
Just download the latest version from https://github.com/3rdIteration/btcrecover/archive/master.zip and unzip it to a location of your choice. There’s no installation procedure for btcrecover itself, however there are additional requirements below depending on your operating system and the wallet type you’re trying to recover.
You can also use Git (If you have it installed) to do this with the command git clone https://github.com/3rdIteration/btcrecover/
Note: Only Python 3.10 and later are officially supported... BTCRecover is automatically tested with all supported Python versions (3.10, 3.11, 3.12, 3.13, 3.14) on all supported environments (Windows, Linux, Mac), so you can be sure that both BTCRecover and all required packages will work correctly. Some features of BTCRecover may work on earlier versions of Python, your best bet is to use run-all-tests.py to see what works and what doesn't...
Video Demo of Installing BTCRecover in Windows: https://youtu.be/JveLyJqEgLk
Install Python via the Windows Store.
Note for Large Multi-CPU Systems: Windows limits the number of possible threads to 64. If your system has more logical/physical cores than this, your best bet is to run the tool in Linux. (Ubuntu is an easy place to start)
Video Demo of Installing BTCRecover in Ubuntu Live USB: https://youtu.be/Met3NbxcZTU
Most modern distributions include Python 3 pre-installed. Older Linux distributions will include Python2, so you will need to install python3.
If you are using SeedRecover, you will also need to install tkinter (python3-tk) if you want to use the default GUI popups for seedrecover. (Command line use will work find without this package)
Some distributions of Linux will bundle this with Python3, but for others like Ubuntu, you will need to manually install the tkinter module.
You can install this with the command: sudo apt install python3-tk
If any of the "pip3" commands below fail, you may also need to install PIP via the command: sudo apt install python3-pip
If your installation fails to build cffi, you may also need to install libffi-dev with the command: sudo apt install libffi-dev
If you get a message that there is no installation candidate for Python3-pip, you will need to enable the "universe" repository with the command: sudo add-apt-repository universe
You can then re-run the command to install python3-pip from above.
Some warnings and notes...
-
Termux support remains experimental, but automated tests now run weekly via the Termux Docker container on GitHub Actions
-
Your phone may not have sufficient cooling to run BTCRecover for any meaninful length of time
-
Performance will also vary dramatically between phones and Android versions... (Though it is actually fast enough to be useful for simple recoveries)
-
Termux is not a standard Linux environment and is not officially supported, but might work following the process below... (And if it doesn't, just use a PC instead...)
-
Install Termux following the instructions here: https://termux.dev/en/ (Currently not officially distributed on Google Play and the version on Google Play is not currently up-to-date)
You will then need to install Python as well as some other packages (Mostly the Coincurve build requirements)
pkg install python-pip git autoconf automake build-essential libtool pkg-config llvm lld rust
The python-pip package already includes PIP. Attempting to upgrade it with
pip install --upgrade pip will fail and is unnecessary.
Once this is done, you can install the base requirements for BTCRecover that allow recovery of common wallet types. (The full requirements have a lot of packages and will take a long time to build, like 15-20 minutes or more...)
If you want to install the full requirements (requirements-full.txt), some packages like py-sr25519-bindings and cryptography use maturin as their build backend. The pre-built maturin wheel does not work correctly on Termux, so you need to build maturin from source first and install the affected packages without build isolation:
export ANDROID_API_LEVEL=24
pip install maturin --no-binary maturin
pip install py-sr25519-bindings==0.2.3 --no-build-isolation
pip install -r requirements-full.txt
As of OpenSSL v3 (Late 2021), ripemd160 is no longer enabled by default in some Linux environments and is now part of the "Legacy" set of hash functions. In Linux/MacOS environments, the hashlib module in Python relies on OpenSSL for ripemd160, so if you want full performance in these environments, you may need modify your OpenSSL settings to enable the legacy provider.
You can check if this is required by running python check_ripemd160.py
As of July 2022, BTCRecover does include a "pure Python" implementation of RIPEMD160, but this only offers about 1/3 of the performance when compared to a native implementation via hashlib.
Video Demo of this applying fix can be found here: https://youtu.be/S3DWKp0i4i0
An example of the modified configuration file can be found here: https://github.com/3rdIteration/btcrecover/blob/master/docs/example_openssl.cnf
For more information, see the relevant issue on the OpenSSL Github repository: openssl/openssl#16994
Video Demo of Installing BTCRecover in MacOS: https://youtu.be/PMxkf4VYnkk
MacOS doesn't ship with Python3 and if you run Python3 on a stock install, will install the dev tools and a very old version of Python3... Rather than use that, we will use a current version of Python installed via Brew.
The Install command is:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Then after that has completed, follow the "next steps" instructions too.
source ~/.zshrc
The Install command is:
brew install autoconf automake libffi libtool pkg-config python python-tk swig gsed
- Install Rust (Optional, but needed for requirements-full modules)
The Install command is:
curl https://sh.rustup.rs -sSf | sh
If you install rust, close the current terminal window and open a new one before continuing with the process.
Once both Python3 and PIP have been installed, you can install the requirements for BTCRecover.
You will first want to install the basic packages required for BTCRecover with the command:
pip3 install -r requirements.txt
This will give you the functionality needed recovery of Bitcoin/Ethereum wallets (And clones of these chains)
If when run this command, you get an error message similar to error: externally-managed-environment then you need to add an additional argument --break-system-packages to the above command. (So the command will be pip3 install -r requirements.txt --break-system-packages)
Note: If you use Python for other things beyond BTCRecover, then the --break-system-packages could cause other issues, but in such situations, managing your python virtual environments for your specific system is beyond the scope of this documentation.
Depending on your wallet type, you may also want to install the packages required for full wallet support. This is a much larger download and may also require that you install additional software on your PC for these packages to build and install.
pip3 install -r requirements-full.txt
Note, if you are on MacOS, if this installation fails, you will also need to export the python path.
export PYTHON=/opt/homebrew/bin/python3
If you are an advanced user, you may choose to install only those additional packages that are required for the specific recovery you are attempting. More information about which wallets require which packages is at the bottom of this guide.*
GPU Support will require additional OpenCL libraries to be installed that aren't covered by the above commands...
For more information and instructions, see the GPU acceleration page here
Once you have downloaded and unzipped BTCRecover, installed Python and all required libraries, you can test the program with the command:
python run-all-tests.py -vv
This command will take a few minutes to run and should complete without errors, indicating that your system is ready to use all features of BTCRecover.
If you want to install all requirements for all wallet types, you can simply use the command pip3 install -r requirements-full.txt
Locate your wallet type in the list below, and follow the instructions for only the sections listed next to your wallet.
-
Bitcoin Core - optional: PyCryptoDome
-
MultiBit Classic - recommended: PyCryptoDome
-
MultiBit HD - optional: PyCryptoDome
-
Electrum (1.x or 2.x) - recommended: PyCryptoDome
-
Electrum 2.8+ fully encrypted wallets - coincurve, optional: PyCryptoDome
-
BIP-39 Bitcoin passphrases (e.g. TREZOR) - coincurve
-
BIP-39 Ethereum passphrases (e.g. TREZOR) - PyCryptoDome coincurve
-
Hive for OS X - Google protobuf, optional: PyCryptoDome
-
mSIGNA (CoinVault) - recommended: PyCryptoDome
-
Blockchain.info - recommended: PyCryptoDome
-
Bitcoin Wallet for Android/BlackBerry backup - recommended: PyCryptoDome
-
Bitcoin Wallet for Android/BlackBerry spending PIN - scrypt, Google protobuf, optional: PyCryptoDome
-
KnC Wallet for Android backup - recommended: PyCryptoDome
-
Bither - coincurve, optional: PyCryptoDome
-
Litecoin-Qt - optional: PyCryptoDome
-
Electrum-LTC - recommended: PyCryptoDome
-
Litecoin Wallet for Android - recommended: PyCryptoDome
-
Dogecoin Core - optional: PyCryptoDome
-
MultiDoge - recommended: PyCryptoDome
-
Dogecoin Wallet for Android - recommended: PyCryptoDome
-
SLIP39 Wallets: shamir-mnemonic
-
Py_Crypto_HD_Wallet Based BIP39 Wallets: py_crypto_hd_wallet
- Avalanche
- Cosmos (Atom)
- Polkadot
- Secret Network
- Solana
- Stellar
- Tezos
- Tron
-
Eth Keystore Files: eth-keyfile
-
Eth2 Validator Seed Recovery: staking-deposit
-
Groestlecoin BIP39 Wallets: groestlcoin_hash
-
BIP38 Encrypted Private Keys: ecdsa
BTCRecover prefers the wallycore implementation of scrypt when available.
If wallycore is not installed it falls back to pylibscrypt, which is
approximately 20% slower for BIP38 operations and other wallet formats that rely
on scrypt.
With the exception of Ethereum wallets, PyCryptoDome is not strictly required for any wallet, however it offers a 20x speed improvement for wallets that tag it as recommended in the list above.
This module is required for a number of different wallet types.
For Windows Users, you will also need to install the Microsoft Visual C++ Build Tools befor you will be able to successfully install the module.
A video tutorial that covers this can be found here: https://youtu.be/0LMUf0R9Pi4
For MacOS and Linux users, the module should build/install just fine if you follow the installation instructions on this page for your platform.
This module isn't available as a pre-compiled package and must be downloaded and built from source.
It is installed as part of the collection of modules installed by requirements-full.txt.
Alternately, you can attempt to download, build and install it via pip3 with the following command:
pip3 install git+https://github.com/ethereum/staking-deposit-cli.git@v2.5.0
This module also requires the py_ecc module which can be installed with the command:
pip3 install py_ecc
More information can be found at its repository
Note: Some dependencies for this module won't always build if you are running the latest version of Python, if you run into build errors, you should try the previous major Python Versions until you find one that works on your system (eg: Something like 3.10)