Wasabi Wallet is an easy to use, privacy-focused, open-source, non-custodial, Bitcoin wallet
Download
🪟 Windows
🍏 Apple M1/M2
🍎 Apple Intel
🐧 Ubuntu / Debian
🐧 Other Linux
Release Highlights
🫥 New user interface
🔒 Trezor Safe 3 support
🚀 Full RBF detection
🥷🏼 Password is now called passphrase
🎛️ New sorting option
🐛 Bug fixes and security improvements
Release Summary
What is the Hotfix about?
On some Mac systems, Wasabi could crash on fresh installations. #12869
Completely new interface
The wallet's entire color scheme, transaction history table, menus, and icons were overhauled in this release with a refreshing new look. These changes aim to streamline the experience while maintaining a focus on user privacy. Enjoy the new darker dark mode and spicy Wasabi green highlights.
Hardware wallets
Wasabi Wallet now supports the latest Trezor Safe 3 device, known for its secure element protection, open-source design, and on-device transaction confirmations. This allows users to securely use their Trezor Safe 3 for private cold storage, enhancing the usability of Wasabi Wallet with one of the top hardware devices for Bitcoin security. Also, this version upgrades to HWI v3.0.0 which avoids false positive antivirus flagging.
Full RBF
Accuracy of unconfirmed transactions in the mempool is now improved by considering economic replacements of transactions that did not originally signal for Full Replace-By-Fee (RBF). The coordinator now has a more stable defense against attackers who double spend coinjoin inputs.
Better privacy warnings
Updates to privacy notifications now provide more detailed information, displaying amount differences in both BTC and USD to assist users in avoiding the creation of change outputs.
Coinjoin setting now available on music box
The autocoinjoin feature has been optimized to initiate only after transaction confirmations, reducing unnecessary mining fees. The associated Tor version has also been updated to improve network security and performance.
Password is now called passphrase
The wallet's password functionality has been renamed to "passphrase" to better reflect its security implications and the fact that it cannot be reset. This passphrase is the "13th word" or "seed extension", and is required together with the 12 recovery words to recover the private keys and spend the bitcoin.
New sorting option
Users can now sort their transaction history by date, improving the manageability and navigation of financial records in Wasabi Wallet.
Additional enhancements and bug fixes
The release includes improvements for cross-wallet performance, updates Avalonia and .NET for GUI and framework enhancements, solutions for UI memory leaks, and bug fixes for Coldcard hardware device integration. The Buy Anything button's text box is now easier to navigate. Automatic coinjoin checks for eligible coins before starting. The update also introduces a new PGP key for securely reporting software vulnerabilities.
Read the related blog for more information.
Installation Guide
Download the operating system relevant software package and install Wasabi like you would with any other software on your computer.
For a detailed installation guide, including signature verification, see the documentation.
Documentation
🕸️ Website
🧅 Tor onion site
📙 Documentation
❔ FAQ
Advanced Guide
If you want to build or update Wasabi from source code, check out these easy instructions.
Wasabi uses reproducible builds, which you can verify with this guide.
Requirements
- Windows 10 1607+
- Windows 11 22000+
- macOS 12.0+
- Ubuntu 20.04+
- Fedora 37+
- Debian 11+
Full Changelog
- Update CONTRIBUTING.md - add rule for unused return values by @molnard in #12335
- Update SECURITY.md from nopara to molnard by @molnard in #12319
- Remove unnecessary _ = from the code by @molnard in #12336
- BitBox02 implement by @Whem in #12341
- Apply time preference check for all lower TimeFrames by @turbolay in #12356
- Copy USD Balance to ToUsdFriendlyDecimals by @turbolay in #12374
- Add new HWs icon to WW by @Whem in #12376
- [UI] CurrencyEntryBox - hotfix for release by @soosr in #12380
- [VDG] Do not call NavigateAndHighlight if selected wallet is the same as found one by @wieslawsoltes in #12383
- musicbox: update RandomlySkippedRoundMessage by @MarnixCroes in #12252
- Hw icons finalize by @Whem in #12396
- update avalonia by @danwalmsley in #12392
- Buy Anything Button by @SuperJMN in #12181
- [VDG] Chat workflow better error handling by @ichthus1604 in #12391
- Code cleanup by @yahiheb in #12402
- [UI] Fix duplicate orders by @soosr in #12409
- [UI][Trivial] Change BAB's position by @yahiheb in #12420
- [VDG] [CRITICAL] Update to Avalonia 11.0.9 by @wieslawsoltes in #12418
- Privacy Ring - AnonScore Range for PrivacyLevel Segments by @ichthus1604 in #12421
- [UI] Chat workflow better error handling by @soosr in #12406
- Move NewFiltersEvent registration after Initial Tx Process by @turbolay in #12413
- Fix CrashReporter window - Continuation by @turbolay in #12416
- Disable SleepInhibitor in Daemon by @kiminuo in #12428
- [UI] BAB - Error dialog improvement by @soosr in #12433
- [UI] Update spectrum control bounds by @SuperJMN in #12436
- [UI] fix BuyAnything button visibility by @soosr in #12410
- Upgrade xUnit to the latest version & warn about invalid ConfigureAwa… by @kiminuo in #12427
- [VDG] Fix discreet mode hover not working for Bitcoin P2P endpoint by @wieslawsoltes in #12440
- [UI] Fix wrong unread badge by @SuperJMN in #12439
- [BAB] Adjust minimum amount wording by @adamPetho in #12455
- [UI] Add char limit by @soosr in #12453
- [BaB] Remove timestamp from UI message by @Szpoti in #12452
- Adjust bab visibility by @soosr in #12459
- [BAB] [trivial] update assistant greeting, remove "chosen" by @MarnixCroes in #12462
- [UI] PasswordFinder - add missing navtaget by @soosr in #12469
- [VDG] Use RoutingStrategies.Bubble for pointer event for closing dialog by @wieslawsoltes in #12468
- [UI] BAB - improve UX of min char limit by @soosr in #12472
- Fix PayJoin by @turbolay in #12417
- Disable Taproot KeyPath under HW first connection by @yahiheb in #12466
- Catch wrong phase exception in CJManager in case of detected double spend by @adamPetho in #12450
- [BIP21 parser] Add tests for unknown parameters by @kiminuo in #12478
- [trivial]
Program.cs
: Fix wrong use of?
by @kiminuo in #12480 - [BaB] Fix shipping cost not showing by @Szpoti in #12456
- [Wallet synchronization] Introduce
BlockDownloadingService
by @kiminuo in #12184 - [VDG] fix welcome page inaccuracies by @MarnixCroes in #12483
- fix opening browser on macos. by @danwalmsley in #12485
- [VDG] Add XmlnsDefinition for WalletWasabi.Fluent.Controls namespace and fix CurrencyEntryBox paste and copying with PasswordChar by @wieslawsoltes in #12486
- [UI][BAB] Remove assistant's explanation by @SuperJMN in #12458
- do not use inlines, its buggy. by @soosr in #12507
- Fix Linux popup and flyout issues 2 by @molnard in #12505
- Fix Linux popup and flyout issues. by @danwalmsley in #12497
- [VDG] ContentArea Improvements by @ichthus1604 in #12493
- Remove temporary resync code by @turbolay in #12370
- Fix "StopWhenAllMixed = false doesn't work" by @adamPetho in #12502
- [VDG] Fix TreeDataGridPrivacyTextCell rendering by @wieslawsoltes in #12510
- [Trivial] Remove useless check in CoinJoinCoinSelector by @turbolay in #12512
- Fix WFP crash when network changes by @turbolay in #12519
- Fix crash when countries cannot be retrieved. by @molnard in #12522
- Simplify synchronizer gensock event reporting by @molnard in #12504
- Macos version update by @Whem in #12534
- [VDG] SendViewModel: Make AmountBtc nullable by @ichthus1604 in #12539
- [VDG] Fix selection after paste by @wieslawsoltes in #12542
- CompletedEventArgs was not forwarded in the the observable chain by @molnard in #12538
- [VDG] Privacy Ring - Remove Carousel by @ichthus1604 in #12541
- [VDG] Fix errors in ide by @wieslawsoltes in #12543
- [Trivial] Update ReleaseNotesTemplate.md by @yahiheb in #12550
- Revert "Fix "StopWhenAllMixed = false doesn't work"" by @molnard in #12554
- Add missing state machine transition when wallet reached 100% - take 2 by @molnard in #12553
- [VDG] Fix send To address field scrolling by @wieslawsoltes in #12563
- Ignore visual studio launchSettings.json by @molnard in #12558
- Don't mix if all non-private coins are unconfirmed. by @turbolay in #12559
- BAB - fix visibility on testnet by @soosr in #12566
- [VDG] Hide USD Amount in Balance Tile if it is zero by @ichthus1604 in #12568
- Introduce MinInputCountByBlameRound - simple by @molnard in #12524
- [VDG] WalletCoinsModel - Deferred Subscription by @ichthus1604 in #12573
- [DO NOT MERGE YET] Bump version to 2.0.6 on master by @adamPetho in #12578
- [VDG] Privacy warnings Improved UX by @ichthus1604 in #11463
- Add sanity check for round destroyer threshold by @turbolay in #12585
- BlockDownloadServiceTests: Use async code instead of sync one by @kiminuo in #12588
- Fix for Restart not working by @turbolay in #12582
- Add
WalletFactory
type by @kiminuo in #12589 - Simplify estimation code by @lontivero in #12571
- [UI] FeeChart - Integrate WildEstimations by @soosr in #12569
- [UI] Fix potential memory leaks by @SuperJMN in #12577
- Fix logging when we destroy a round (LoadBalancer) by @adamPetho in #12591
- Refactor/contributing docs update by @kayevo in #12583
- Avoid caching non-existing inputs by @lontivero in #12601
- Log end of transaction file migration to SQL by @turbolay in #12523
- [VDG] Add XmlnsDefinition for behaviors by @wieslawsoltes in #12613
- [VDG] Fix TextBox cursor by @wieslawsoltes in #12609
- Hwi update to 2.4.0 by @Whem in #12616
- Upgrade Tor to
0.4.8.10
from0.4.8.5
by @kiminuo in #12617 - Change RedirectSupportAsync for CodeMaid by @turbolay in #12628
- [Trivial] Fix warning in Blockchain Controller by @adamPetho in #12634
- IsWasabiCoinJoinLookingTx need to account for delta by @turbolay in #12640
- transaction search with destination address by @collins-okafor in #12604
- Add mention_users_on_filechange.yml script by @molnard in #12637
- Fix warnings in
SingleInstanceChecker
by @kiminuo in #12651 - [VDG] BAB - Multi Line Text Input by @ichthus1604 in #12611
- Use
passphrase
instead ofpassword
by @yahiheb in #12320 - [Trivial] Correct
-datadir
for Linux by @yahiheb in #12342 - Add a config for RoundDestroyerThreshold by @turbolay in #12663
- Double spending tx are considered replacement by @lontivero in #12301
- [VDG] Format BTC with Fixed Fractional by @ichthus1604 in #12660
- [UI] Merge Wallet & Coinjoin settings by @wieslawsoltes in #12564
- [VDG] Privacy Progress N/A when balance is zero by @ichthus1604 in #12575
- Crash gracefully by @turbolay in #12395
- Organize (move) client side CJ related code by @molnard in #12671
- chore: remove repetitive words by @soonsouth in #12676
- Use cache in
BlockchainController.GetTransactionsAsync
(take 2) by @kiminuo in #12275 - Fix potential parse error in
UpdateManager
by @Szpoti in #12685 - Fix wrong
DataDir
error on Windows for Knots by @Szpoti in #12688 BenchmarkLogger
: Improve the final log by @kiminuo in #12690- Delete unused event by @lontivero in #12689
- Fix typestring before HardwareWalletModels parsing by @Whem in #12686
- Use Warning in case of wrong json in UpdateManager by @Szpoti in #12684
- Get unconfirmed tx chain - backend only by @adamPetho in #12302
- Do not abort rounds paying more than attacker by @lontivero in #12677
AutoInterfaceGenerator
: Skip interface method implementations by @kiminuo in #11949- [Tor] Crash at startup (connection reset by peer) by @kiminuo in #12699
- Remove
SmartBlockProvider
and replace it withBlockDownloadService
by @kiminuo in #12490 - [UI] SearchBar refreshment by @SuperJMN in #12675
- [UI] Make CJ settings more discoverable via MusicBox by @SuperJMN in #12694
- [Trivial] Disable the warning rule CA1859 in
.editorconfig
by @yahiheb in #12707 - Fix macOS Application Icon (Show - Hide) state when loading in background mode. by @danwalmsley in #12626
- [Trivial] Change password to passphrase by @yahiheb in #12708
- [VDG] Fix Amount Paste by @ichthus1604 in #12661
- [UI] Fix Address entry focus when user clicks Send by @SuperJMN in #12683
- [UI] Send - move recipient entry to the first dialog by @wieslawsoltes in #12657
UpdateChecker
: Increase interval to 1 hour by @kiminuo in #12716- [UI] fix
Add Wallet
: sometimes wallet name page is displayed at first wallet creation by @MarnixCroes in #12723 - Remove duplicates before fetching parent TXs by @adamPetho in #12724
- Fix Compute Fee method by @adamPetho in #12737
- Fix macOS notarization (signing), migrate to
notarytool
by @adamPetho in #12735 - Trezor Safe 3 implementation by @Whem in #12687
- Fix html tag by @veryyet in #12700
- Fix infinite loop when getting blocks from unavailable P2P by @turbolay in #12756
- [UI] Migrate TagsBox to ControlTheme by @SuperJMN in #12753
- [UI] Migrate PreviewMessageItem to ControlTheme by @SuperJMN in #12750
- [UI] Send: Fix Labels getting cleared after successful Address input by @ichthus1604 in #12767
- [UI] Fix Crash when trying to Save QR Code from Receive Address in Folder that contains spaces by @ichthus1604 in #12766
- Add commit, merge related conventions by @molnard in #12717
- Change mempool policy on local node by @lontivero in #12696
- Disable StopWhenAllMixed feature by @molnard in #12754
- Fix NRE SingleInstanceChecker by @turbolay in #12773
- [UI] BAB Workflow Lifecycle refactor by @ichthus1604 in #12721
- Change MaxDaysToTrustLocalPrison to 15 days and remove randomness by @turbolay in #12782
- [UI] Set CoinJoinSettingsCommand by @yahiheb in #12787
- [UI] Fix settings observability by @SuperJMN in #12783
- OSX: Start Wasabi in the background during startup by @Szpoti in #12772
- UI refreshment by @soosr in #12260
- [UI] UI-Refresh + Explicit Disposal by @SuperJMN in #12789
- [UI] Explicit disposal of subscriptions by @SuperJMN in #12625
- [UI] fix discreet mode for amounts in stats by @soosr in #12791
- [Trivial] Use ValidatePathString for other HW models by @yahiheb in #12713
- Revert "[Trivial] Use ValidatePathString for other HW models" by @molnard in #12792
- Fix CI due to broken tests by @SuperJMN in #12793
- [UI] Send: Move Focus On Enter Key by @ichthus1604 in #12794
- [UI] Send: Fix UI glitches after going back from Transaction Preview by @ichthus1604 in #12798
- [UI] Login: Fix focus after Incorrect Password message by @ichthus1604 in #12795
- [UI] Send: Activate SuggestionLabelsViewModel by @ichthus1604 in #12800
TryRemoveLastFilterIfNewerThanAsync
should not throw by @turbolay in #12778- Revert 12782 by @turbolay in #12804
- Icons - Replaces icons for Mac and windows by @soosr in #12802
- [UI] Always call ApplyUiConfigWindowState() before showing the window by @wieslawsoltes in #12805
- [Release] adjust margins to prevent shifting by @soosr in #12813
- [Release] Fix hide on Mac by @soosr in #12821
- [Release] fix icons by @soosr in #12820
- [Release] Update HWI to 3.0.0 by @yahiheb in #12833
- [Release] fix child date format by @soosr in #12844
- [Release] Fix SpeedUpGroup children transactions details by @yahiheb in #12845
- [Release] Create Library and LaunchAgents folder if they don't exist by @Szpoti in #12874
New Contributors
- @kayevo made their first contribution in #12583
- @collins-okafor made their first contribution in #12604
- @soonsouth made their first contribution in #12676
- @veryyet made their first contribution in #12700
Full Changelog: v2.0.6...v2.0.7