This is a major release that reworks most of the application. An automated migration is available for existing users.
Migration
Due to the changes in the LN engine and the switch to splicing (see below), existing channels created with v1.x cannot be used by the new app. A migration process merges them together resulting in a single channel.
Users with existing wallets will remain on the legacy app, until their funds are migrated. This migration is triggered manually by the user from the legacy app.
⚠️ Important notes
- The migration process will only migrate channels that have at least 546 satoshi on the user's side. Channels with less than 546 sat cannot be migrated since their balance is below the Bitcoin dust limit, and funds are swiped by the miners. The app will display a warning when that's the case.
- Once the app has migrated, the legacy swap-in address must not be used ever again. Contact support if you accidentally send funds to the legacy swap-in address.
- The migration process may sometimes be disabled, usually when the mempool is congested. When that happens, the migration button is not available, and users can keep using the legacy app.
Main changes
Switch the LN engine from eclair
to lightning-kmp
Both eclair and lightning-kmp are implementations of a Lightning node and are developed by us (ACINQ). However eclair is written in scala, targets server use-cases (relaying payments) and only runs on Android. Lightning-kmp is written in kotlin multiplatform, targets mobile platforms, and can run on iOS and Android.
Phoenix Android used to be powered by eclair, and Phoenix iOS by lightning-kmp. With this new versions, both Android/iOS use lightning-kmp.
Support for splicing and dual-funding
Splicing allows altering channels by adding or removing funds. Instead of managing multiple channels, the app only has one single channel, which will then be modified depending on usage. This brings significant improvements:
- on-chain swaps (swap-in or swap-out) are now trustless.
- the static 1% fee for incoming payments that need new channels has been removed. Instead users pay the mining fee for the splicing operation.
- that fee cannot exceed the maximum fee set by the user (in settings > channels management). Default maximum is 5000 sat.
- a notification is displayed when an incoming payment is rejected because of the fee.
- the fee for outgoing Lightning payments is now static (0.4 %) and is displayed before sending the payment.
- unconfirmed on-chain transactions can be accelerated.
See #356 and https://acinq.co/blog/phoenix-splicing-update for more information, especially the fee comparison.
Improved fiat currencies support
The Android app is now able to convert prices to 150+ currencies, including free market rates (like for the Argentine Peso). Exchange rates should also be more accurate.
Export payments history
Successful payments can now be exported to a CSV file.
Compatibility with iOS
The iOS and Android apps are not compatible yet, since the iOS app does not support splicing yet. Using the same seed on both iOS and Android Phoenix apps will lead to issues.
All changes
android-legacy-v1.4.27...android-v2.0.0
Verifying signatures
You will need gpg
and our release signing key 7A73FE77DE2C4027. Note that you can get it:
- from our website: https://acinq.co/pgp/drouinf.asc
- from github user @sstone, a committer on eclair: https://api.github.com/users/sstone/gpg_keys
To import our signing key:
$ gpg --import drouinf.asc
To verify the release file checksums and signatures:
$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
$ sha256sum -c SHA256SUMS.stripped