How to Recover a Monero Wallet From Seed on a Device With No GUI
Recovering a privacy-coins/monero-10-block-unlock-time-spending/">Monero wallet from its 25-word seed on a device without a graphical interface - a headless Linux server, a Raspberry Pi, or a machine you only access over SSH - is a straightforward process using the official Monero CLI tools. The core steps are: install the software, generate a wallet from the seed, and then either sync a node or connect to a remote one to see your balance and spend. The critical detail is that Monero's seed phrase is not just a list of words; it also contains a checksum and, in some cases, a passphrase, and getting either wrong produces a valid-looking but empty wallet.
Before you start: what you need
The Monero seed phrase is 25 words long. The 25th word is a checksum of the first 24, which means the software can immediately tell if you've mistyped a word or written them down in the wrong order. If you have a 13-word seed from an older wallet, that is a different format, and while the recovery process is similar, the command differs slightly. You also need to know whether the wallet used a passphrase (sometimes called a "25th word" or "extra word") when it was created. That passphrase is appended to the seed and is not stored anywhere; if you used one and don't have it, the seed is effectively lost.
You do not need the original wallet file, the original device, or the original node. The seed is the master key.
Step 1: Install the Monero CLI Tools
On a headless Linux device, you need the monero-wallet-cli program. You can download the official binaries from the Monero website (getmonero.org) - verify the checksum and the signed hash if you can. Alternatively, on Debian or Ubuntu, you can use the monero-cli package from the distribution's repositories, though this may lag behind the latest release. For this task, the version matters less than you might think; any recent version can restore a seed.
Extract the archive to a directory, for example ~/monero, and navigate into it. The wallet tool is in the bin subdirectory.
Step 2: Run the Restore Command
The command to restore from seed is:
./monero-wallet-cli --restore-deterministic-wallet
This launches an interactive prompt. You will be asked for:
- A wallet filename - give it any name, e.g.,
restored. - A password - for the new wallet file it creates locally. This is separate from any wallet passphrase you used originally. It encrypts the local file; it does not affect the seed.
- The seed - type the 25 words in order, separated by spaces. The tool will validate the checksum. If you get an error, double-check spelling, word order, and whether you have a passphrase.
- The seed offset passphrase - if you used a passphrase originally, enter it here. If you press Enter without typing one, the tool assumes no passphrase.
After this, the tool will start scanning the blockchain.
Step 3: Sync a Node or Use a Remote One
The wallet needs to see the blockchain up to the point where your funds were last active. You have two options:
- Local node (full sync): Run
./monero-blockchain-importor simply start./monerodand let it sync. This can take many hours and tens of gigabytes of disk space. Once synced, the wallet will find your funds. This is the most private option because you are not revealing your public address or view key to a third party. - Remote node: If disk or bandwidth is limited, connect to a public node. Start the wallet with
--daemon-address <node-url>:<port>. For example,--daemon-address node.moneroworld.com:18089. This is faster but leaks your IP address and the fact that you are querying the chain to that node operator. The node sees your view key, which allows it to see incoming transactions, but not your spend key, so it cannot steal funds.
If you use a remote node, you do not need to run monerod at all.
Step 4: Restore Height and Rescanning
The wallet will ask for a "restore height" or "restore from block." This is the block number from which it starts scanning. If you enter a number that is too low (e.g., 0), the scan takes a long time. If you enter a number that is too high (e.g., after your last transaction), the wallet will show an empty balance.
The safest approach: if you know roughly when the wallet was created, approximate the block height for that date. If you don't know, set it to 0 and wait. The scan is CPU and disk intensive, but it is a one-time cost. After the scan, the wallet will show the correct balance and transaction history.
If you make a mistake with the height, you can run refresh and then rescan_bc inside the wallet to re-scan from a different block.
Step 5: Verify and Spend
Once the scan finishes, you are done. Use balance to check funds and transfer to send. The wallet will build a transaction, which requires the daemon to be connected. If you used a remote node, the transaction is broadcast through that node, which sees your IP and the transaction's ring signatures but not the amounts or the recipient's stealth address.
Common Pitfalls
- Wrong passphrase: If the seed is correct but the passphrase is wrong, the wallet will open successfully but show a zero balance. There is no error message for this. If you suspect this, close and restart with the correct passphrase.
- Old seed format: A 13-word seed is from MyMonero or the old Simplewallet. The command
--restore-deterministic-walletworks for 25-word seeds. For 13-word seeds, you need--restore-walletand a different recovery process. - Case sensitivity: Seed words are all lowercase. Do not add numbers, punctuation, or extra spaces between words beyond single spaces.
A note on security
The device you use for recovery will have the seed and the wallet file on disk. On a headless server, this is acceptable only if you trust the machine and the network it is on. If the machine is shared or compromised, your funds are at risk. Consider using a hardware wallet - which supports the same CLI tools - or an air-gapped machine for the actual spending step. The seed itself should never be typed into any web form or online service.
Recovery from seed is deterministic, meaning the same seed always produces the same wallet. That is why the process is reliable and why the seed is the only thing you truly need to protect.
Not financial advice. holdium.xyz publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.
Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.