XMRWallet Cold Storage: Using Offline Wallets for Maximum Security

A Monero user holding significant value faces a practical security boundary: the more often a wallet connects to the network, the greater the risk of key exposure, network observation, or compromise through malware running on an internet-connected device. Cold storage—keeping the private keys offline and signing transactions on an air-gapped computer—addresses this risk directly. XMRWallet, a non-custodial wallet that reconstructs private keys locally without server involvement, can be deployed in a cold storage architecture where the spend key never touches an online system.

The setup requires discipline but not specialized hardware. An air-gapped computer running XMRWallet can generate addresses, receive payments, and sign outgoing transactions entirely offline. A separate online relay device synchronizes the blockchain, monitors incoming funds, and broadcasts signed transactions back to the network. This separation means that even if the online device is compromised, the attacker cannot access the spend key or forge transactions without physical access to the air-gapped machine. Understanding how to implement this workflow, and what security assumptions it actually protects, is essential for users serious about long-term Monero security.

Air-gapped cold storage setup showing offline XMRWallet instance on isolated computer and online relay node for network communication

The architecture of offline key storage with XMRWallet

Cold storage with XMRWallet follows a three-component model: the air-gapped wallet, the watch-only relay, and the network. The air-gapped machine runs a complete XMRWallet instance initialized with either an encrypted wallet file and password or a 25-word recovery seed. Because the wallet reconstructs private keys locally without server involvement, the mnemonic phrase and derived spend key exist only on the isolated device. No third party holds a copy, and no synchronized cloud backup exists.

The watch-only relay operates on a separate internet-connected computer. It synchronizes with the Monero blockchain, scans for transactions belonging to the cold wallet's public address, and displays the balance and transaction history. Critically, the watch-only relay uses only the view key—the component of the wallet that can scan the blockchain but cannot spend funds. Even if the online relay is fully compromised, an attacker gains visibility into incoming transactions but not the ability to create outgoing payments.

Communication between the two systems happens through USB transfer of transaction data. The watch-only relay prepares an unsigned transaction proposal—which outputs the cold wallet wants to spend and where the Monero should go. This proposal is transferred to the air-gapped machine via USB or removable media. XMRWallet signs the transaction using the spend key, creating a cryptographic proof that authorizes the transaction without revealing the key itself. The signed transaction is transferred back to the online relay and broadcast to the network.

The security of this model depends entirely on air-gap integrity. If the offline machine is ever connected to the network, has malware installed, or is physically accessed by an attacker, the cold storage assumption breaks. Conversely, if the offline device remains truly isolated and the USB transfers are treated carefully, the architecture provides meaningful protection against remote compromise, network monitoring, and supply-chain attacks on any single internet-connected device.

Setting up the air-gapped XMRWallet instance

The first step is acquiring an offline computer. This need not be expensive or specialized; an older laptop or desktop with a stable operating system and no wireless or cellular hardware is sufficient. Some users remove the Wi-Fi card or disable all network interfaces at the BIOS level to prevent accidental connection. The machine should have a USB port for transferring data and ideally no built-in cameras, microphones, or other sensors that could leak information.

Once the hardware is ready, install a clean operating system using verified installation media. Download XMRWallet from an authenticated source—the monero wallet download page offers the application and should be accessed over a secure connection and verified against any published cryptographic signatures. Install the wallet on the offline machine and verify that all installation files match expected checksums.

Initialize the XMRWallet on the air-gapped machine. Users have two paths: import an existing recovery seed or generate a new one. If generating fresh, write the 25-word mnemonic phrase on paper using pen and ink, never printing or photographing it. The phrase is the master secret; if it is exposed, all funds are compromised regardless of air-gap security. Some users write two copies and store them in separate secure locations. Others memorize the seed, though this is practical only for very short phrases and carries the risk of forgetting it during an emergency.

Set a strong password for the encrypted wallet file. This password protects the local file but does not replace the seed as a recovery mechanism. If the encrypted file is deleted and the password is forgotten, the seed can still recover the wallet. If the seed is lost and the encrypted file is corrupted, recovery is impossible. Treat both as critical.

The watch-only relay: receiving payments without the spend key

The watch-only relay requires the cold wallet's public address and view key—but never the spend key. The view key allows scanning the blockchain to detect incoming transactions; it cannot authorize outgoing payments. Extracting this information from the air-gapped machine involves exporting the public address and view key to a text file or QR code, then transferring them via USB to the online relay.

On the online computer, set up a separate XMRWallet instance in watch-only mode using the public address and view key. This instance will synchronize with the Monero blockchain, either through a remote node (operated by third parties) or a local Monero daemon (a full node running on the same machine). Watch-only wallets cannot send transactions, so even complete compromise of the online device does not allow fund theft. The attacker sees the balance and transaction history but cannot generate spending signatures.

Synchronization means the watch-only wallet scans every block in the blockchain, checking if any transactions involve the cold wallet's addresses. This process can take hours or days if the wallet has been offline for a long period. Once caught up, the relay displays the current balance, which is subdivided by confirmations and status. Incoming payments appear as unconfirmed, then move through confirmation counts as new blocks are found.

