Liana v4.0: Automated Coin Selection, RBF, Cancel & Deposit Address Verification

Liana is a Bitcoin wallet that uses miniscript output descriptors, with extensive use of relative timelocks (OP_CSV). It features a timelocked recovery path for all your coins and can be used for inheritance, decaying multisigs or safer backups.

Liana v4.0: Automated Coin Selection, RBF, Cancel & Deposit Address Verification
  • "This release introduces support for bumping the fees of a transaction, verifying a deposit address on your signing device, and more."
  • If you just want to quickly try Liana on Bitcoin Signet, check out this guide.

What's new

  • Automated coin selection and Replace By Fee. "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."
  • 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."

What's next

  • "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."
  • "ColdcardWe’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)."
  • "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."

Release notes

Features

  • The outpoints parameter of the createspend command is now optional. If not provided, we'll
    select coins automatically.

GUI-specific

  • When creating a Spend transaction, coins to be spent are now pre-selected. The selection is
    updated as you update the recipients and/or the feerate. The selection will stop being modified if
    you change it manually.
  • It is now possible to verify deposit addresses on your signing device.
  • You can now bump the fees of an unconfirmed transaction. A "bump fee" button was introduced in the
    transaction details (available from the list of transactions).
  • You can now "cancel" an unconfirmed transaction. A "cancel" button was introduced in the
    transaction details (available from the list of transactions). NOTE: the cancel feature is not
    guaranteed to work. It's simply leveraging RBF to double spend the outgoing transaction with a
    transaction paying back to ourselves.
  • You can now delete a wallet for a specific network from the launcher.
  • When selecting a signing device, those which are not related to the wallet or which don't support
    a specific method (such as displaying an address) are now greyed-out.
  • The managed Bitcoin Core version was bumped to 26.0.

Fixes

  • In case a transaction spending one of our coins was RBF'd, we could incorrectly assign an
    incorrect spending transaction to this coin.

GUI-specific

  • Setting a feerate larger than 2^64 when creating a Spend would previously crash the software.
  • When displaying a PSBT the software could crash if some of the inputs of the transaction
    disappeared (were double-spent).
  • A new listaddresses command was introduced.
  • A new rbfpsbt command was introduced.
  • The createspend command has a new, optional, change_address parameter. This makes it possible
    to create a transaction which sweeps all funds from the wallet.

Full Blog Post / Archive
GitHub Repo