Lark v1.0.0: Command Line App & Java Library for Interacting with USB Hardware Wallets

Lark is a command line application designed for the Lark Java USB Hardware Wallet library, enabling interaction with USB hardware wallets for various Bitcoin-related functions.

Lark v1.0.0: Command Line App & Java Library for Interacting with USB Hardware Wallets
  • "Introducing Lark. Lark is a Java port of HWI, a library used by many wallets to communicate over USB with with hardware wallets like COLDCARD , Ledger, Trezor, BitBox, and Blockstream Jade," announced Craig Raw.
  • Lark utilizes the Lark Java library, which is a port of the Python library HWI. The Lark command line application is crafted to serve as a direct substitute for HWI, implementing a selection of its commands.
  • According to the developer, Lark is the first complete reimplementation of all common USB hardware singer clients in a language other than Python.
"HWI is a good example of the ‘single dependency’ situation in the famous xkcd comic. Until now, there has been no project like it. However, with all the wealth stored on hardware wallets (especially those that can only communicate over USB) it's important to have multiple implementations," said the developer.
  • Despite the diverse range of communication protocols and standards utilized by hardware signer manufacturers, Lark aims to mirror the HWI API. This approach aims to ensure straightforward interchangeability and contributes to the development of an overall more resilient ecosystem.
"All common commands are supported, and there is some additional functionality, such as retrieving a wallet registration from Ledger devices to avoid re-registration on every signing," added Craig Raw.
  • Lark is offered both as a command line application and a Java library for JVM-based applications. Hardware wallet manufacturers are encouraged to test their devices prior to it's integration into Sparrow Wallet.
  • The initial release supports Coldcard, Trezor, Ledger, BitBox02, Jade, and Keepkey devices across Linux x86_64, Linux aarch64, macOS x86_64, macOS aarch64, and Windows x86_64 platforms.
  • Docs and binaries are available here. Documentation on the commands is available by running it with --help.

Announcement / Archive
GitHub Repo