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.
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
Now I feel like playing with this in Java :-)
Thank you Craig. What a legend. Zapped.
Incredible work from Craig yet again
nostr:nevent1qqstc6h4kdtk4t3d0jun3ck4lnvmdlmrwqfmfpjm6l5cs4lzxfd340spzpmhxue69uhkummnw3ezumt0d5hsyg970fffrdfjazu33ukunq2gjj9r85lqmgrh3rt5zmmnknr4zncgucpsgqqqqqqs7hcwa0
Amazing, thanks! Will Sparrow in the future just use Lark as a library so that we don't have to install anything else and USB HWW will "just work"?
Yes. It should already “just work” but this will make it work better.
Thank you for all the hard work Craig! I’d zap you some sats if you had a lightning wallet setup 🫡