A Monero wallet holder facing regulatory uncertainty or exchange closure may want to move funds into self-custody, but the prospect of managing a hardware device, firmware updates, or dependency on a manufacturer’s supply chain creates friction. The alternative—using paper, encrypted files, and locally derived cryptographic keys—can be more secure than many assume. Cold storage does not require specialized equipment. It requires understanding which components must remain offline, which can be reconstructed, and how to test recovery without compromising the stored credentials.
The non-custodial model of Monero means access is determined solely by cryptographic key possession. Unlike accounts managed by a service provider, a Monero wallet’s security depends entirely on the protection of recovery material and the integrity of any device that accesses it. This creates both opportunity and obligation. The opportunity is complete independence from intermediaries; the obligation is that no password reset, account recovery, or support ticket can recover lost keys. Building cold storage correctly therefore means understanding seed phrase derivation, wallet file encryption, the role of view keys versus spend keys, and the specific threats that air-gapped storage mitigates.
Why seed phrases and encrypted wallet files replace hardware devices
A hardware wallet is fundamentally a device that holds private keys and signs transactions without exposing the keys to connected computers. It is convenient because it combines key isolation with on-device interaction. But hardware devices are not the only way to isolate keys. A recovery seed—a 25-word phrase that derives cryptographic keys locally—can produce the same keys on any device that implements the correct derivation algorithm. If that phrase is stored offline on paper, and the device that reads it is air-gapped during key generation, the isolation is complete. The wallet file, once encrypted, can be stored anywhere because decryption requires both the correct password and the ability to derive the correct keys from the seed.
This approach trades convenience for transparency. With a hardware wallet, the user trusts that the device’s firmware is genuine and that its signing process is correct. With paper-based cold storage and offline key generation, the user must understand and verify every step. That transparency is actually a security advantage when executed correctly, because it removes dependency on a manufacturer’s supply chain, firmware update process, or the assumption that a device’s bootloader cannot be compromised. The threat model shifts from “device may have been tampered with during shipping or manufacturing” to “did I write down the seed phrase correctly, and have I stored it in a location that won’t burn or flood?”
The XMRWallet implementation uses a non-custodial wallet design where no service controls access. The user downloads the application, generates keys locally using the seed phrase, and retains full custody of the derived spend key and view key. For cold storage, this means generating the keys offline, writing them down, storing the encrypted wallet file separately, and never connecting the signing device to the network. The separation of view key (which scans the blockchain for incoming transactions) from spend key (which signs outgoing transactions) creates an additional layer: a watch-only wallet using only the view key can monitor balance and receive addresses without being able to spend funds.
Generating the seed phrase in isolation
The first step is creating the recovery seed on a device that will not be connected to the network and will not be used for day-to-day activity. This is typically a laptop or computer that either never had network connectivity or that can be booted into a clean state. The goal is to ensure that the device has no malware, no network access, and no copies of the seed phrase are transmitted anywhere. For most users, a second-hand computer with a clean operating system installation and no internet connection is sufficient. High-security users might use a live operating system from an external USB device that leaves no trace after shutdown.
When generating the seed on the monero wallet, the application produces a 25-word phrase. This phrase should be written by hand onto paper using a pen that will not fade and cannot be read with invisible ink detection. The paper should be stored in a location that is not shared with any networked device, not photographed, and not stored in cloud services or physical locations that could be accessed during home searches. Some users keep two physical copies in geographically separate locations (a home safe and a bank safety deposit box, for example). The critical requirement is that no copy of the seed phrase should exist in digital form anywhere after generation.
Testing the seed phrase without exposing it should be done at the time of creation. This means generating the keys from the seed once, writing down the resulting public address (which can be public), and then verifying that a small transaction to that address appears correctly in a subsequent scan. This test should be done using a temporary watch-only wallet on an air-gapped device, with only the view key and public address stored. If the test passes, the seed phrase and the temporary watch-only wallet file can be archived without being used again until recovery is necessary.
Encrypting and storing the wallet file
Once the keys are derived from the seed phrase on the air-gapped device, the application generates a wallet file that contains encrypted key material. This wallet file can be moved to external storage—USB drives, external hard drives, or archived on optical media—because it is encrypted with a passphrase that only the user knows. The encryption protects the key material from anyone who gains physical access to the storage media without the password.
The wallet file encryption is separate from the seed phrase. Even if an attacker obtains the wallet file, they cannot extract the keys without the correct passphrase. Similarly, even if someone finds the paper seed phrase, they cannot recover the funds without the wallet file, because the seed must be imported into a Monero wallet application to reconstruct the keys. This two-factor-like structure means that cold storage security depends on protecting both the seed phrase location and the wallet file encryption password.
Storage of the wallet file should follow these principles: create at least two copies on separate media, store them in locations that are physically secure and geographically separated (so that a single disaster does not destroy all copies), label them clearly with the generation date and wallet type, and verify that at least one copy is readable before considering the setup complete. Many users test restore from a backup copy once per year, using an air-gapped device, to ensure that the file is not corrupted and that the recovery procedure is still remembered.
The distinction between view key and spend key in air-gapped workflows
Monero separates the ability to view transactions from the ability to spend funds. The view key scans the blockchain, identifies transactions addressed to the wallet, and allows the wallet to calculate balance. The spend key signs outgoing transactions and is the ultimate authorization for spending. In cold storage setup, this separation enables a powerful workflow: a watch-only wallet using only the view key can be kept on a networked device or online service, while the spend key remains offline and never connected to the internet.
This means that a user can check their Monero wallet balance, receive addresses, and incoming transaction history on a phone or computer that may be compromised or surveilled, without risking the ability to spend funds. Outgoing payments require moving the transaction data to the air-gapped device, signing it with the offline spend key, and then moving the signed transaction back to an online device for broadcast. This is slower than a typical transaction, but it is appropriate for infrequent high-value transfers.
Setting up a watch-only wallet requires exporting the view key and public address from the seed-generated keys on the air-gapped device, then importing them into an online wallet file that explicitly lacks the spend key. This online watch-only wallet file can be freely copied between devices, stored in cloud backups, or synchronized across multiple phones. Even if it is stolen or corrupted, it cannot authorize transactions. The critical security boundary is that the spend key never leaves the air-gapped device and never enters a file that is synchronized, uploaded, or transported across the network.
Managing the offline device without losing access
A device used only for signing transactions must remain bootable and must retain working copies of the Monero wallet application and the encrypted wallet file. Unlike hardware wallets, which are designed to persist over years, an offline laptop or USB-based operating system can degrade: hard drives fail, USB drives become unreadable, software may no longer run on future operating systems. Planning for this requires maintaining the offline device in working condition and periodically testing that it can still derive keys and sign transactions.
The recommended practice is to document the exact steps needed to recreate the offline device, including the operating system version, the Monero wallet software version, and the procedure for importing the seed phrase or wallet file. This documentation should be stored with the physical backups, not on networked devices. A once-yearly or twice-yearly test recovery—where the seed phrase is imported on a freshly booted air-gapped device and a small transaction is signed and broadcast—verifies that the recovery procedure works and that the stored recovery material has not degraded.
Battery degradation and hardware aging are predictable. If the offline device is a laptop, periodically powered on and booted to verify that it still starts and that the software still runs, it will last longer and function more reliably. If the device is a USB-based live operating system, the USB drive itself can fail. Keeping a second bootable copy or refreshing the USB drive every few years prevents the scenario where the device is needed but no longer functions. This is not sophisticated security. It is maintenance, and it is often the deciding factor between a working cold storage setup and an inaccessible one.
Transaction signing workflow for spending from cold storage
Spending from a cold storage Monero wallet requires moving transaction data between an air-gapped device and an online device because the offline wallet file cannot directly access the blockchain or create outputs. The standard workflow is: the online watch-only wallet prepares an unsigned transaction, the unsigned transaction file is transferred to the air-gapped device (via USB drive or printed QR code, for example), the offline device signs the transaction using the spend key, the signed transaction is transferred back to an online device, and the online device broadcasts the signed transaction to the Monero network.
This process is deliberately slow and requires manual steps. Those steps are also checkpoints where errors can be caught. Before transferring the unsigned transaction to the offline device, a user should verify that the destination address, amount, and fee are correct. Before broadcasting the signed transaction, the user should verify that the device successfully signed it and that no network errors occurred. The friction of the process is a feature, not a bug, because it prevents accidental transactions and encourages users to double-check critical details.
For receiving funds, no offline signing is required. The watch-only wallet on the online device can display receiving addresses and confirm that incoming transactions have been scanned correctly. The view key scans the blockchain locally (or through a remote Monero node), so receipt of funds does not depend on any external service. As long as the watch-only wallet is kept up-to-date by regular synchronization, the user will see all incoming transactions, even if the offline signing device has never been touched.
Comparing physical risks: paper versus digital backup
A 25-word recovery seed written on paper is resistant to digital attacks—malware cannot steal it, cloud services cannot be hacked to expose it, and a network-connected device cannot accidentally transmit it. But paper is vulnerable to physical destruction and loss. Fire, flooding, or theft of a home can destroy a single copy. This is why redundancy with geographic separation is standard practice for paper backups.
Digital backups (an encrypted file containing the seed or the wallet) are resistant to physical destruction because they can be replicated infinitely. But they are exposed to malware, ransomware, accidental deletion, and theft. Storing a digital backup in cloud services introduces the risk that the service provider could be compromised or compelled to disclose it. The best practice combines both: keep the paper seed phrase in two physical locations, and keep encrypted digital wallet file backups on external media or in geographically separated locations, none of which are the internet-connected devices that spend funds.
The recovery seed is more portable than the wallet file because the seed is simply a list of 25 words that can be memorized, written down in multiple places, or even stored in unusual locations (engraved on metal plates, for example). Some users memorize their seed phrase, eliminating the paper entirely. This trades physical security for the cognitive burden of remembering a sequence with perfect accuracy. For most users, a combination—write it down, store it physically, and keep the wallet file encrypted on separate media—balances accessibility with security.
Testing recovery before relying on cold storage
The most important and most-often-skipped step is actually testing that the cold storage setup works for recovery. This means taking the seed phrase or encrypted wallet file, moving it to a fresh air-gapped device, and verifying that the keys are correctly derived and that the wallet can scan its transaction history and display the correct balance. This test should happen before the device is stored away, because it is the only opportunity to catch mistakes—a miswritten seed phrase, a corrupted wallet file, or a forgotten encryption passphrase—while the error can still be corrected.
The test should involve importing the seed phrase into a fresh Monero wallet application on the air-gapped device, allowing it to scan the blockchain (if test funds were sent), and confirming that the balance shown matches what was expected. For wallet files, the test means creating the device setup from scratch, copying the encrypted wallet file to it, entering the encryption passphrase, and confirming that the keys are reconstructed correctly. Only after successful testing should the recovery material be stored away.
Annual or biennial recovery testing is good practice for high-value cold storage. This involves selecting one copy of the seed phrase or wallet file (not the primary), moving it to a freshly prepared air-gapped device, importing it, and verifying that the balance and address are correct. This test catches degradation of physical media, loss of stored documentation, and ensures that the person responsible for recovery (the owner or a designated heir) still knows the procedure. The test should happen in a controlled setting, not during an emergency when the funds are actually needed.
Frequently asked questions
Do I need a hardware wallet to store Monero securely in cold storage?
No. A hardware wallet is one way to isolate keys, but a non-custodial wallet using a seed phrase and encrypted wallet file on an air-gapped device provides equivalent security. The seed phrase can be written on paper and stored offline, and the encrypted wallet file can be backed up on separate media. As long as the seed phrase is protected physically and never stored digitally, and the air-gapped device remains offline during key generation and transaction signing, the security depends on physical storage practices, not on specialized hardware.
What happens if I lose both copies of my recovery seed or wallet file?
If the recovery seed is lost and no encrypted wallet file exists, the Monero wallet cannot be recovered. This is a fundamental property of non-custodial wallets: only the user controls the keys, which means only the user can recover them. A service provider cannot issue a password reset or account recovery. This is why redundancy with geographic separation is critical. Store at least two copies of the seed phrase in separate locations and keep multiple encrypted wallet file backups on separate media.
Can I use a watch-only wallet to receive payments while the spend key stays offline?
Yes. A watch-only wallet that contains only the view key can monitor the blockchain, display receiving addresses, and confirm incoming transactions without the spend key. This allows you to check your balance and receive payments on an online device while the spend key remains offline and inaccessible. To spend funds, you must transfer the unsigned transaction to the air-gapped device where the spend key can sign it, then broadcast the signed transaction from an online device.