The latest version of Bitcoin Core v22.0 will add support for hardware wallets. It will start to support connection with Hardware Wallets with HWI Python library. The overall interface of the wallet will change in the latest version and new options for hardware wallets will be added to the settings and then we will be able to create a new wallet with our connected devices.
It is pretty good news and bitcoin users are looking forward to giving this wallet a go as soon as it releases.
Bitcoin Core can be launched with -signer=<cmd>
where <cmd>
is an external tool that can sign transactions and perform other functions. For example, it can be used to communicate with a hardware wallet.
Among other changes, Bech32m (witness v1) addresses are now supported for most RPC calls. Adjustments were made to the RPC calls for banning, network, and peer information. It no longer supports MacOS versions older than 10.14 “Mojave”.
22.0 Release Notes Draft
Below is a copy of the relevant section of the release notes that mentions the signing feature.
GUI Changes
External signers such as hardware wallets can now be used. These require an external tool such as HWI to be installed and configured under Options -> Wallet. When creating a new wallet a new option “External signer” will appear in the dialog. If the device is detected, its name is suggested as the wallet name. The watch-only keys are then automatically imported. Receive addresses can be verified on the device. The send dialog will automatically use the connected device. This feature is experimental and the UI may freeze for a few seconds when performing these actions.
Example of Usage
Although this tool is hosted under the Bitcoin Core GitHub organization and maintained by Bitcoin Core developers, it should be used with caution. It is considered experimental and has far less review than Bitcoin Core itself. Be particularly careful when running tools such as these on a computer with private keys on it.
When using a hardware wallet, consult the manufacturer’s website for (alternative) software they recommend. As long as their software conforms to the standard below, it should be able to work with Bitcoin Core.
What does the HWI library do?
The primary use of HWI is to discover hardware wallets that are connected via USB ports. It uses the udev project, which means that Windows is not supported. It only works for macOS and Linux. Fortunately, HWI and hardware wallet support are optional in Bitcoin Core. It will continue to function normally if HWI is not installed.
HWI is a command-line program that reads commands from the terminal and sends them to the device. The device behaves as if a human is entering physical input to it and executes the commands the same way it would be done manually. It also has a Python API, which makes it easier to add an HTTP API in the future if desired by the project maintainers.
Supported Devices
The following hardware wallets are compatible with most commands of HWI:
- Ledger Nano X
- Ledger Nano S
- Trezor Model T
- Trezor One
- BitBox01
- BitBox02
- KeepKey
- Coldcard
HWI has a support policy that states that hardware wallets must use as much open-source firmware as possible. Closed-source parts are acceptable if they are required by a non-disclosure agreement (NDA). Closed-source firmware is tolerated if the vendor provides active support for it, but the hardware wallet support will be dropped if the vendor stops maintaining HWI support for their hardware wallet. Also, if the hardware wallet stops receiving security updates, HWI support for it will be dropped if security vulnerabilities are found.