The key operational discipline here is to refresh the watch-only relay regularly but not obsessively. Checking the balance once or twice per day is reasonable. Refreshing every few minutes changes nothing but increases network data and may create observable patterns. For merchants or frequent receivers, a balance monitor on the watch-only relay can alert when payments have been detected, reducing the need for manual checking.

Signing and broadcasting transactions offline

When a payment from the cold wallet is needed, the workflow is: construct the transaction on the watch-only relay, sign it on the air-gapped machine, and broadcast it from the online relay. The watch-only relay creates an unsigned transaction proposal specifying the destination address, amount, fees, and ring size. This proposal is exported as a file or set of data that can be transferred via USB.

Transfer the unsigned transaction to the air-gapped XMRWallet instance. The offline wallet reads the proposal and uses the spend key to create a signature. XMRWallet displays the transaction details—destination, amount, fee—allowing the user to verify them before approving the signature. This verification step is critical: if the destination address has been altered by malware on the offline machine itself, the cold storage separation cannot help. The user must confirm that the displayed destination matches the intended recipient.

Once signed, the transaction is a complete, cryptographically valid Monero transaction that can be broadcast to any node. Export it from the offline wallet and transfer it back to the online relay via USB. The watch-only relay imports the signed transaction and submits it to the Monero network. Within seconds to minutes, the transaction propagates across the network. After several block confirmations, it is considered irreversible.

Each transaction signing requires a separate USB transfer cycle. This friction is intentional: it forces a deliberate pause between deciding to spend and executing the payment. For high-frequency sending, cold storage becomes inconvenient, which is why most users keep a small portion of funds on a hot wallet (internet-connected) for daily use and reserve cold storage for longer-term holdings.

Wallet security considerations and common risks

The phrase "wallet security" in a cold storage context means maintaining the separation that makes the architecture valuable. The most common failure is reusing the air-gapped computer for other tasks, downloading files from the internet, or connecting it to a network "just this once." Any network connection, malware installation, or physical access by an attacker can compromise the spend key.

A second risk is poor seed management. If the recovery seed is written on a Post-it note left on the desk or stored in a smartphone, the air-gap protection becomes irrelevant. The seed is the recovery path; it must be protected with the same care as the offline machine itself. Some users use metal seed storage to make the seed resistant to fire and water damage, which is sensible. Using multiple copies stored in different secure locations is standard practice for high-value wallets.

USB transfer introduces a small but real attack surface. If the USB drive is infected with malware before being used to transfer transaction data, that malware could remain on the drive and potentially interfere with future transfers. Best practice is to use dedicated USB drives for this purpose and to scan them on a clean device before and after each use. Some users maintain multiple USB drives, each formatted fresh before use, to reduce the risk of cross-contamination.

The watch-only relay is the most likely point of compromise in the overall setup. If the online computer is infected with malware, an attacker can see all transaction history and construct fake transaction proposals to trick the user into signing unexpected payments. The defense is careful verification on the offline machine before signing. A user should always confirm that the transaction proposal matches the intended payment: correct destination address, correct amount, reasonable fee. If the proposal looks wrong, reject it and investigate.

Synchronization strategy: local nodes versus remote nodes

The watch-only relay can synchronize the blockchain through a local Monero daemon or a remote node. A local daemon requires downloading and verifying the entire Monero blockchain (currently over 200 GB), which can take days depending on disk speed and network bandwidth. A remote node is a Monero node operated by someone else, accessed over the network; synchronization is much faster because the relay does not download the full blockchain.

The trade-off is privacy. A local daemon means the watch-only relay queries the blockchain without revealing which addresses it is interested in; the queries are local to the machine. A remote node sees the IP address of the requesting machine and can infer that the address being scanned belongs to someone at that location. Over time, patterns in address queries can be correlated with transaction timing and other metadata.

For maximum privacy, a local Monero daemon is preferable despite the storage and bandwidth cost. For practical usability, a trusted remote node or a node operated by the user's own VPN provider may be acceptable. The choice depends on the threat model: if the concern is opportunistic malware or casual observation, a remote node is reasonable; if the concern is state-level surveillance or a targeted adversary, a local daemon is necessary.

Some users run a local daemon but also maintain a secondary watch-only relay that connects to a remote node, allowing them to check the balance without revealing the address to the remote provider. This redundancy can catch synchronization failures or provide a fallback if the local daemon is unavailable.

Recovery and backup procedures for cold wallets

The recovery seed is the ultimate backup. If the encrypted wallet file is lost, deleted, or corrupted, the seed can reconstruct the entire wallet on any device running XMRWallet. The seed is sufficient; no password or other credential is needed for recovery. This is why seed protection is paramount: whoever has the seed owns the funds.

