Ledger Bitcoin application client
Client library in Rust for the Ledger Bitcoin application with minimal dependencies.
If you wish to contribute to this library, please read CONTRIBUTING.md.
Minimum Supported Rust Version
bitcoin_client_rs should always compile using Rust 1.60.
Getting started
The client::BitcoinClient struct implements the methods that call and
interpret the commands between the Ledger device and your software.
It requires an internal connection implementing the client::Transport
Trait.
In order to satisfy this Trait, it is possible to import the
ledger-transport-hid crate from https://github.com/Zondax/ledger-rs.
Please, read the examples/ledger_hwi/src/transport.rs file to find an example.
The async feature
The optional feature async adds the async_client module to the crate
and imports the async_trait library. The async_client::BitcoinClient
struct is an asynchronous equivalent to the BitcoinClient struct. It
requires an internal connection implementing the async_client::Transport Trait.
The no-std support
Work in progress.
Example
The code source for a simple tool to communicate with either a Ledger device or Speculos
emulator can be found in the examples directory.
Example of a command to retrieve the extended pubkey with the given derivation path and display it on the device screen:
cargo run --package ledger_hwi -- \
get-extended-pubkey --derivation-path "m/44'/0'/0'/0/0" --display