XMR — · · 24h Vol — · Cap — Trade XMR
MMGen Wallet Review 2026: Command-Line Cold Storage for XMR

MMGen Wallet Review 2026: Command-Line Cold Storage for XMR

Review of MMGen Wallet 16.2.0 for Monero cold storage, covering XMR compatibility mode, offline signing workflow, supported coins and setup requirements.

MMGen Wallet Overview and Supported Assets

MMGen Wallet is a terminal-based Python suite first listed on 21 January 2023. Its latest release, version 16.2.0 from 23 August 2026, continues the project’s focus on air-gapped operation. All secret operations—seed handling, key generation and transaction signing—run exclusively on an offline machine, with wallets created fresh in volatile memory for each session.

The software is released under the GPLv3 licence and requires Python 3.11 or later. It supports Bitcoin, Monero, Bitcoin Cash, Litecoin, Ethereum, Ethereum Classic, ERC20 tokens, THORChain’s RUNE and additional Bitcoin-derived altcoins. Monero integration uses the same interface as other assets while still requiring a local monerod instance and monero-wallet-rpc for automated wallet creation and syncing.

Monero-Specific Features and Compatibility Mode

MMGen Wallet integrates Monero support through monerod 0.18.5.1, which works together with monero-wallet-rpc to automate wallet creation and synchronization on the offline machine.

Until version 16.1.0, these tasks required the standalone mmgen-xmrwallet script. The unified compatibility mode introduced in that release lets users perform Monero operations through the same interface used for BTC, LTC, and other assets, eliminating the need to switch between separate tools.

Seed handling under compatibility mode accepts multiple mnemonic formats, including the native MMGen seed, BIP39, and Monero’s newer mnemonic style. Subwallet creation is supported directly, allowing additional addresses to be derived from the primary seed while keeping all secret material on the air-gapped device.

Each session instantiates the required wallet in volatile memory only, after which the instance is discarded once signing completes.

Cold Storage Setup and Offline Signing Workflow

MMGen performs all seed handling and signing on an air-gapped machine, creating fresh wallets in volatile memory for each session to limit exposure.

  1. Boot the offline system from a live USB with no persistent storage mounted. Install or copy the MMGen Python suite and its dependencies.
  2. Launch the wallet-creation command with the volatile-memory flag so the seed exists only in RAM. Choose a seed format such as the new-style Monero mnemonic or BIP39 and record the words on paper or metal.
  3. Generate the corresponding Monero address and view key; export the public data to removable media while keeping the seed offline.
  4. On the online machine, run monerod and monero-wallet-rpc to scan the blockchain and build unsigned transactions. Copy the unsigned transaction file to the offline device via USB.
  5. On the air-gapped system, invoke MMGen’s offline autosign function. It loads the in-memory wallet, signs the transaction, and writes the signed file back to the USB drive without ever writing the seed to disk.
  6. Return the signed transaction to the online host, broadcast it through monero-wallet-rpc, and verify the resulting output on a block explorer or second node.

Repeat the entire cycle for each new session; the wallet is discarded from memory on shutdown, leaving no persistent files on the offline machine.

Comparison with Other Monero Cold Storage Tools

MMGen distinguishes itself through its terminal-based Python architecture and support for XOR seed splitting, features that set it apart from most other Monero cold-storage options. The official command-line tools and GUI clients typically provide native interfaces without requiring an external runtime, while MMGen mandates Python 3.11 or higher and integrates with monerod plus monero-wallet-rpc for XMR operations.

CriterionMMGen WalletCommon Alternatives
InterfaceTerminal-based Python suiteNative CLI or GUI
Seed SplittingXOR (N-of-N)Rarely supported
Python version requirement>= 3.11 (tested to 3.15)Not applicable
XMR daemon integrationRequires monerod 0.18.5.1 and monero-wallet-rpcDirect monerod integration

Users who already maintain air-gapped Python environments may find MMGen’s unified workflow across multiple coins convenient, yet the added dependency introduces setup steps absent from the official Monero binaries. Seed-splitting support remains uncommon elsewhere, so those needing N-of-N distribution must either adopt MMGen or implement external scripts. Daemon requirements stay consistent with standard Monero practice but are explicitly documented for the 16.2.0 release, helping operators verify compatibility before offline signing sessions.

OPSEC Considerations for Air-Gapped XMR Use

MMGen keeps seed handling and signing strictly offline, yet several practical weak points persist for Monero users.

Clearnet node exposure remains the most immediate risk. The workflow requires monerod and monero-wallet-rpc; any direct connection to public peers can reveal the user’s IP address during initial sync or balance queries. Routing the daemon through I2P or Tor is therefore essential, as the wallet itself does not enforce this.

KYC on-ramps create an earlier linkage. Funds acquired through regulated exchanges carry identity metadata that Monero’s ring signatures cannot retroactively erase. Subsequent air-gapped operations protect only the spending keys, not the provenance of the inputs.

IP leaks can also occur during the brief online phases needed for transaction broadcasting or RPC communication. Even when the signing machine stays air-gapped, the online host that submits the signed transaction can associate timing and amount data with an IP address.

MMGen guarantees that private keys never leave the air-gapped environment, but it cannot guarantee transaction unlinkability if any of the above vectors are ignored.

FAQ

How do I install MMGen Wallet?

Clone the repository and run the included setup for Python 3.11 or later. The 16.2.0 release notes confirm testing through Python 3.15, so any version in that range works without additional patches.

Which seed formats does MMGen support?

Users can generate wallets with native MMGen seeds, BIP39 mnemonics, or new-style Monero mnemonics. Dieroll methods and N-of-N XOR splitting are also available for air-gapped creation.

Can I control transaction fees?

Fee selection is exposed during transaction construction for every supported coin, including Monero. The interface lets you set custom values before the offline signing step completes.

What Python version is required?

Python 3.11 is the minimum. The project explicitly tests up to 3.15 in the August 2026 release, so newer interpreters remain compatible without code changes.

How do I recover funds after losing the machine?

Reinstall the software on a fresh offline system, then import the original seed or mnemonic through the standard wallet-creation command. Subwallets and compatibility mode restore automatically once the seed is loaded.