Best practice is to verify that recovery works before relying on the cold storage setup with significant funds. Create a test wallet, generate a 25-word seed, write it down, delete the wallet, and then recover it using the seed on a different device. This confirms that the seed is valid and that the recovery process is understood. Only after successful test recovery should large balances be moved to the cold wallet.

For the encrypted wallet file, regular backups to offline storage (a USB drive, external hard drive, or other non-networked medium) provide an additional safety layer. If the air-gapped computer fails due to hardware failure, the backup file can be restored to a replacement device. The backup should be tested periodically and stored in a secure location, ideally different from where the original air-gapped machine is kept.

Document the recovery procedure clearly but securely. Write down the steps: which device to use, which file or seed to access, how to install XMRWallet, how to verify the recovered address. This documentation is a physical security risk if it falls into the wrong hands, but it is a recovery necessity if the person who set up the cold wallet becomes unavailable. Some users keep recovery instructions in a sealed envelope with a trusted custodian or in a safety deposit box.

Operational discipline and long-term maintenance

Cold storage is not a set-and-forget system. The air-gapped computer will eventually require maintenance. The operating system may need security updates, the hardware may fail, or the user may need to verify that the setup still functions correctly. The key is to perform maintenance without compromising the air-gap assumption.

For operating system updates, the safest approach is to download the updates on the online relay, verify their authenticity against published checksums, transfer them via USB, and install them on the air-gapped machine. This avoids connecting the offline device to the network while still keeping the OS current. Some users prefer to keep the air-gapped machine on a stable, older OS version that is known to be secure, accepting the risk that new vulnerabilities may be discovered.

Hardware monitoring is important but limited by the air-gap constraint. The user cannot remotely check disk health or CPU temperature; they must physically access the machine. Some users set a calendar reminder to boot the cold wallet once every few months, verify that it still starts and functions correctly, and then shut it down. This provides minimal but useful assurance that the hardware and software are still viable.

If the air-gapped machine is compromised or suspected of compromise, the recovery path is straightforward: destroy or repurpose the device, create a new air-gapped machine, and recover the wallet using the seed on the new hardware. All funds remain secure because the spend key was never exposed online; recovery reconstructs it from the seed on a fresh device.

Comparing cold storage with other XMRWallet security models

XMRWallet's non-custodial design means users always control the spend key and recovery seed, but security models vary. A mobile XMRWallet using a 25-word recovery seed and password protection provides reasonable security for amounts the user can afford to lose if the phone is stolen. An XMRWallet on a laptop with local encryption and biometric access offers better security but is still exposed to network-based malware and supply-chain attacks.

Hardware wallet integration, where XMRWallet pairs with a dedicated signing device like a Ledger or Trezor, provides an intermediate security model. The spend key never leaves the hardware device, so even if the computer is compromised, the attacker cannot forge transactions. However, hardware wallets are custodial by a different mechanism: they are physical objects that can be lost, stolen, or damaged, and recovery depends on remembering the seed and having a replacement device.

Cold storage with air-gapped machines offers the strongest security posture for stationary funds but at the highest operational cost. It is the appropriate choice for large holdings that do not move frequently, where the security benefit justifies the friction of offline signing and the maintenance burden of multiple devices. For users who need to send Monero weekly or daily, hot wallet security with good operational practices (strong passwords, keeping the device updated, using Tor for node connections) is more practical.

The decision should also consider the threat model. An individual protecting savings from casual theft or a compromised laptop does not need cold storage. An activist, journalist, or person in a region with financial surveillance may benefit from the stronger isolation it provides. A business or institution holding customer funds has a responsibility to implement the highest practical security standard, which often includes cold storage for reserves.

Frequently asked questions

Do I need multiple computers to use XMRWallet for cold storage?

Yes. A cold storage setup requires at least two computers: an air-gapped machine that holds the spend key and signs transactions offline, and an online relay that synchronizes the blockchain and broadcasts transactions. The air-gapped machine must never connect to the network, while the relay connects regularly to stay synchronized with Monero blocks.

What is the difference between the view key and the spend key in cold storage?

The spend key is the private credential that authorizes spending; it must stay on the air-gapped machine. The view key allows scanning the blockchain to detect incoming transactions but cannot spend funds. The watch-only relay uses only the view key, so even if it is compromised, an attacker cannot create outgoing transactions. Only the spend key can sign transactions, which happens offline on the isolated computer.

How do I start with XMRWallet cold storage if I have never done it before?

Begin by testing the workflow with small amounts. Install XMRWallet on a test air-gapped machine, create a wallet, export the view key to set up a watch-only relay on a separate online device, and practice sending a small payment through the offline signing process. Once you are comfortable with the steps and understand the security model, recover using your recovery seed on a fresh machine to confirm the backup works, and then move larger amounts.

Add a Comment

Your email address will not be published.

All Categories

CONSULTANTS APPLICATION

Join AWIBA Consultants and you’ll be part of more than just a membership organisation.

Our customer support team is here to answer your questions. Ask us anything!

Become a member

We bring together and represent the interests of organizations supporting the development and growth of startups and SMEs for the maximum impact of their innovations.