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
Java is one of the most popular languages for open source development, but specifically it has an open source native desktop GUI framework which is modern, cross platform, mature, and well maintained (unlike most other languages).
Creating a new wallet and selecting the different script type is the easiest approach. Note that Nested Segwit should be considered a legacy script type though - Native Segwit offers better privacy.
In light of recent developments, Sparrow v1.9.0 has been released which removes the Whirlpool client and other Soroban related features. All wallets and accounts are still accessible.
https://sparrowwallet.com/download/
Sparrow v1.8.4 has been released to fix a build issue affecting Sparrow Terminal. The normal desktop app is unaffected.
That said, for those who already upgraded to v1.8.3, it's a good opportunity to test the Download Verifier :)
1. Check out the most recent Sparrow release. 2. SeedSigner is providing very minimal, arguably incomplete PSBTs so without another PSBT to combine with (as would be the case with that function) Sparrow doesn’t have enough information to load them on their own.
Fwiw I don’t think any dependencies are required for BC UR if you limit the scope of data types. Not even CBOR is required if you just transmit txs and psbts.
Would like to see a clearer, technical explanation of why it’s so problematic to implement.
Notes by craigraw | export