This is the eighth post of this kind this year. We just tagged Liana version 4.0. We’ve been a long way since the first of those posts this year, announcing Liana version 0.2. This post announced how starting from 0.2 you could use more than one key per spending path, in order to setup a trust-distributed safety net or a decaying/expanding multisig for instance.
Since then, we’ve rolled out more powerful recovery configurations for your scripts. Using more than one recovery path or a smoother way to reuse signers across spending paths are such examples. We’ve also made a lot of progress on delivering regular wallet functionalities: a Liana-managed Bitcoin Core node, compatibility with more hardware signing devices, key aliases, labels, etc. Today we’re making even more of those available. Notably, automated coin selection (in addition to our current coin control), RBF (along with the possibility to “cancel” an unconfirmed transaction) and deposit address verification on your signing device.
We’ve also grown our community by quite a margin. Liana was very well received since day one, but we now have people actually recommending it in local communities, at meetups, etc.. In addition many individuals have been contributing code, thoughts and time to grow our open source project. @jp1ac4 started making his first small contributions back in April. Quickly, we started contracting him to tackle a couple issues. Since November he’s now joined us full time. Another remarkable contribution, albeit less visible than pull requests, is @pythcoiner’s relentless testing (and breaking) of the software. He’s now on par with our own Kevin for being the largest Liana bug hunter!
Alright. Enough with the self-congratulations. What’s in this release?
Automated coin selection and Replace By Fee
We released Liana with mandatory coin control. It appeared, and still appears, to me to be the right tradeoff. Edouard and i had only so much time, i didn’t want to reinvent the wheel and (incorrectly) re-implement BnB for the nth time while BDK would soon have it, and in any ways Liana was (and in some aspects still is) targeting power users. The user needs to be aware of its coins anyways, so manual coin control was not unreasonable to impose temporarily.
One issue was how it’s a requirement for a reasonable RBF UX. Therefore @jp1ac4 started to undertake integrating Evan Lin and Lloyd Fournier’s coin selection implementation for BDK into our wallet in view of leveraging it to implement fee bumping and unconfirmed transaction cancelling. Both features are now available in Liana. From the list of transactions (not the list of payments), a “bump fee” button is displayed on unconfirmed transactions, letting you set the new feerate. Another “cancel” button will create a conflicting transaction sending the coins back to your wallet. Of course, the cancel is best effort: the original transaction might still end up getting mined. As usual, don’t trust unconfirmed transactions. Cancel or otherwise!
Big shootout to Lloyd and Evan for working closely with us on the coin selection library, and making it available as a crate independent from BDK with no dependency for us to use it.
Deposit address verification
Liana supports the Specter, Ledger Nano S, Ledger Nano S plus, Ledger Nano X and Bitbox02 hardware signing device. (Coldcard coming soon.) For those of them which support the software wallet requesting it to display an address (for user visual confirmation), we now support address verification from the “receive” screen. For those which don’t have this feature through the USB interface, the derivation index is displayed on the verification modal for the user to be able to display it on the signing device using its own controls.
What’s next? What to expect for 2024?
Taproot. Bitcoin Core version 26.0 was recently released with support for Miniscript inside Tapscript. Finally letting Liana users take advantage of Taproot privacy and efficiency features will be our focus for the next release.
Coldcard. We’ve been working on integrating Coldcard for version 4 of Liana. We held it off at the last minute since some tweaks were necessary on their side (their implementation of Miniscript does not use the Wallet Policy standard, so there were some incompatibilities with Liana). Thanks to @scgbckbone’s reactivity to our request and Edouard’s customary good work we’ll ship Coldcard support in the next release.
Business. Building a cool wallet is fun and all but we also need to make our company be profitable for this to last. Fortunately, that’s not incompatible. We’ve been cooking a bunch of paying services around Liana for the past months. I’m excited for our new offerings coming up in 2024.