gitmyhub

Xault-Wallet

C# ★ 230 updated 3d ago

XMR Desktop Wallet built for Duress and privacy-first usage.

An unaudited beta desktop wallet for the Monero cryptocurrency, notable for a duress password that opens a decoy wallet instead of your real one.

.NETC#AvaloniaMonerosetup: hardcomplexity 4/5

XaultWallet is a desktop application for managing Monero, a privacy focused cryptocurrency also known as XMR. The project is explicit that it is an unaudited, work in progress beta meant for learning and testing, not for holding real money. The README repeats several times that it has not gone through a professional security audit and warns users to only use it with test networks rather than real funds, since Monero transactions cannot be reversed if something goes wrong.

The wallet is modeled after an existing Bitcoin wallet called Wasabi Wallet, and is built using .NET and a UI framework called Avalonia. Rather than implementing Monero's complex cryptography itself, which the author identifies as the most dangerous thing a wallet project could get wrong, it relies on the official monero-wallet-rpc program that the real Monero project maintains, and focuses its own code on protecting the wallet file on disk.

The standout feature is a duress password system. The wallet file always contains two equal sized encrypted sections. One holds your real wallet, and the other holds either a decoy wallet or random data if you never set up a duress password. Whichever password you type in determines which section unlocks, and there is no way to tell from the file alone whether a hidden real wallet exists. If someone forces you to unlock the wallet, you can enter the duress password instead, which opens a fake wallet that looks identical to the real interface, and optionally can also permanently erase the real wallet from that device.

The README documents what is finished and tested, including the encrypted vault format and the duress mechanism, versus what still needs testing against a live Monero network, such as the actual send and receive functionality. Hardware wallet support, multiple signers on one wallet, and a bundled Monero network node are explicitly listed as out of scope for now.

To run it, you need the .NET 8 SDK, the official Monero command line tools downloaded separately, and either a local or remote Monero node to connect to.

Where it fits