Skip to content

Android v2.0.0

Compare
Choose a tag to compare
@dpad85 dpad85 released this 16 Aug 14:55
· 267 commits to master since this release
9b0de94

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:

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