Skip to main content
BTCRecover is a Python script with no installer. You download it, install Python and the required packages, then run it from a terminal.
On Windows, use python in commands. On Linux and macOS, use python3. All examples on this page use python3 to match Linux/macOS defaults.
1

Download BTCRecover

Download the latest zip from GitHub and unzip it to a folder of your choice:
# Using git
git clone https://github.com/3rdIteration/btcrecover/

# Or download and unzip manually
# https://github.com/3rdIteration/btcrecover/archive/master.zip
There is no installer. The main scripts — btcrecover.py and seedrecover.py — are in the root of the unzipped folder.
2

Install Python 3

Only Python 3.9 and later are supported. Python 3.12 is recommended because it has the simplest module installation across all platforms.
  1. Download the latest Python 3.12 installer from python.org/downloads/windows.
  2. Run the installer. On the first screen, check “Add Python to PATH” before clicking Install.
  3. Choose the 64-bit (x86-64) installer for modern PCs.
Windows limits the number of threads to 64. If your system has more logical cores than this, run BTCRecover on Linux instead.
3

Install Python packages

From inside the btcrecover directory, install the required packages.Essential packages (Bitcoin and Ethereum wallet support):
pip3 install -r requirements.txt
Full packages (all supported wallet types):
pip3 install -r requirements-full.txt
If you get an error: externally-managed-environment message on newer Linux distributions (Ubuntu 23.04+, Debian 12+), add --break-system-packages:
pip3 install -r requirements.txt --break-system-packages
If you use Python for other projects, consider using a virtual environment instead to avoid conflicts.
If you are running Python 3.13 and get a build error, set this environment variable before running the pip command:
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
pip3 install -r requirements.txt
4

Fix RIPEMD160 on Linux and macOS (if needed)

As of OpenSSL v3 (released late 2021), RIPEMD160 is part of the “Legacy” provider and may be disabled by default on Linux and macOS. BTCRecover includes a pure-Python fallback, but it runs at roughly one-third the speed of the native implementation.Check whether native RIPEMD160 is working:
python3 check_ripemd160.py
If the script reports that RIPEMD160 is not available, you need to enable the OpenSSL legacy provider. An example configuration file is available at docs/example_openssl.cnf in the repository.
A video walkthrough of this fix is available in the BTCRecover YouTube playlist.
5

Test your installation

Run the full test suite to confirm everything is working:
python3 run-all-tests.py -vv
This takes a few minutes. It should complete without errors. Any failures indicate missing packages or a configuration issue for that wallet type.

Wallet-specific package requirements

The requirements.txt file covers Bitcoin and Ethereum wallets. For other wallets, you may need additional packages. The simplest option is to install everything:
pip3 install -r requirements-full.txt
Key additional packages and the wallets that need them:
PackageRequired for
coincurveElectrum 2.8+ encrypted wallets, BIP-39 passphrases, Bither
pycryptodome20x speedup for Bitcoin Core, MultiBit, Electrum, Blockchain.com (not strictly required)
py_crypto_hd_walletAvalanche, Cosmos, Polkadot, Solana, Stellar, Tezos, Tron, Secret Network
shamir-mnemonicSLIP-39 wallets
groestlcoin_hashGroestlcoin BIP-39 wallets
eth-keyfileEthereum UTC Keystore files
ecdsaBIP-38 encrypted paper wallets
pynacl, bitstringHelium BIP-39 wallets
For py_crypto_hd_wallet on Windows, you must first install the Microsoft Visual C++ Build Tools.

Build docs developers (and LLMs) love