Original release notes
Firmware digest (deterministic build): 6273dc08ca7c805fa70ac8feeb98c62f7b6fcb337fb1cd8412f24f0d6dda51f7
Stay Frosty.
Note: If you previously installed from an earlier direct-APK release, you'll unfortunately need to uninstall the app before installing this APK. Once reinstalled, you'll need to visit a threshold number of devices and Restore wallet before you can initiate signing sessions. Android refuses to install over the existing app because v0.3.0 ships with a fresh release signing key as part of an overhauled release-signing pipeline.
Note: the original mac Frostsnap-v0.3.0.dmg bundled the wrong firmware. It's been fixed. Check Settings->About and it should show: 6273dc08ca7c805fa70ac8feeb98c62f7b6fcb337fb1cd8412f24f0d6dda51f7. The version will show: v0.3.0-2-gc0e0ae31-modified because there was a small fix for macs that came in after the release was cut.
Highl ights
- On-device backup check: a short multiple-choice quiz on the device tests that you've written down the backup correctly. (#453, #460)
- Verify Address dialog: redesigned with a blurred tap-to-reveal address and caution guidance - clearer best practices for receive-address verification. (#442)
- Receive-address detail on incoming transactions: see which address each payment landed on, with its derivation index. (#470)
- Backup reminders surface when they matter: removed the auto-popup after wallet creation; reminder dialog appears when tapping Receive on a wallet with incomplete backups, and the "unfinished backups" banner turns red once funds land. (#468)
- Fixed: balance stuck at 0 after delete-and-restore until the app was fully restarted. Likely also the cause of several intermittent UI-staleness reports. (#481)
What's Changed
New features
- feat: Delete device from access structure by @LLFourn in https://github.com/frostsnap/frostsnap/pull/430
- Check Backup workflow on device by @LLFourn in https://github.com/frostsnap/frostsnap/pull/453
- [app,coord,comms] Add backup check workflow by @LLFourn in https://github.com/frostsnap/frostsnap/pull/460
- Verify address dialog improvements by @aphanley in https://github.com/frostsnap/frostsnap/pull/442
- [app] Show receive address and share index in tx details by @aphanley in https://github.com/frostsnap/frostsnap/pull/470
- [app] Backup Reminder UX by @aphanley in https://github.com/frostsnap/frostsnap/pull/468
- [app] Put m-of-n inside security check by @LLFourn in https://github.com/frostsnap/frostsnap/pull/422
- Add threshold selector widget for wallet creation by @aphanley in https://github.com/frostsnap/frostsnap/pull/446
- [coordinator] implement happy eyeballs for electrum by @LLFourn in https://github.com/frostsnap/frostsnap/pull/426
- [app] Show device ID in advanced settings for fresh/empty devices by @aphanley in https://github.com/frostsnap/frostsnap/pull/437
Reliability fixes
- [app] Evict cached wallet streams on delete by @LLFourn in https://github.com/frostsnap/frostsnap/pull/481
- [coord] Stop panics from keygen canceling by @LLFourn in https://github.com/frostsnap/frostsnap/pull/472
- [just] Fix erase-device by writing 0xFF instead of using flash stub by @LLFourn in https://github.com/frostsnap/frostsnap/pull/478
- [app] Prompt for screen lock instead of crashing when Android Keystore is unbound by @LLFourn in https://github.com/frostsnap/frostsnap/pull/477
- [device] Raise magic-bytes timeout threshold to absorb coord poll lag by @LLFourn in https://github.com/frostsnap/frostsnap/pull/479
- [device] increment magic bytes timeout counter by @LLFourn in https://github.com/frostsnap/frostsnap/pull/461
- Fix backup banner showing for wallets that never had a backup run by @LLFourn in https://github.com/frostsnap/frostsnap/pull/443
- Retry desktop serial port after permission failure by @nickfarrow in https://github.com/frostsnap/frostsnap/pull/451
- [app,coord] Persist device name at keygen/restoration commit boundary by @LLFourn in https://github.com/frostsnap/frostsnap/pull/482
- Minor pre-release UI fixes by @LLFourn in https://github.com/frostsnap/frostsnap/pull/483
App UI polish
- [app] In-place copy feedback instead of bottom snackbars by @LLFourn in https://github.com/frostsnap/frostsnap/pull/471
- Add animated progress circle for nonce replenishment by @aphanley in https://github.com/frostsnap/frostsnap/pull/447
- [app] Unify prepare-devices and name-devices steps by @LLFourn in https://github.com/frostsnap/frostsnap/pull/465
- Make "Add another key" the primary action during restoration by @aphanley in https://github.com/frostsnap/frostsnap/pull/445
- [app] Don't edit settings in a bottom sheet by @LLFourn in https://github.com/frostsnap/frostsnap/pull/425
- Improve app copy and UX based on user testing by @aphanley in https://github.com/frostsnap/frostsnap/pull/449
- Improve wallet creation UX copy based on user testing by @aphanley in https://github.com/frostsnap/frostsnap/pull/448
- [app] Hide threshold slider notches by @aphanley in https://github.com/frostsnap/frostsnap/pull/473
Device / firmware UI
- [widget] Widget improvements by @aphanley in https://github.com/frostsnap/frostsnap/pull/431
- Recovery keyboard fixed edition by @LLFourn in https://github.com/frostsnap/frostsnap/pull/434
- [device] Change backlight from 30% to 100% by @aphanley in https://github.com/frostsnap/frostsnap/pull/436
- [widget] Improve logging widget by @LLFourn in https://github.com/frostsnap/frostsnap/pull/408
Security & factory
- Reproducible bootloader, factory refactoring, and genuine check by @LLFourn in https://github.com/frostsnap/frostsnap/pull/452
Protocol / wire format
- [core] Accept multiple coordinator keys in keygen wire format by @LLFourn in https://github.com/frostsnap/frostsnap/pull/464
- [core] Drop redundant access_structure_ref from restoration messages by @LLFourn in https://github.com/frostsnap/frostsnap/pull/474
Internal
- Update for chilldkg API changes from secp256kfun security review by @LLFourn in https://github.com/frostsnap/frostsnap/pull/475
- [coord] Use bdk's list_ordered_canonical_txs by @LLFourn in https://github.com/frostsnap/frostsnap/pull/467
- [app] Refactor FullscreenActionDialogController around a monotonic device set by @LLFourn in https://github.com/frostsnap/frostsnap/pull/462
- Add stack_check tool and CI check by @LLFourn in https://github.com/frostsnap/frostsnap/pull/455
- fix clippy warnings across workspace by @LLFourn in https://github.com/frostsnap/frostsnap/pull/463
- Fix macOS Flutter build with Flutter 3.41 by @LLFourn in https://github.com/frostsnap/frostsnap/pull/454
- Fix camera.rs warnings on macOS by @LLFourn in https://github.com/frostsnap/frostsnap/pull/456
- Dependency cleanup and security fixes by @LLFourn in https://github.com/frostsnap/frostsnap/pull/441
- Fix just run with app flavours by @nickfarrow in https://github.com/frostsnap/frostsnap/pull/429
Full Changelog: https://github.com/frostsnap/frostsnap/compare/v0.2.0...v0.3.0

