Skip to content

1.3.0-beta

Pre-release
Pre-release

Choose a tag to compare

@Jacksper13 Jacksper13 released this 08 Jul 17:04
24784c8
image

WHAT'S CHANGED

KeyOS 1.3.0 is a major update headlined by the ability to import external bitcoin seeds and nostr keys into the Vault, BIP85 password generation, mass-importing 2FA codes from Google Authenticator, and the new Universal QR Scanner. We've also delivered meaningful performance gains across the file browser, keyboard, and Bitcoin price graph, and completed a wide-ranging hardening pass driven by a comprehensive third-party security audit covering the kernel, cryptography, USB, NFC, Quantum Link, and PSBT handling. On top of all that, we've squashed a large number of bugs across the wallet, onboarding, lock screen, and connectivity experiences.

For more details on each of the changes, keep reading below!

NEW FEATURES

  • You can now import external bitcoin seeds and nostr keys into the Vault app! Head to the Vault app, tap "Import Item", and select what you want to bring in

  • Mass-import 2FA codes from Google Authenticator into the 2FA app in a single operation (big thank you to https://github.com/immz4 for the contribution!)

  • Generate BIP85 passwords in the Vault — Passport Prime can now generate passwords derived from your master key following the BIP85 standard, and advanced users can manually adjust the derived index and password length

  • Introducing the Universal QR Scanner — tap the scanner icon on the bottom-right corner of the launcher and scan any QR code, and KeyOS will automatically route it to the right app

  • Upgraded the underlying QR scanner library — it's now significantly more powerful and can read inverse-colored QR codes along with other exotic variants

  • You can now scrub the Bitcoin price graph in the launcher with your finger to view older prices

IMPROVEMENTS

  • Hardened KeyOS all around, including kernel and nameserver memory-message validations, runtime manifest parsing, framebuffer size validation, USB host descriptor handling, NFC/NDEF read paths, the platform callback registry, and additional safety fixes throughout the file system

  • Strengthened wallet and transaction security by validating PSBT inputs against attacker-supplied funding data, surfacing duplicate equal-amount outputs in the recipient summary, requiring authenticity and replay protection on RemoteUpdate payloads, and preventing hot wallet key material from being persisted or logged in plaintext

  • Hardened Quantum Link against message replay, including sealed messages after cache expiry and pairing requests

  • Strengthened cryptography with hardware-accelerated AES-GCM, fixed counter-material reuse during partial-block streaming, and prevented encrypted eMMC from proceeding with all-zero keys

  • Hardened the challenge-response flow to reject unsealed, erased, or wiped device secrets, and stopped logging sensitive Bluetooth challenge secrets during provisioning

  • Tightened permissions around sensitive system access, restricting who can read global logs and last-panic reports and who can set the global system time

  • The Sign Message and Connect actions have been swapped for a more intuitive flow

  • Passport Prime now exchanges the Device Name with Envoy during pairing so both sides show the correct name (requires Envoy 2.3.0)

  • Your device's timezone now syncs automatically when pairing with Envoy

  • All bitcoin wallet status now syncs to Envoy when re-pairing your device

  • When manually disconnecting in Passport Prime, it now sends a disconnect message to Envoy when in range, ending a session for a cleaner unpair flow (requires Envoy 2.3.0)

  • You can now import a multisig configuration using the crypto-output UR type for broader compatibility with Sparrow Wallet

  • Settings now clearly tells you when your firmware is already up to date every time you check

  • Checking for a new firmware version and creating a backup now time out gracefully instead of hanging

  • The Settings update flow now requires sufficient battery level so updates can't fail due to low battery

  • If you get stuck any time during onboarding, you can now restart the initial setup flow by tapping the home button

  • The file browser is now significantly faster when opening directories with many files

  • Improved keyboard responsiveness by only redrawing the regions that change

  • Optimized the Bitcoin price graph for smoother rendering

  • Refined touch handling across the device, expanding touch targets on small or slow-to-tap controls and ignoring small drags so taps register more reliably on back buttons, the control center, file selectors, and script type pickers

  • The Airlock is now read-only on every disconnect by default for added safety

  • Auto-shutdown now defaults to twice your configured lock time

  • The file browser now remembers when you dismiss a quick-tip popup and won't show it again

  • Added a warning before archiving a Bitcoin account

  • Settings backups are now uniquely renamed each time they're created

  • Single-sig account colors are now derived from the account index, mirroring Passport Core and Envoy

  • The way to format a damaged Airlock changed to a more intuitive one and can now be done directly from the Files app

  • Added a "Please connect drive" screen for when no external drive is present

  • The bootloader can now boot firmware images larger than 32MB

  • The QR Scanner now supports single-part URs

  • Added a guided error flow for QR scanning during onboarding to guide you when a scan doesn't go as expected

  • Added a warning when creating a backup fails

  • Relicensed the API crates and their dependencies under MIT OR Apache-2.0 for broader compatibility with the Rust ecosystem

  • Each backup shard is now stored with a unique identifier, making them easier to tell apart

  • KeyOS now maintains a larger battery reserve so critical operations like graceful shutdowns can complete safely when the battery runs low

  • The lock screen now features a refreshed time design

  • The Done button in the keyboard now adapts its label to the current screen for clearer context

  • Writing a long passphrase or account name now keeps the end within focus, and text can be scrolled left and right

BUG FIXES

  • Fixed several validation gaps where the device could accept seeds or indices outside expected ranges, including 18-word seeds at QR import and generated indices outside the BIP32 hardened range

  • Fixed U2F security key bugs that prevented some keys from working and that skipped validation of the application parameter on the sign branch, resolving issues with services like Google

  • Fixed a bug where launching an app could override the lock screen

  • Fixed a bug where setting password mode on the lock screen was broken

  • Fixed a crash where the device could panic after being erased

  • Fixed an unexpected shutdown bug

  • Fixed a crash where the GUI server could fail when too many layers were present

  • Fixed a Prime crash caused by an async-watch bug

  • Fixed several onboarding issues, including a crash to launcher after setting up a backup, popups appearing behind the keyboard, overly tight warning modals, and incorrect warning icon colors, among many others.

  • Fixed a bug where importing a multisig configuration from BlueWallet would fail

  • Fixed a bug where the Save then Sign flow would block non-zero account indices

  • Fixed several wallet amount display inconsistencies, including missing trailing zeroes on fees

  • Fixed a bug where adding a Slack 2FA QR code reported the secret as invalid

  • Fixed a bug where long 2FA labels could overlap text

  • Fixed a bug where closing the QR scanner didn't clear the UR progress bar

  • Fixed a bug where the wrong QR scanner could fire if opened too early

  • Fixed a bug where the Airlock would still appear plugged in after being unplugged

  • Fixed an OOM issue that could appear when tapping Explore addresses on the verify camera

  • Fixed a bug where an iPhone or laptop could fail to recognize Prime over USB after rebooting, and could even be charged by Prime

  • Fixed some missing touch events in the bootloader

  • Fixed a visual bug where the Disconnect Passport icon was missing

  • Fixed a bug where saving a backup would not show the available files

  • Fixed a bug that prevented buttons from being disabled in the launcher while an app was launching

  • Fixed the Bitcoin launcher tile label

  • Fixed a bug where tapping outside an edit box would not unfocus it in the Vault app

  • Fixed a visual bug where the Bitcoin graph lost its stripes

  • Fixed a visual bug where the file browser search icon rendered at the wrong size

  • Fixed a bug where NFC registration on iOS did not vibrate

  • Fixed a 25-second delay on macOS when switching from Read & Write to Read in airlock

  • Fixed a bug where the disconnect timer was not reset on a new connection

  • Fixed a bug where the device name substring incorrectly read "Prime" when displaying the bluetooth device on the phone

  • Updated the file picker and Airlock imagery, including a dedicated image when a drive is plugged in, and made it clearer that items can't be moved to the Airlock while the device is plugged in

  • Refined link colors and touch areas across the interface

  • The onboarding static QR now includes the Prime device name (requires Envoy 2.3.0 to fully take advantage of it)

  • Fixed a bug where the file browser's filtered count included hidden files

  • Fixed a visual bug where the passphrase box wasn't clipped by its corner radius while changing state

  • Fixed a visual bug where disabled buttons used the wrong colors

  • Fixed a bug where searching in the time zone picker was broken

  • Fixed a bug with address verification

  • Fixed a bug where the Show Fiat Value toggle was not respected (requires Envoy 2.3.0)

  • Fixed a link in the 2FA app README that pointed to a private Figma document

  • Fixed a minor visual glitch where if a backup was created less than a minute ago, a tilde made it look like the text said "-1" minutes ago

HOW TO UPDATE

To update the firmware on your Passport Prime, head to Settings > Updates. If an update is available, tap 'Update with Envoy'. Passport Prime will use its secure QuantumLink connection with Envoy to automatically download, verify, and install the update.

Learn more here.