使用比特币硬件钱包的库
hwi的Python项目详细描述
比特币硬件钱包接口
比特币硬件钱包接口是一个python库和命令行工具,用于与硬件钱包交互。
它提供了一种标准的软件与硬件钱包协同工作的方式,而无需实现特定于设备的驱动程序。
python软件可以使用提供的库(hwilib
)。其他语言的软件可以执行hwi
工具。
先决条件
python 3是必需的。还必须安装每个设备的库和udev rules。需要安装一些库
对于ubuntu/debian:
sudo apt install libusb-1.0-0-dev libudev-dev
对于MacOS:
brew install libusb
此项目使用Poetry依赖关系管理器。 一旦用git clone下载了hwi的源代码,就可以通过poetry在根源目录中执行以下命令来安装它及其依赖项:
poetry install
pip还可用于安装操作和开发所需的所有依赖项(在virtualenv或系统中)。有关所有依赖项,请参见pyproject.toml
。[tool.poetry.dependecies]
下的依赖项是用户依赖项,而基于开发的依赖项是[tool.poetry.dev-dependencies]
。
安装
git clone https://github.com/bitcoin-core/HWI.git
cd HWI
用法
要使用,请首先枚举所有设备并找到要与之一起使用的设备
./hwi.py enumerate
一旦知道设备类型和设备路径,就可以像这样向其发出命令:
./hwi.py -t <type> -d <path> <command> <command args>
所有输出都将以json格式发送到stdout
。
附加信息或提示将发送到stderr
,不一定是json格式的。
此附加信息用于调试目的。
设备支持
下表列出了每个设备支持的设备和功能。
有关每个设备的其他信息,请参见docs。
Feature \ Device | Ledger Nano S | Trezor One | Trezor Model T | Digital BitBox | KeepKey | Coldcard |
---|---|---|---|---|---|---|
Support Planned | Yes | Yes | Yes | Yes | Yes | Yes |
Implemented | Yes | Yes | Yes | Yes | Yes | Yes |
xpub retrieval | Yes | Yes | Yes | Yes | Yes | Yes |
Message Signing | Yes | Yes | Yes | Yes | Yes | Yes |
Device Setup | N/A | Yes | Yes | Yes | Yes | N/A |
Device Wipe | N/A | Yes | Yes | Yes | Yes | N/A |
Device Recovery | N/A | Yes | Yes | N/A | Yes | N/A |
Device Backup | N/A | N/A | N/A | Yes | N/A | Yes |
P2PKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes |
P2SH-P2WPKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes |
P2WPKH Inputs | Yes | Yes | Yes | Yes | Yes | Yes |
P2SH Multisig Inputs | Yes | Yes | Yes | Yes | Yes | Yes |
P2SH-P2WSH Multisig Inputs | Yes | Yes | Yes | Yes | No | Yes |
P2WSH Multisig Inputs | Yes | Yes | Yes | Yes | Yes | Yes |
Bare Multisig Inputs | Yes | N/A | N/A | Yes | N/A | N/A |
Arbitrary scriptPubKey Inputs | Yes | N/A | N/A | Yes | N/A | N/A |
Arbitrary redeemScript Inputs | Yes | N/A | N/A | Yes | N/A | N/A |
Arbitrary witnessScript Inputs | Yes | N/A | N/A | Yes | N/A | N/A |
Non-wallet inputs | Yes | Yes | Yes | Yes | Yes | Yes |
Mixed Segwit and Non-Segwit Inputs | N/A | Yes | N/A | Yes | Yes | Yes |
Display on device screen | Yes | Yes | Yes | N/A | Yes | Yes |
与比特币核心一起使用
见Using Bitcoin Core with Hardware Wallets。
许可证
这个项目是在麻省理工学院的许可下,版权安德鲁周。