Releases: PirateNetwork/Pirate-Unified-Light-Wallet
Releases · PirateNetwork/Pirate-Unified-Light-Wallet
Release list
Stashi Wallet v1.2.0
v1.2.0 introduces Stashi Wallet, the new public identity for Pirate Unified Wallet. Existing wallet data, recovery phrases, addresses, application identifiers, and storage locations remain compatible. This release also improves transaction recovery, endpoint failover, Android signing, build verification, accessibility, and SDK security. - Renamed the Flutter wallet to Stashi Wallet across Windows, macOS, Linux, and Android. - Added the new Stashi Wallet logo, application icons, executable titles, installer names, and runtime identity. - Renamed release archives, packages, checksums, signatures, metadata bundles, and SBOM files to use the Stashi Wallet name. - Preserved existing application identifiers and wallet data locations so upgrades continue to find installed wallets and local state. - Updated desktop installers and automatic update handling for the renamed executable. - Rebuilt platform icons with transparent backgrounds for clearer display at small sizes. - Strengthened Auto endpoint selection by requiring servers to provide a current compact-block cache and the exact compact block they advertise. - Empty, stale, malformed, or inconsistent compact-block responses are rejected before an endpoint can join the active pool. - Auto mode now rotates away from an endpoint that accepts connections but is not ready to serve usable blockchain data. - Unready endpoints remain available for future sessions instead of being permanently removed. - Added privacy-safe endpoint diagnostics covering the active server, blockchain height, response latency, and pool health. - Automatic sends now relay the same signed transaction through a healthy alternate endpoint after the primary response, improving propagation without creating a second transaction. - Added durable tracking for outgoing transaction expiry heights. - Expired outgoing transactions are now separated from pending transactions throughout the Home and Activity screens. - Funds reserved by an unconfirmed transaction are released after the locally scanned blockchain passes its expiry height. - Transaction details now show the expiry state and explain when the released funds can be used for a new payment. - Confirmed transactions remain protected from expiry reconciliation. - Existing pending records are migrated conservatively during upgrade. - Improved spendability reporting so witness repair remains visible while repair work is queued, active, or waiting for final anchor validation. - Added the complete spendability reason-code contract: `OK`, `ERR_SYNC_FINALIZING`, `ERR_WITNESS_REPAIR_QUEUED`, and `ERR_RESCAN_REQUIRED`. - Improved Android native initialization so foreground and background wallet operations use consistent writable application directories. - Sapling proving parameters are now loaded directly from embedded memory instead of being written to temporary files. - Removed temporary-file permission failures from the Android Sapling signing path. - Added a deterministic mobile debug log file that can be exported through the existing Share action. - Added CoinPaprika as a fallback ARRR price provider when CoinGecko is unavailable. - Retained CoinMarketCap as the final USD fallback. - Prevented duplicate simultaneous price requests. - Added bounded startup retries and immediate price refreshes when the application resumes, regains focus, or is restored. - Preserved the last valid fiat price during temporary provider or network outages. - Updated the outbound API disclosure to identify the available price providers. - Improved Verify Build so the installed desktop application is hashed before any GitHub request is made. - Added retries for temporary release-download failures. - Network or transport problems are now reported as an unavailable verification check instead of a failed or modified application. - Local artifact information remains visible when official verification files cannot be downloaded. - Added reliable version, Git commit, build date, Rust compiler, and target information across supported platforms. - Published the README, public key, checksum manifests, payload manifest, and signatures as individual release files in addition to the verification bundle. - Renamed the main Wallet destination to Wallets and updated the payment hub, navigation, translations, tests, and documentation. - Improved setup recovery so a temporary finalisation failure can be retried without creating duplicate wallet records. - Added editable wallet names during creation and recovery, with sequential suggested names. - Improved recovery phrase language selection and offline backup guidance. - Adjusted desktop layouts using both viewport width and height for better presentation on laptops and displays using fractional scaling. - Improved keyboard focus, screen-reader labels, editable-field labelling, checkbox visibility, and high-contrast presentation. - Improved rendering stability on Intel Macs by using the stable Flutter renderer. - Added optional wallet-scoped encryption for seed phrases and imported spending keys while keeping viewing data and compact-block caches available for synchronisation. - Added in-memory signing sessions that require wallet-scoped credentials before protected keys can be used. - Added explicit wallet locking that clears active signing credentials and related database state. - React Native registry secrets are now created and stored through Android Keystore or iOS Keychain instead of being exposed to JavaScript storage. - Added typed React Native interfaces for spendability status, endpoint diagnostics, signing sessions, and wallet locking. - Made transaction broadcasting explicitly wallet-scoped. - React Native integrations must now use `broadcastTransaction(walletId, signedTransaction)`. The former one-argument broadcast method has been removed. - Updated the shared Rust backend, CLI, native FFI, Qortal CLI, and Android SDK to version 0.3.3. - Updated the React Native wrapper and native companion packages to version 0.3.4. - Published the complete Stashi Wallet User Guide with installation, setup, recovery, migration, payments, wallet management, privacy, verification, and troubleshooting guidance. - Added paired Mobile and Desktop screenshots for workflows that differ by screen size. - Added an accessible tagged PDF with heading structure, image descriptions, bookmarks, clickable contents, tagged lists, and structured reading order. - Added automated GitHub Pages publication and pull-request validation for future guide updates. - Updated the guide to use British English and consistent user-facing terminology. - Updated the project to Flutter 3.47.2. - Updated documentation and React Native example dependencies to current security baselines. - Updated translations for the Stashi Wallet identity, transaction expiry, wallet navigation, verification, pricing, and security controls. [Read the v1.1.9 release notes](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/releases/tag/v1.1.9) [View the full changes since v1.1.9](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.9...v1.2.0)
Pirate Unified Wallet v1.1.9
v1.1.9 is the stable Pirate Unified Wallet release following v1.1.8-rc.1. It strengthens wallet recovery, improves synchronization and automatic spending, adds signed build verification, and refines the wallet experience across supported platforms. - Recovery phrase rescans now check the first five Sapling seed accounts used by older wallet layouts and retain every account where history is found. - Added `Add next account` and `Add 5 accounts` controls that can be used repeatedly to restore additional seed accounts. - Every newly added seed account includes its matching Sapling and Ironwood keys. - Newly added accounts are stored before scanning and automatically trigger the required historical rescan. - Redesigned the Keys and Addresses screen with clearer account grouping, concise guidance, responsive layouts, keyboard navigation, screen-reader support, and large-text support. - Kept seed account controls limited to recovery phrase wallets while imported spending keys and viewing keys remain correctly scoped to their own accounts. - Improved Sapling and Ironwood address rotation state across restarts, rescans, and database upgrades. - Strengthened imported-key ownership recovery using full viewing keys and complete ZIP-32 diversifier indices. - Kept address labels, colors, creation dates, and display order stable when verified ownership metadata is refreshed. - Added privacy-safe diagnostics showing whether imported keys were stored and included in scanning without recording secret key material. - Added integrity checks to compact-block cache records. Damaged or malformed records are discarded and downloaded again instead of being accepted by the scanner. - Preserved compatibility with existing cache formats and upgrade validated records automatically. - Kept the checksum overhead within normal end-to-end cached-rescan variance. The measured cost was approximately 45 milliseconds across a representative 583,000-block cached rescan. - Bounded resume and reorganization checks so an unavailable or inconsistent server cannot leave the wallet on Preparing Sync for hours. - Failed sync preparation now settles into a completed error state instead of continuing to appear active. - Added backoff to automatic sync restarts to prevent repeated restart loops. - Rescans now authenticate encrypted wallet records before cancelling synchronization or rewinding history. - Preserved the last valid spendability and witness heights when synchronization is cancelled. - Added durable replay tracking so newly added seed accounts and verified spending-key imports cannot skip required history after a restart. - Made address ownership persistence part of successful scanning so incomplete state is surfaced for retry. - Reduced database work during chain-resume and reorganization checks without changing the normal matching-tip or cached-block paths. - Fixed Auto spend selection when funds are spread across eligible key groups or shielded pools. - Removed cases where the send screen could report insufficient funds even though the wallet contained enough spendable notes. - Made the transaction builder authoritative for final note and fee validation using current wallet state. - Added responsive and accessible send-error feedback for phones, tablets, desktops, large text, and screen readers. - Improved transaction cards so long amounts, account names, and status information do not overlap on narrow screens. - Improved recent activity spacing and fixed content appearing through the pinned mobile balance header. - Renamed Privacy Shield to Network Privacy and simplified the screen around settings users can act on. - Removed DNS grading and the passive DNS status panel. - Kept native onion light servers as the preferred choices when Tor is selected. - Added curated HTTPS light servers as additional manual choices while using Tor. Connections to these servers remain routed through Tor. - Kept automatic Tor endpoint pools onion-only. - Updated node settings to clearly identify when a clearnet hostname is protected by the active Tor connection. - Added the wallet’s official public PGP key to the application, repository, and release verification package. - Added a README, `sha256sums.txt`, signed checksum manifests, and detached PGP signatures for every published release asset. - Bound release files and their verification metadata to the exact Git tag being built. - Updated the Verify Build screen to download the matching signature bundle and validate it against the embedded project key. - Added local package and installed executable hash verification where supported. - Replaced unclear verification failures with actionable guidance. - Kept hashes, file paths, signatures, and supporting evidence available through an optional technical-details panel. - Updated Linux AppImages with a modern static runtime that does not depend on the legacy `libfuse2` loader. - Added packaging checks that verify the approved runtime remains intact in the finished AppImage. - Improved macOS Keychain compatibility for portable and ad-hoc signed packages. - Made debug logging on macOS independent of Keychain availability. - Preserved wallet data when a macOS secure-storage or encrypted-state check fails. - Fixed Intel macOS packaging for the x86_64 Qortal JNI library. - Added typed React Native methods for reading, testing, and updating lightwalletd endpoint pools. - Documented endpoint testing, failover pools, wallet scoping, transport rules, TLS validation, and sync restart behavior. - Added verified spending-key recovery support for native and Qortal integrations. - Updated the shared Rust backend, CLI, native FFI, Qortal CLI, and Android SDK to version 0.3.2. - Updated the React Native wrapper and native companion packages to version 0.3.3. - Refreshed Flutter Rust Bridge output for Dart 3.13. - Updated translations for the new wallet, security, key management, and network settings. [Read the v1.1.8-rc.1 release notes](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/releases/tag/v1.1.8-rc.1) [View the full changes since v1.1.8-rc.1](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.8-rc.1...v1.1.9)
v1.1.8-rc.1: Pirate Unified Wallet v1.1.8 (Release Candidate 1)
v1.1.8-rc.1 is the release candidate for Pirate Unified Wallet v1.1.8. It introduces faster and more resilient synchronization, improved privacy-network handling, broader Linux compatibility, and safer, deterministic release packaging. ## Faster and More Resilient Sync - Added automatic multi-server synchronization for eligible mainnet configurations. Auto mode validates compatible lightwalletd servers and can download ordered historical block ranges from multiple sources. - Added validated failover while preserving explicit manual servers, custom endpoints, certificate pins, testnet settings, and private-network routing. - Historical rescans now bootstrap at the requested height instead of unnecessarily replaying from Sapling activation when suitable tree state is available. - Added capability-aware routing for Sapling and Ironwood subtree roots, allowing Auto mode to use a validated compatible server without changing the normal sync endpoint. - Improved cached-rescan throughput, durable prefetch admission, dense-block workload control, and sync progress reporting. - Preserved the last durable wallet height during startup recovery and automatically restart synchronization when it stops unexpectedly. - Added broader recovery and regression coverage for stale endpoints, interrupted sync, historical rescans, endpoint failover, and chain-tail updates. ## Privacy and Networking - Made the latest Direct, Tor, SOCKS, or I2P selection authoritative and cancel stale connection requests when the transport changes. - Prevented old health checks and private-network requests from blocking the settings screen or reporting results for a transport that is no longer selected. - Kept Tor configurations on onion endpoints and moved embedded Tor state into app-private storage on Android. - Improved embedded I2P startup, SOCKS connectivity, endpoint validation, retry behavior, and slow-network timeout handling. - Removed the incompatible mainnet I2P endpoint and improved recovery when a private endpoint remains offline. - Bounded connection tests so failed or unreachable private transports no longer wait indefinitely. ## Endpoint and Wallet Experience - Added a persistent Auto server option with curated Pirate, Qortal, CryptoForge, and supported MathNodes endpoints. - Applied endpoint selections immediately and restored the previous configuration if saving fails. - Added an Auto-mode tooltip explaining parallel synchronization in straightforward language. - Improved endpoint health presentation and added diagnostic logging for automatic pools, alternate servers, routing decisions, and rescans. - Updated and localized endpoint names, Auto-mode descriptions, health states, and private-network guidance across all supported languages. - Improved seed import error handling so valid recovery phrases are not incorrectly reported as invalid when a later setup or secure-storage operation fails. - Enabled the required macOS Keychain entitlements and made non-secret seed-language preference persistence resilient to unavailable secure storage. ## Linux Compatibility - Established Ubuntu 22.04 and GLIBC 2.35 as the compatibility floor for published Linux artifacts. - Built embedded i2pd from pinned source on the supported ABI baseline instead of packaging a binary requiring a newer Linux distribution. - Added fail-closed ELF symbol checks for Flutter bundles, AppImages, command-line tools, Qortal JNI, native FFI, and x86_64 and aarch64 releases. - Fixed the Flatpak Flutter runtime layout that could cause the application to exit without opening. ## Security and Deterministic Builds - Updated audited Rust dependencies, including the patched `h2` release for RUSTSEC-2026-0258. - Tightened Cargo audit and cargo-deny policy while retaining only the documented transitive RSA exception with no available fixed release. - Made Komodo coin, icon, and KDF assets checksum-pinned and hermetic for Flutter builds. - Added one validated Flutter asset preflight for every supported desktop and mobile build. - Standardized unit and widget tests so upstream asset transformers cannot perform unexpected network downloads. - Made tag-derived application versions authoritative and added release gates that reject artifact version drift. ## SDK and Package Delivery - Reduced React Native iOS archive size by removing debug and incremental data, enabling optimized release linking, and stripping nonessential symbols. - Split the oversized combined iOS simulator package into separate arm64 and x86_64 companion packages. - Added strict package allowlists that reject unexpected files, debug bundles, symlinks, incorrect architectures, and oversized payloads. - Updated the React Native package family to version 0.3.2. - Refreshed CLI, Qortal, native FFI, iOS SDK, and Android SDK artifacts to version 0.3.1. - Made Native FFI packaging deterministic by validating the reviewed C ABI, building from Cargo.lock, and removing runner-dependent header generation. - Added an explicit, pinned cbindgen workflow for intentional Native FFI header regeneration. [Read the v1.1.7 release notes](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/releases/tag/v1.1.7) [View the full changes since v1.1.7](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.7...v1.1.8-rc.1)
Pirate Unified Wallet v1.1.7 (Beta)
v1.1.7 is an Android hotfix release for the startup crash affecting the v1.1.6 Android build. ## Android Hotfix - Fixed a release-only crash that could stop the Android app before Flutter initialized. - Updated AndroidX WorkManager to 2.11.2 so Room's generated database remains constructible after R8 shrinking. - Added a release mapping check to prevent this class of startup failure from passing CI again. ## Release Pipeline - Fixed React Native npm publication when packages are downloaded from GitHub Actions artifacts. All wallet features and platform changes from v1.1.6 remain included in this release. [Read the v1.1.6 release notes](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/releases/tag/v1.1.6) [View the full changes since v1.1.6](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.6...v1.1.7)
Pirate Unified Wallet v1.1.6 (Beta)
v1.1.6 is a major synchronization, Ironwood, reliability, networking, and interface release. It introduces Supernova, prepares every supported integration for Pirate Chain's scheduled Ironwood transition, and publishes the updated backend toolchain as version 0.3.0. ## Supernova Sync Engine - Introduced Supernova, Pirate Unified Wallet's new high-throughput shielded-chain synchronization engine. Full announcement of Supernova to follow soon. ## Ironwood - Configured the scheduled mainnet Ironwood activation for October 3, 2026 at 19:00 UTC using canonical block timestamps. - Receive-address APIs automatically select Ironwood after activation across the Flutter wallet, CLI, Android and iOS SDKs, React Native plugin, and Qortal integrations. Existing Sapling addresses remain valid. - Added Ironwood viewing-key exports, per-pool address indexes, internal change handling, key-state reconciliation, and transaction support. - Updated Ironwood testnet parameters with Sapling activation at block 61 and Ironwood activation at block 297. - Added consensus branch validation and canonical activation-boundary checks. ## Wallet Reliability - Fixed seed restoration cases that could provision wallet storage without displaying or activating the restored wallet. - Fixed synchronization and rescan operations becoming stuck on Connecting or Fetching headers, including after changing endpoints. - Strengthened cancellation, restart, cache validation, task ownership, and rollback behavior. - Corrected note persistence and derived key-state reconciliation that could leave balances or transaction history stale. - Pending outgoing transactions now appear first and display only the amount sent externally instead of including wallet-owned change. - Added stable, paginated activity history and scalable address management with pin and archive controls. - Fixed duplicate address allocation races, watch-only balance handling, and Windows shutdown crashes. ## Networking and Privacy - Added curated mainnet, development, Mathnodes, Ironwood testnet, Tor onion, and I2P endpoint presets. - Added endpoint health monitoring and safe failover while preserving the selected Direct, Tor, SOCKS5, or I2P transport and each endpoint's SPKI pin. - Fixed custom TLS connections, certificate validation, SNI handling, SPKI retrieval, and invalid-pin reporting. - Bundled public CA roots and improved Tor and embedded I2P process lifecycle management. ## Interface and Platforms - Refined the desktop, mobile, and landscape layouts with responsive navigation, balanced spacing, readable sync metrics, improved cards, and consistent controls. - Improved onboarding with Pirate Chain branding, an in-app privacy policy, clearer backup language, navigation debouncing, and safer passphrase confirmation. - Fixed the biometrics setting briefly displaying the wrong state while loading. - Upgraded to Flutter 3.47 and Dart 3.13, Android Gradle Plugin 9, iOS 15, and macOS 12. - Fixed macOS startup failures by linking liblzma statically and verifying release linkage. - Windows releases now present the installer as the normal distribution, with portable and unsigned builds grouped separately as test artifacts. ## Developer Releases The following artifacts are updated to version 0.3.0: - Pirate CLI and Qortal CLI - Qortal JNI adapter - Native FFI libraries - Android and iOS SDKs - React Native plugin and native platform packages The React Native release is split into the main wrapper and four architecture-specific native packages. All five packages will be published to npm with exact version matching and trusted-publishing provenance. ## Important Notes - Atomic swaps remain intentionally unavailable while validation and testing continue. - Apple signing remains disabled for this release. macOS and iOS outputs are distributed as explicitly labelled unsigned test artifacts. [View the full changes since v1.1.5](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.5...v1.1.6)
Pirate Unified Wallet v1.1.5 (Beta)
This release focuses on Ironwood readiness, wallet reliability, privacy-safe diagnostics, and broader language and platform support. ## Highlights - Added Ironwood transaction, key, address, storage, synchronization, and wallet-service support throughout the unified wallet core. - Added validated lightwalletd subtree-root handling, preparing faster checkpoint-based synchronization when supported by compatible servers. - Added 15 selectable interface languages: Arabic, Dutch, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Simplified Chinese, Turkish, and Urdu. - Improved translated layouts, fonts, and live language switching. - Upgraded the application to Flutter 3.44.1 and modernized Android, iOS, Linux, macOS, and Windows platform integration. ## Reliability and Security - Fixed Tor becoming stuck in a "not started" state after switching between Direct, Tor, and SOCKS5 modes. - Fixed duress passphrase unlock handling. - Improved wallet state refresh after importing and rescanning spending keys. - Preserved active rescans when switching between wallets. - Improved restore birthday-height estimates using monthly checkpoints. - Increased transaction signing timeouts appropriately for transactions with large input counts. - Disabled debug logging by default. - Added an optional debug-log setting for troubleshooting and strengthened redaction of sensitive information from exported logs. ## Developer Integrations - Updated the CLI, native FFI, iOS SDK, Android SDK, React Native plugin, and Qortal integrations for Ironwood. - Added Qortal compatibility APIs and packaged Qortal JNI libraries for supported desktop platforms. - Improved account-scoped React Native storage and safe serialization of wallet amounts. - Published the updated developer artifacts as version 0.2.0. ## Important Notes - Atomic swaps remain intentionally disabled in this release while validation and testing continue. [View the full changes since v1.1.4](https://github.com/PirateNetwork/Pirate-Unified-Light-Wallet/compare/v1.1.4...v1.1.5)
v1.1.4
Beta version 1.1.4
Changelog:
- Improve mobile keyboard stability
- Fix restore birthday height estimate
- Fix bug with FFI calls racing Rust init
- Improved seed UI
- Improved button text alignment
v1.1.3
Beta Version 1.1.3 Micro patch
Changelog:
- Fixed iOS TestFlight packaging
- Made mobile keyboards more stable
v1.1.2
Changelog:
- Added Payment Disclosure support. Users can now share or receive and verify single transaction disclosure key to prove payments without sharing entire wallet history
- Improved transaction detail UX with inline copy buttons and cleaner sent transaction disclosure presentation
- Lowered the wallet confirmation requirement from 10 confirmations to 1 confirmation across the app/backend
- Added adaptive sync profiles that tune sync batch sizes and worker behavior based on device capability
- Improved mobile sync stability for lower-end devices and heavy/spam block ranges
- Improved reorg handling with safer sync-state rollback, witness-anchor consistency checks, and better recovery behavior
- Made block fetching more resilient on slow or unstable networks
- Improved wallet lifecycle handling so interrupted sync sessions can downgrade safely and avoid repeated crash loops
- Fixed Android secure text-entry focus issues where the keyboard could open and instantly close on some devices/keyboards
- Fixed Linux/mobile clipboard behavior so copied seed phrases respect the intended 30-second clear timer instead of clearing immediately on app pause/background
- Improved desktop window sizing across Windows, Linux, and macOS
- Hid unavailable fee values for incoming transactions instead of showing 0 fee
- Updated CLI & SDK docs
- Updated dependencies
- Hardened Github Actions CI/CD workflow
v1.1.1
Beta Release V1.1.1
Changelog:
- Improve desktop auto-updater and artifact verification
- Fixed bug where you couldn't progress with onboarding at birthday selection screen
- Added GetSubTreeRoots sync optimization. Will auto-work after node and lightserver are updated
- Added and updated documentation repo-wide
- Fixed bug with Nix builds
- Added auto-versioning of Rust crates on tags
- Harden SOCKS5 network transport
- Harden background sync for iOS and Android
- Improved repo maintainability by splitting "god files"
- Add additional BIP39 languages (seed phrase words) to ensure compatibility with Treasure Chest
- Fixed a bug causing wallet crash
- Fixed a bug caused by switching endpoint which resulted in a stale sync worker not closing
- Preserved balance card/widget layout when hiding balance
- Cleaned up backup seed warning screen
- Made import seed "paste" button clearer
- Added AI audit report, fixed what needed fixing, and added our comments to each finding
- Added CLI version based on the unified core, so devs can use as a Pirate light wallet backend in their desktop apps
- Added Qortal CLI version based on the unified core and their unique features, so Qortal can use it when we switch to Orchard
- Added Android SDK version based on the unified core, so devs can add support to Pirate in their Android wallets
- Added iOS SDK version based on the unified core, so devs can add support to Pirate in their iOS wallets
- Added React Native plugin based on the unified core, so Edge and other wallets based on React Native can use it in their wallet