Oddbean new post about | logout
 Introducing Lark. 

Lark is a Java port of HWI, a library used by many wallets to communicate over USB with with hardware wallets like nostr:npub19canpmsgykwumm43uxmp0l5sernavvnrf87mau9a6xnjfx6ajjhsh9qj29 , Ledger, Trezor, nostr:npub1tg779rlap8t4qm8lpgn89k7mr7pkxpaulupp0nq5faywr8h28llsj3cxmt and nostr:npub1jg552aulj07skd6e7y2hu0vl5g8nl5jvfw8jhn6jpjk0vjd0waksvl6n8n Jade.

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. Lark represents the first complete reimplementation of all common USB HWW clients in a language other than Python.

Even though HWW manufacturers have used a dizzying array of different communication protocols and standards, Lark seeks to be identical to the HWI API, providing direct interchangeability and a more robust 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.

Lark is available as a command line application, and as a Java library for JVM-based applications. Hardware wallet manufacturers are invited to test their devices before it's integrated into Sparrow Wallet. 

See https://github.com/sparrowwallet/larkapp for docs and binaries.
https://m.primal.net/Mmkq.jpg