Hardware wallets on Linux

The following aims to be a concise guide of what you need to get your hardware wallet working with Electrum.

If you use the AppImage, that already has all the dependencies and Python libraries bundled with it, so skip the first two steps.

1. Dependencies

Currently all hardware wallets depend on hidapi, to be able to build that, you need:

ubuntu:

sudo apt-get install libusb-1.0-0-dev libudev-dev

fedora:

sudo dnf install libusb-devel systemd-devel

(Package names may be different for other distributions.)

2. Python libraries

Then, depending on the device you have, you need a python package (typically a library by the manufacturer). For a usually more up-to-date list (including potential version requirements), refer to requirements-hw.txt in the client source.

Trezor

python3 -m pip install trezor[hidapi]

For more details, refer to python-trezor.

Ledger

python3 -m pip install hidapi btchip-python ecdsa ledger-bitcoin

For more details, refer to LedgerHQ/app-bitcoin-new and LedgerHQ/btchip-python.

KeepKey

python3 -m pip install keepkey

For more details, refer to python-keepkey.

Digital Bitbox

The Digital Bitbox only needs hidapi.

python3 -m pip install hidapi

BitBox02

python3 -m pip install bitbox02

For more details, refer to python-bitbox02.

Archos Safe-T

python3 -m pip install safet

For more details, refer to python-safet.

Coldcard

python3 -m pip install ckcc-protocol

For more details, refer to ckcc-protocol.

Jade

python3 -m pip install pyserial cbor2

For more details, refer to jadepy.

3. udev rules

You will need to configure udev rules. See electrum/contrib/udev

4. Done

That’s it! Electrum should now detect your device.