Wasabi Wallet v2.0.3
Wasabi 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
🥕 Taproot coinjoin signing and taproot change outputs
🪙 Opt-in manual coin control for payments
🐇 Improved wallet loading speed
🍏 Native run on mac ARM64 without Rosetta (x64 emulator)
⚔️ Improved dust attack prevention
Release Summary
Wasabi Wallet has undergone a series of updates and improvements. One of the significant updates includes the addition of taproot coinjoin signing and taproot change outputs, the client randomly chooses between segwit v0 and v1 for each output, which enhances privacy and security. Another notable update is the opt-in manual coin control feature that allows users to verify and adjust what the software chooses automatically, users now have more control over their payments. The wallet loading speed has also been improved, ensuring faster wallet access and navigation.
The latest version of Wasabi is now fully compatible with native Mac ARM64 without Rosetta, an x64 emulator that helps run apps designed for x86-based systems. Additionally, users can now copy text in transaction preview and details, making it easier to share information with others. The update also enhances dust attack prevention, thereby increasing wallet security. The Taproot relevant concepts are now displayed in the UI. The NBitcoin and Tor versions have also been upgraded, improving overall performance and reliability. Moreover, GitHub vulnerability reporting has been added, making it easier for anyone to privately report vulnerabilities. Lastly, the PGP key's expiry date has been updated to 2028, please download and import this new key block. Wasabi is now fully compatible with Trezor Suite and BTCPayServer coinjoin users, providing them with additional privacy and security features.
Overall, these updates make Wasabi more user-friendly and secure, with additional privacy features. The improvements to the user interface and security measures make it a reliable option for users looking to keep their Bitcoin safe and private.
Installation Guide
Download the operating system relevant software package and install Wasabi like you would any other software on your computer. For a detailed installation guide, including signature verification, see the documentation.
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.
Documentation
🕸️ Website
🧅 Tor onion site
❔ FAQ
Requirements
- Windows 10+
- macOs 10.15+
- Ubuntu 16.04, 18.04, 20.04+
- Fedora 33+
- Debian 10+
What's Changed
- [website] Mobile fixes by @CAnorbo in #9808
- [trivial]
ByteHelpers
: Fix namespace by @kiminuo in #9828 Guard.NotNull
: Make sure analyzers will know that T was notnull
by @kiminuo in #9829- Minor log improvement in Warden by @adamPetho in #9832
- [Trivial] WasabiSetupRegtest.md: Update CcjRoundsConfig by WabiSabiConfig by @turbolay in #9831
- Add Github vulnerability reporting by @MaxHillebrand in #9825
- [Trivial] Fix some namespaces by @yahiheb in #9842
- [VDG] Fix exception of Ctrl+C by @wieslawsoltes in #9692
- [Trivial] Update license by @yahiheb in #9848
- [Trivial] Fix formatting by @yahiheb in #9849
- Add softwareexpiry=0 to knots parameters by @molnard in #9872
P2pBlockProvider
: Minor changes by @kiminuo in #9851- [website] Added sitemap to robots.txt by @CAnorbo in #9870
- [Trivial][Refactoring] Use compound assignment by @yahiheb in #9869
- [Trivial] Simplify new expression by @yahiheb in #9875
- [VDG] Coin Control Stage 2 by @SuperJMN in #9774
- Select coins from reused address by @turbolay in #9782
- [Trivial] Make struct 'readonly' by @yahiheb in #9876
- More friendly HWI error message on timeout by @Szpoti in #9833
- [VDG] Add wallet items to search bar by @wieslawsoltes in #9700
- fix namespace by @soosr in #9883
- [Trivial] Use pattern matching by @yahiheb in #9882
- [trivial] minor musicbox message improvement by @MarnixCroes in #9890
- [VDG] Simplify insufficient balance handling by @soosr in #9508
- [VDG] Refactor navbar by @soosr in #9725
- [VDG] [Trivial] Remove unused control NavBarListBox by @wieslawsoltes in #9905
- [VDG] fix build by @soosr in #9906
- [Easy]
CoreNode
: Add constructor by @kiminuo in #9880 - Re-enable coinjoins with taproot outputs by @lontivero in #9710
- [VDG] [Trivial] Remove unused control BindableGrid by @wieslawsoltes in #9903
- [VDG] [Trivial] Remove unused control NavBarTreeView by @wieslawsoltes in #9902
- Signs even in when receives more money than excpected by @lontivero in #9892
- [VDG] Remove unused icon assets. by @jmacato in #9913
- [VDG] Disable ToggleSwitch knobs transitions to fix delay of switch toggle as settings by @wieslawsoltes in #9912
TorProcessManager
: Re-throw exception by @kiminuo in #9910- Upgrade to Tor 0.4.7.12 (contains native macOS arm64 build) by @kiminuo in #9897
- Remove
BaseKeyChain
by @kiminuo in #9830 - Rename fallback to blame in music box by @turbolay in #9874
- Cleanup all code using CodeMaid by @yahiheb in #9850
- Update macOS icon again. by @jmacato in #9901
- [VDG] Fix memory leak and navigation issue during loading by @soosr in #9726
- [VDG] Add TryGetSelectedWalletViewModel to WalletManagerViewModel by @wieslawsoltes in #9918
- [VDG] Remove unused DataTemplateSelector class by @wieslawsoltes in #9922
- [VDG] Remove old legal placeholder graphics with wasabi logo. by @jmacato in #9916
- [VDG] Add paste suggestion flyout by @SuperJMN in #9820
- [VDG] Move global static classes to root folder by @wieslawsoltes in #9932
- [VDG] Cleanup behaviors naming and move types to models by @wieslawsoltes in #9930
- [VDG] Remove redundant this qualifier by @wieslawsoltes in #9923
- [trivial] Minor cleanups by @kiminuo in #9927
- [Trivial] Remove unnecessary suppression by @yahiheb in #9942
- Remove segwit limitation for change outputs by @lontivero in #9909
- [Trivial] Remove unnecessary curly brackets by @yahiheb in #9934
IndexStore
: SimplifyForeachFiltersAsync
by @kiminuo in #9926- [VDG] [Trivial] Remove unused NavBarTreeItem control by @wieslawsoltes in #9950
- [VDG] Fix Wallet Coins view discrete mode by @wieslawsoltes in #9946
- [VDG] Refactor TreeDataGrid column creation into methods by @wieslawsoltes in #9949
- Update WW1 Legal docs by @molnard in #8192
- [Trivial] Fix name violation by @yahiheb in #9935
- [Trivial] Use expression body by @yahiheb in #9938
- Remove unused parameters by @yahiheb in #9941
ProcessAsync
: Cleanup by @kiminuo in #9961CoreNode
: Remove a few more warnings by @kiminuo in #9969- Call Money() instead of ambigus with long CoinJoinWithBlameRoundTestAsync by @turbolay in #9965
- Fix randomization of output types by @lontivero in #9973
- Refactor WhiteList by @molnard in #9963
- Small preparation for payments in coinjoins by @lontivero in #9967
- [VDG] Remove unused controls by @jmacato in #9979
- [VDG] Copy balance from tile by @SuperJMN in #9937
- [VDG] Fix CS0420 for _isLoading field in loading view model by @wieslawsoltes in #9933
- [VDG] [Taproot UI support] #3 - Display Taproot ExtPubKey and DerivationPath in Wallet Info by @ichthus1604 in #9741
- Remove
GetBitcoinCoreVersionAsync
by @kiminuo in #9928 - [VDG] Realign NavBarItem element margins and heights. by @jmacato in #9986
- Add round independent by @molnard in #9974
- Fix Whitelist LastSavedChangeId property by @adamPetho in #9990
TorProcessManager
: Check our permissions wrt Tor process by @kiminuo in #9960ConfigBase
with file read & write synchronization by @kiminuo in #8074- [VDG] Coin Control Stage 3 by @SuperJMN in #9975
- [VDG] Add .editorconfig to silence all .NET analyzers in Models/Windows directory by @wieslawsoltes in #9924
- Use IDictionary.TryGetValue(TKey, out TValue) method by @yahiheb in #9877
- [VDG] Authorize wallet info when navigated from search bar by @wieslawsoltes in #9989
- [Trivial] Use local function by @yahiheb in #9881
- [VDG] [Trivial] Enable clipboard copy item in Transaction Preview by @SuperJMN in #9853
- [VDG] Use BindPointerOverBehavior in MusicControlsView by @wieslawsoltes in #9943
- Remove unecessary Task.Run by @Szpoti in #10007
- [PoC] Exclude Coins from CoinJoining by @Szpoti in #9925
- add latest Bitcoin Core versions to constants by @MarnixCroes in #9999
- [VDG] replace
Select(_ => Unit.Default)
withToSignal()
by @soosr in #10000 - Start CJ with only pending coins by @turbolay in #10008
- [VDG] PrivacyBar refactor into Custom Control by @ichthus1604 in #9981
- Check address used by @Szpoti in #10018
- Improve logging by @adamPetho in #10020
- CoinHelpers and starting CJ with empty coins consistency by @turbolay in #10019
- Fix my mistake by @adamPetho in #10022
- Retry API request by @molnard in #10027
- [VDG] enable selection of CJing coins by @soosr in #10001
- [VDG] Fix FadeOutTextBlock not updating on text change. by @jmacato in #10036
- Make sure content is re-created in every iteration by @adamPetho in #10038
- Separate wasabi and wabisabi clients by @Kukks in #8852
- [VDG] fix balance format by @soosr in #10035
- Upgrade NBitcoin version from 7.0.14 to 7.0.24 by @lontivero in #10042
- [trivial]
IdempotencyRequestCache
: Fix warnings by @kiminuo in #10037 - [Tor] Minor refactoring by @kiminuo in #10030
- Fix coins dialog on address reuse by @adamPetho in #10041
- Fix feature request workflow by @BTCparadigm in #10039
- [trivial] Fix warning in
CoinJoinClient
by @kiminuo in #10052 - Fix dust attack prevention logic by @lontivero in #10046
- Fix relative path in uri by @Kukks in #10024
- [VDG] Wallet Coins - fix memory leak by @soosr in #10050
- [VDG]
CoinJoinStateViewModel
- Cleanup by @soosr in #10026 - [VDG] Recovery words option - cleanup by @soosr in #9998
- [VDG] Verify Recovery Words - cleanup by @soosr in #9997
- [VDG] Recover Wallet - cleanup by @soosr in #9996
- TransactionSizeException - add failing test by @soosr in #9625
- Non default ServiceConfiguration at client init by @turbolay in #10045
- [VDG] Fix HoldKeyBehavior stuck when MainWindow deactivated by @SuperJMN in #10054
- Fix style (take 2) by @kiminuo in #10058
- [Tor] Minor improvements by @kiminuo in #10053
- [Trivial] Use field by @yahiheb in #9940
- Fix some CodeFactor issues by @yahiheb in #10073
Config
: Merge load methods by @kiminuo in #10077- [VDG] Coin Control - Rebuild data source when coins change by @SuperJMN in #10066
- [Trivial] Add indentation preference in .editorconfig files by @yahiheb in #10069
- Remove
Config.TryEnsureBackwardsCompatibility
by @kiminuo in #9958 - Retry in case of exception/timeout of HttpClient by @adamPetho in #10075
- P2PBlockProvider refactor by @turbolay in #10017
- Quick fix for incorrect fee issue by @lontivero in #10095
- Fix some dictionaries by @lontivero in #10088
- [Trivial] Remove unnecessary dollar sign '$' by @yahiheb in #10087
- [Trivial] Fix CodeFactor issues by @yahiheb in #10093
- [Trivial] Remove unnecessary suppressions by @yahiheb in #10070
- [Trivial] Fix CodeFactor issues by @yahiheb in #10107
- Improve log message by @adamPetho in #10098
- Add request time statista for requests by @adamPetho in #10110
- Do not enforce identity change when connecting to p2p nodes by @kiminuo in #10062
- remove local from InvalidOperationException by @MarnixCroes in #10009
- [Trivial] Fix CodeFactor issues by @yahiheb in #10113
- Add missing equality comparer by @adamPetho in #10116
- Fix the impossible :) by @adamPetho in #10117
- Fix missing navbar wallet icon resources by @jmacato in #10121
- [VDG] Coin freeze - remove leftover by @soosr in #10074
- [VDG] Close address displaying dialog when received funds by @soosr in #10082
- [VDG] Send - fix labels for coin list by @soosr in #10109
- [VDG] Fix splash animation by @soosr in #10089
- Fix removal of items when task is completed by @adamPetho in #10115
- [Trivial] Fix CodeFactor issues by @yahiheb in #10125
- [trivial]
IndexBuilderService
: nits by @kiminuo in #10118 - [Trivial] Fix CodeFactor issues in ApplicationStateManager.cs by @yahiheb in #10128
- State machine will follow the business logic (continuation) by @turbolay in #10059
- State machine will follow the business logic by @molnard in #10032
- BnB: Trivial changes by @kiminuo in #10134
- Add comment for future debugs by @adamPetho in #10140
- [VDG] Disable splash animation on full private wallets by @soosr in #10143
- Fix wallet start hidden by @Szpoti in #10123
- Affiliate server integration by @lontivero in #10091
- Creates UT to verify script type of change outputs by @lontivero in #10163
- [trivial] Use raw-string literals + minor cleanup by @kiminuo in #10162
- [Affiliate server] Fix flaky
AffiliateServerStatusUpdaterTests.GetStatusTestAsync
test by @kiminuo in #10169 - Updated PGP until 2028.02.24. by @CAnorbo in #10138
- Move CTS to caller by @adamPetho in #10174
- Key generator for affiliation server by @lontivero in #10176
- [Trivial] Fix typos by @yahiheb in #10179
- Put back RIDs by @kiminuo in #10147
- [VDG] Fix copy button by @soosr in #10157
- [VDG] Privacy Ring - attempt to fix double animation by @soosr in #10161
- [VDG] Fix fee slider value "randomly" gets reset by @soosr in #10148
- [VDG] fix confusing wrong message about passphrase by @soosr in #10146
- [VDG] UI Decoupling #1 by @ichthus1604 in #10165
- Move CTS closer to its usage by @adamPetho in #10191
- Fix coinjoin EffectiveFeeRate issue with reverse calculation by @molnard in #10151
- Upgrade to Tor 0.4.7.13 (Windows on x64 instead of x86) by @kiminuo in #10188
- Bump client version to 2.0.2.2 by @molnard in #10201
- Orgainize contrib by @lontivero in #10204
- Fix Tor Browser ChangeLog URL by @kristapsk in #10192
- Faster
SpecificNodeBlockProvider
by @kiminuo in #10119 - No retries in case of Timeout by @adamPetho in #10139
- Improve log message by @yahiheb in #10090
- [trivial] Typos by @kiminuo in #10205
- [VDG] UI Decoupling #2 by @ichthus1604 in #10166
- Change default backend URIs to new API hostnames by @kristapsk in #9995
- [VDG] Ask user to check the hardware wallet when confirming by @soosr in #10214
- Use less strict condition in anonymity computation by @onvej-sl in #10100
- Maximize parallel request to 30 (take 2) by @kiminuo in #10153
- Limit parallels reissuance requests to 10 by @turbolay in #10223
- [trivial] Fix a few warnings by @kiminuo in #10234
- [IndexStore][trivial] Fix test location by @kiminuo in #10236
- IndexStore: Trivial cleanups by @kiminuo in #10230
- Amountdecomposer with Taproot by @molnard in #10071
- [Trivial] Simplify 'new' expression by @yahiheb in #10237
- Bump version to v2.0.3 by @molnard in #10241
- [Release] CC fix 1 by @soosr in #10276
- [Release] cc fix 2 by @soosr in #10277
- [Release] fix cc 3 by @soosr in #10278
- [Release] cc fix 4 by @soosr in #10284
- [release] Fix output address generation and add test by @molnard in #10298
- [Release] cc fix 5 by @soosr in #10295
- [Release] dialog close prevention by @soosr in #10296
Full Changelog: v2.0.2.1...v2.0.3