diff --git a/CHANGELOG.md b/CHANGELOG.md index 06dedb350d..3749b9cd30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.5.0] - 2026-09-10 + +### Added +- Added receiver-specific Paykit contact support for Bitkit wallet and server integrations. #1066 +- Bitkit now creates, names, backs up, and manages separate watch-only Bitcoin accounts and securely delivers signed setup claims to Paykit servers. #1084 +- Incoming Paykit payment requests can now be reviewed and approved through the existing payment flow. #1098 +- Developers running their own build can now open supported screens directly with `bitkit://screen/...` links while dev mode is enabled. #1119 +- Passphrase-protected (hidden) Trezor wallets can now be paired from the connect flow, each appearing as its own watch-only balance with its own label, activity and removal, and asking for its passphrase again when a transfer needs signing. #1142 +- Incoming Paykit payment requests now stay discoverable until handled, and users can send new private requests to connected contacts from the invoice flow. #1172 +- The name you give a hardware wallet is now included in your backup and comes back when you pair the device again, and removing a hardware wallet asks first whether to keep its name and tags in your backup. #1173 +- Payments made from incoming private payment requests now send a payment proof back to the requester. #1178 +- Bitkit can now review, manage, and pay recurring payment requests from Paykit contacts, with on-chain fees shown before confirming the first payment and unresolved payments protected from accidental retries. #1186 +- Added on-chain send support for paired Trezor wallets, including transaction approval on the device. #1187 +- Added a Trezor Receive tab with fast watch-only addresses and on-device verification. #1189 + +### Changed +- Added support for tags and transaction details to hardware wallet activity. #1044 +- Updated Pubky profiles, contacts, and Paykit settings to match the latest designs and simplified contact payments. #1097 +- Send now keeps the funding-source button, fee label, and swipe-to-confirm track stable while switching sources, continuing from amount, or refreshing fees. #1195 + +### Fixed +- Receive requests now refresh reliably after a payment is completed. #1086 +- The Show Details button on the Receive screen is now available while the Lightning node is still starting up, so you can view and copy your on-chain address right away. #1090 +- Savings transfers to spending now use a faster on-chain fee rate, reserve mining fees when sizing max transfers, and only drain the wallet when leftover change would be dust or a retry can still fully fund the order. #1091 +- Fixed profile deletion being blocked when private Paykit contact cleanup could not complete. #1108 +- Activity timestamps now follow the device's 12/24-hour time setting instead of always using a 12-hour clock. #1111 +- App Status and Backup timestamps now follow the device language instead of always using the US date format. #1124 +- Fixed Paykit Server authorization to require both public and private payment capabilities. #1131 +- Restored the transfer label on hardware wallet transactions after removing and re-adding a device. #1133 +- Improved Lightning send failure recovery with clearer messages and a retry action that refreshes payment routing. #1140 +- Fixed delayed private payment requests after adding a Paykit contact or returning to the app. #1141 +- Tags you add to hardware wallet activity are now included in your backup, and older backups are upgraded automatically the first time you restore them. #1163 +- Error toasts are now visible on top of modal bottom sheets, including the hardware transfer passphrase sheet. #1165 +- The maximum Savings to Spending transfer amount now always leaves room for its own service fee, so transferring your full balance no longer fails with an insufficient funds error. #1179 +- The advanced transfer screen now offers a maximum receiving capacity your balance can actually pay for, instead of one that fails later on the confirmation screen. #1180 +- Hardware-wallet payments now send payment proofs for incoming Paykit requests. #1199 +- Receiving over Lightning now correctly falls back to Savings or additional liquidity setup when the requested amount exceeds available inbound capacity. #1222 +- The app no longer aborts when stopping the Lightning node, and 32-bit devices can open the wallet again. #1223 +- A hardware wallet payment whose broadcast fails no longer leaves the send screen and sheet stuck, and Bitkit now says the payment could not be confirmed instead of reporting a generic connection problem. #1230 +- LSP orders now include a wallet-owned address for on-chain refunds. #1235 + +### Security +- QuickPay stays PIN-free under a configurable daily spend limit; once that limit is reached, payments open Confirm instead. #1159 +- Connecting a custom Electrum server no longer crashes Bitkit if the server sends an oversized response. #1198 +- Added app-scoped Pubky authorization and secure sign-out, and fixed missing payment requests in history. #1200 + ## [2.4.1] - 2026-08-21 ### Changed @@ -167,7 +213,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - About screen (content merged into Support) #857 - Standalone General, Security, and Advanced settings screens (merged into tabs) #857 -[Unreleased]: https://github.com/synonymdev/bitkit-android/compare/v2.4.1...HEAD +[Unreleased]: https://github.com/synonymdev/bitkit-android/compare/v2.5.0...HEAD +[2.5.0]: https://github.com/synonymdev/bitkit-android/compare/v2.4.1...v2.5.0 [2.4.1]: https://github.com/synonymdev/bitkit-android/compare/v2.4.0...v2.4.1 [2.4.0]: https://github.com/synonymdev/bitkit-android/compare/v2.3.2...v2.4.0 [2.3.2]: https://github.com/synonymdev/bitkit-android/compare/v2.3.1...v2.3.2 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 275472ebdd..ff02d8bc24 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -186,8 +186,8 @@ android { applicationId = "to.bitkit" minSdk = 28 targetSdk = 36 - versionCode = 188 - versionName = "2.4.1" + versionCode = 189 + versionName = "2.5.0" testInstrumentationRunner = "to.bitkit.test.HiltTestRunner" bitkitAndroidTestAnnotation?.let { testInstrumentationRunnerArguments["annotation"] = it diff --git a/changelog.d/next/1044.changed.md b/changelog.d/next/1044.changed.md deleted file mode 100644 index 7c42c552ac..0000000000 --- a/changelog.d/next/1044.changed.md +++ /dev/null @@ -1 +0,0 @@ -Added support for tags and transaction details to hardware wallet activity. diff --git a/changelog.d/next/1066.added.md b/changelog.d/next/1066.added.md deleted file mode 100644 index ccbf4efab4..0000000000 --- a/changelog.d/next/1066.added.md +++ /dev/null @@ -1 +0,0 @@ -Added receiver-specific Paykit contact support for Bitkit wallet and server integrations. diff --git a/changelog.d/next/1084.added.md b/changelog.d/next/1084.added.md deleted file mode 100644 index 6f68318587..0000000000 --- a/changelog.d/next/1084.added.md +++ /dev/null @@ -1 +0,0 @@ -Bitkit now creates, names, backs up, and manages separate watch-only Bitcoin accounts and securely delivers signed setup claims to Paykit servers. diff --git a/changelog.d/next/1086.fixed.md b/changelog.d/next/1086.fixed.md deleted file mode 100644 index 972cc48b82..0000000000 --- a/changelog.d/next/1086.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Receive requests now refresh reliably after a payment is completed. diff --git a/changelog.d/next/1090.fixed.md b/changelog.d/next/1090.fixed.md deleted file mode 100644 index 37f2133c38..0000000000 --- a/changelog.d/next/1090.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The Show Details button on the Receive screen is now available while the Lightning node is still starting up, so you can view and copy your on-chain address right away. diff --git a/changelog.d/next/1091.fixed.md b/changelog.d/next/1091.fixed.md deleted file mode 100644 index cf3245d661..0000000000 --- a/changelog.d/next/1091.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Savings transfers to spending now use a faster on-chain fee rate, reserve mining fees when sizing max transfers, and only drain the wallet when leftover change would be dust or a retry can still fully fund the order. diff --git a/changelog.d/next/1097.changed.md b/changelog.d/next/1097.changed.md deleted file mode 100644 index 4b493b63a8..0000000000 --- a/changelog.d/next/1097.changed.md +++ /dev/null @@ -1 +0,0 @@ -Updated Pubky profiles, contacts, and Paykit settings to match the latest designs and simplified contact payments. diff --git a/changelog.d/next/1098.added.md b/changelog.d/next/1098.added.md deleted file mode 100644 index 94f414e756..0000000000 --- a/changelog.d/next/1098.added.md +++ /dev/null @@ -1 +0,0 @@ -Incoming Paykit payment requests can now be reviewed and approved through the existing payment flow. diff --git a/changelog.d/next/1108.fixed.md b/changelog.d/next/1108.fixed.md deleted file mode 100644 index 13b1beb5d6..0000000000 --- a/changelog.d/next/1108.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed profile deletion being blocked when private Paykit contact cleanup could not complete. diff --git a/changelog.d/next/1111.fixed.md b/changelog.d/next/1111.fixed.md deleted file mode 100644 index d9173d0e19..0000000000 --- a/changelog.d/next/1111.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Activity timestamps now follow the device's 12/24-hour time setting instead of always using a 12-hour clock. diff --git a/changelog.d/next/1119.added.md b/changelog.d/next/1119.added.md deleted file mode 100644 index e878a811e2..0000000000 --- a/changelog.d/next/1119.added.md +++ /dev/null @@ -1 +0,0 @@ -Developers running their own build can now open supported screens directly with `bitkit://screen/...` links while dev mode is enabled. diff --git a/changelog.d/next/1124.fixed.md b/changelog.d/next/1124.fixed.md deleted file mode 100644 index d5b925dd73..0000000000 --- a/changelog.d/next/1124.fixed.md +++ /dev/null @@ -1 +0,0 @@ -App Status and Backup timestamps now follow the device language instead of always using the US date format. diff --git a/changelog.d/next/1131.fixed.md b/changelog.d/next/1131.fixed.md deleted file mode 100644 index 5e47caa71c..0000000000 --- a/changelog.d/next/1131.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed Paykit Server authorization to require both public and private payment capabilities. diff --git a/changelog.d/next/1133.fixed.md b/changelog.d/next/1133.fixed.md deleted file mode 100644 index 127b84707b..0000000000 --- a/changelog.d/next/1133.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Restored the transfer label on hardware wallet transactions after removing and re-adding a device. diff --git a/changelog.d/next/1140.fixed.md b/changelog.d/next/1140.fixed.md deleted file mode 100644 index 08e36e9883..0000000000 --- a/changelog.d/next/1140.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Improved Lightning send failure recovery with clearer messages and a retry action that refreshes payment routing. diff --git a/changelog.d/next/1141.fixed.md b/changelog.d/next/1141.fixed.md deleted file mode 100644 index c76c161b9b..0000000000 --- a/changelog.d/next/1141.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed delayed private payment requests after adding a Paykit contact or returning to the app. diff --git a/changelog.d/next/1142.added.md b/changelog.d/next/1142.added.md deleted file mode 100644 index 54ed99bef6..0000000000 --- a/changelog.d/next/1142.added.md +++ /dev/null @@ -1 +0,0 @@ -Passphrase-protected (hidden) Trezor wallets can now be paired from the connect flow, each appearing as its own watch-only balance with its own label, activity and removal, and asking for its passphrase again when a transfer needs signing. diff --git a/changelog.d/next/1159.security.md b/changelog.d/next/1159.security.md deleted file mode 100644 index 3a5339f9fa..0000000000 --- a/changelog.d/next/1159.security.md +++ /dev/null @@ -1 +0,0 @@ -QuickPay stays PIN-free under a configurable daily spend limit; once that limit is reached, payments open Confirm instead. diff --git a/changelog.d/next/1163.fixed.md b/changelog.d/next/1163.fixed.md deleted file mode 100644 index 6af14dc8e2..0000000000 --- a/changelog.d/next/1163.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Tags you add to hardware wallet activity are now included in your backup, and older backups are upgraded automatically the first time you restore them. diff --git a/changelog.d/next/1165.fixed.md b/changelog.d/next/1165.fixed.md deleted file mode 100644 index d225d884d3..0000000000 --- a/changelog.d/next/1165.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Error toasts are now visible on top of modal bottom sheets, including the hardware transfer passphrase sheet. diff --git a/changelog.d/next/1172.added.md b/changelog.d/next/1172.added.md deleted file mode 100644 index bffb6f1b47..0000000000 --- a/changelog.d/next/1172.added.md +++ /dev/null @@ -1 +0,0 @@ -Incoming Paykit payment requests now stay discoverable until handled, and users can send new private requests to connected contacts from the invoice flow. diff --git a/changelog.d/next/1173.added.md b/changelog.d/next/1173.added.md deleted file mode 100644 index 451e942706..0000000000 --- a/changelog.d/next/1173.added.md +++ /dev/null @@ -1 +0,0 @@ -The name you give a hardware wallet is now included in your backup and comes back when you pair the device again, and removing a hardware wallet asks first whether to keep its name and tags in your backup. diff --git a/changelog.d/next/1178.added.md b/changelog.d/next/1178.added.md deleted file mode 100644 index 2a91491eea..0000000000 --- a/changelog.d/next/1178.added.md +++ /dev/null @@ -1 +0,0 @@ -Payments made from incoming private payment requests now send a payment proof back to the requester. diff --git a/changelog.d/next/1179.fixed.md b/changelog.d/next/1179.fixed.md deleted file mode 100644 index 06c14fef3d..0000000000 --- a/changelog.d/next/1179.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The maximum Savings to Spending transfer amount now always leaves room for its own service fee, so transferring your full balance no longer fails with an insufficient funds error. diff --git a/changelog.d/next/1180.fixed.md b/changelog.d/next/1180.fixed.md deleted file mode 100644 index 080d2dbced..0000000000 --- a/changelog.d/next/1180.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The advanced transfer screen now offers a maximum receiving capacity your balance can actually pay for, instead of one that fails later on the confirmation screen. diff --git a/changelog.d/next/1186.added.md b/changelog.d/next/1186.added.md deleted file mode 100644 index 92fef450fb..0000000000 --- a/changelog.d/next/1186.added.md +++ /dev/null @@ -1 +0,0 @@ -Bitkit can now review, manage, and pay recurring payment requests from Paykit contacts, with on-chain fees shown before confirming the first payment and unresolved payments protected from accidental retries. diff --git a/changelog.d/next/1187.added.md b/changelog.d/next/1187.added.md deleted file mode 100644 index 07e0e0dc6a..0000000000 --- a/changelog.d/next/1187.added.md +++ /dev/null @@ -1 +0,0 @@ -Added on-chain send support for paired Trezor wallets, including transaction approval on the device. diff --git a/changelog.d/next/1189.added.md b/changelog.d/next/1189.added.md deleted file mode 100644 index f242f0c0c9..0000000000 --- a/changelog.d/next/1189.added.md +++ /dev/null @@ -1 +0,0 @@ -Added a Trezor Receive tab with fast watch-only addresses and on-device verification. diff --git a/changelog.d/next/1195.changed.md b/changelog.d/next/1195.changed.md deleted file mode 100644 index 92a0a1cb60..0000000000 --- a/changelog.d/next/1195.changed.md +++ /dev/null @@ -1 +0,0 @@ -Send now keeps the funding-source button, fee label, and swipe-to-confirm track stable while switching sources, continuing from amount, or refreshing fees. diff --git a/changelog.d/next/1198.security.md b/changelog.d/next/1198.security.md deleted file mode 100644 index 89ada688a6..0000000000 --- a/changelog.d/next/1198.security.md +++ /dev/null @@ -1 +0,0 @@ -Connecting a custom Electrum server no longer crashes Bitkit if the server sends an oversized response. diff --git a/changelog.d/next/1199.fixed.md b/changelog.d/next/1199.fixed.md deleted file mode 100644 index 185d90931e..0000000000 --- a/changelog.d/next/1199.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Hardware-wallet payments now send payment proofs for incoming Paykit requests. diff --git a/changelog.d/next/1200.security.md b/changelog.d/next/1200.security.md deleted file mode 100644 index 1088411f6d..0000000000 --- a/changelog.d/next/1200.security.md +++ /dev/null @@ -1 +0,0 @@ -Added app-scoped Pubky authorization and secure sign-out, and fixed missing payment requests in history. diff --git a/changelog.d/next/1222.fixed.md b/changelog.d/next/1222.fixed.md deleted file mode 100644 index d4bdaa40b6..0000000000 --- a/changelog.d/next/1222.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Receiving over Lightning now correctly falls back to Savings or additional liquidity setup when the requested amount exceeds available inbound capacity. diff --git a/changelog.d/next/1223.fixed.md b/changelog.d/next/1223.fixed.md deleted file mode 100644 index 4833ea3b32..0000000000 --- a/changelog.d/next/1223.fixed.md +++ /dev/null @@ -1 +0,0 @@ -The app no longer aborts when stopping the Lightning node, and 32-bit devices can open the wallet again. diff --git a/changelog.d/next/1230.fixed.md b/changelog.d/next/1230.fixed.md deleted file mode 100644 index 3c01738f62..0000000000 --- a/changelog.d/next/1230.fixed.md +++ /dev/null @@ -1 +0,0 @@ -A hardware wallet payment whose broadcast fails no longer leaves the send screen and sheet stuck, and Bitkit now says the payment could not be confirmed instead of reporting a generic connection problem. diff --git a/changelog.d/next/1235.fixed.md b/changelog.d/next/1235.fixed.md deleted file mode 100644 index 3684d6e4a2..0000000000 --- a/changelog.d/next/1235.fixed.md +++ /dev/null @@ -1 +0,0 @@ -LSP orders now include a wallet-owned address for on-chain refunds.