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):

Trezor

python3 -m pip install trezor[hidapi]

For more details, refer to python-trezor.

Ledger

python3 -m pip install btchip-python

For more details, refer to 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

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.

3. udev rules

You will need to configure udev rules:

Digital Bitbox

See Bitbox | Linux

Coldcard

See this file in their GitHub repository.

(It should go into /etc/udev/rules.d/51-coinkite.rules or /usr/lib/udev/rules.d/51-coinkite.rules)

4. Apply configuration

To apply the changes, reload udev rules (or reboot):

sudo udevadm control --reload-rules && sudo udevadm trigger

5. Done

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