edouardparis a5391d9d5a
Merge #1658: feat: Add coin control to Recovery panel
c7bbbd854ccfb8f2dccb6e7f63b6f4c982cd76c1 feat: enable coin control for recovery spends (Michael Mallan)
c2f964d5b365501ec5a608a8f8333ffeb1edc2b7 fix: load tip height directly rather than from cache (Michael Mallan)
0d9cf43bf9c623221be6ed9882ec7df6e710566d fix: avoid overflow when checking for previous step (Michael Mallan)
83c90b085a8fc3c6f738678a01b63f2811a33600 refactor: get first timelock from descriptor (Michael Mallan)
0514f743daae738c05bb124ce55f0ae01193df01 refactor: add function to filter coins for selection (Michael Mallan)
934d0c76f486016bdd2a7098d14694b9ba470442 fix: grey out next button in case of error (Michael Mallan)
71541c69bae7f8f33659337ad66e7ca161cbcef4 feat: support outpoints recovery parameter (Michael Mallan)

Pull request description:

  This implements #1641.

  The recovery process is treated as a regular spend, with an initial step for selecting the recovery path.

  Further refactoring to `DefineSpend` could be applied in a follow-up to clearly distinguish between the three kinds of spends now handled:
  1) regular primary path spend to external recipient(s)
  2) self-send (using primary path)
  3) recovery spend

ACKs for top commit:
  edouardparis:
    ACK c7bbbd854ccfb8f2dccb6e7f63b6f4c982cd76c1

Tree-SHA512: 2a949bed0e1d1eedc5179544597b36ff124badc31264672765ea77a8a3cd1257334190739ece5da25422d5a9009e6cf58f9f70ae1f0ebe4903aa455342142870
2025-04-23 13:49:35 +02:00
2025-03-21 16:12:32 +01:00
2025-04-08 15:34:08 +01:00
2025-01-27 14:36:29 +00:00
2025-03-21 16:12:32 +01:00
2025-02-03 09:27:32 +00:00
2025-04-01 09:08:51 +02:00
2025-02-03 15:47:38 +01:00
2025-04-01 11:00:30 +02:00
2024-01-04 14:32:57 +01:00
2022-11-17 17:10:22 +01:00
2024-11-15 13:47:06 +01:00
2024-12-17 10:52:03 +01:00

Liana

The missing safety net for your bitcoins.

About

Liana is a simple Bitcoin wallet. Like other Bitcoin wallets you have one key which can spend the funds in the wallet immediately. Unlike other wallets, Liana lets you in addition specify one key which can only spend the coins after the wallet has been inactive for some time.

We refer to these as the primary spending path (always accessible) and the recovery path (only available after some time of inactivity). You may have more than one key in either the primary or the recovery path (multisig). You may have more than one recovery path.

Here is an example of a Liana wallet configuration:

  • Owner's key (can always spend)
  • Any 2 keys from the owner's spouse and two kids (after 1 year)
  • A third party, in case all else failed (after 1 year and 3 months)

The lockup period is enforced onchain by the Bitcoin network. This is achieved by leveraging timelock capabilities of Bitcoin smart contracts (Script).

Liana can be used for trustless inheritance, loss protection or safer backups. Visit our website for more information.

Usage

Liana is available on Windows, Mac and Linux. To install and start using it see doc/USAGE.md. A more accessible version of Liana is also available as a web application here.

If you just want to quickly try out Liana on Bitcoin Signet, see doc/TRY.md.

Hacking on Liana

Liana is an open source project. It is hosted at Github. Contributions are very welcome. See here for guidelines. Most regular contributors hang out on our Discord. Join us there if you have any question about contributing.

Liana is separated in two main components: the daemon and the Graphical User Interface.

Liana daemon

The daemon contains the core logic of the wallet. It is both a library (a Rust crate) that exposes a command interface and a standalone UNIX daemon that exposes a JSONRPC API through a Unix Domain Socket.

The code for the daemon can be found in the liana folder.

Liana GUI

The GUI contains both an installer that guides a user through setting up a Liana wallet, as well as a graphical interface to the daemon using the iced library.

The code for the GUI can be found in the liana-gui folder.

Security

See SECURITY.md for details about reporting a security vulnerability or any bug that could potentially impact the security of users' funds.

License

Released under the BSD 3-Clause Licence. See the LICENCE file.

Description
A fork of https://github.com/wizardsardine/liana with removed loopback restrictions to allow connecting to a custom remote bitcoin core node
Readme
Languages
Rust 90.4%
Python 8.5%
Shell 0.5%
Scheme 0.3%
Nix 0.3%