How to Use Monero Over Tor and I2P: Wallets and Nodes
Step-by-step guide to using Monero over Tor and I2P: wallet proxy settings, monerod tx-proxy, onion and I2P hidden services for your node, and common pitfalls.
On this page
Key takeaways
- Monero hides amounts and addresses, but your IP address is a separate problem. Tor or I2P fixes it.
- The easiest win is wallet-level Tor: Feather has it built in, Cake Wallet has an experimental toggle, and the GUI/CLI accept a SOCKS proxy.
- If you run your own node, add --tx-proxy so your own transactions leave only through Tor or I2P.
- An onion or I2P hidden service lets you reach your home node from anywhere without exposing its IP.
- Prefer .onion and .b32.i2p node addresses over Tor exit nodes, and never mark a stranger's node as trusted.
Monero’s cryptography hides who paid whom and how much, but it does nothing about the network connection your wallet uses to talk to the world. Your IP address is the single most useful piece of data a chain-surveillance company can collect about a Monero user. Tor and I2P remove it. This guide covers three levels of setup, from a two-minute wallet tweak to a node that only exists as a hidden service.
Why IP privacy matters even with Monero
When your wallet syncs or sends a transaction, it opens a network connection to a node. Whoever runs that node, or watches the network around it, can see:
- The IP address the connection came from
- When it happened
- Which transaction was pushed out first from that connection
No amount of ring signatures fixes that, because it happens below the blockchain layer. Tor and I2P route your traffic through several relays so that the node sees a relay, not you.
Key point: Monero protects your on-chain data. Tor and I2P protect your network data. You need both for strong privacy.
Tor vs I2P for Monero
| Tor | I2P | |
|---|---|---|
| Main design goal | Anonymous access to the regular internet plus onion services | Anonymous traffic inside its own network |
| Wallet support | Wide (Feather built in, Cake toggle, GUI/CLI proxy) | Narrower; mostly via a SOCKS proxy |
| Typical local SOCKS port | 9050 (Tor daemon), 9150 (Tor Browser) | 4447 (i2pd SOCKS proxy) |
| Hidden service addresses | .onion (v3) |
.b32.i2p |
| Monero P2P port in official guide | 18084 | 18085 |
| Best use | Wallet connections, hidden RPC for your node | Node-to-node transaction relay, hidden RPC |
You don’t have to choose just one. The official Monero docs document both side by side, and many node operators run both.
Level 1: Route your wallet through Tor
This hides your IP from whatever node your wallet uses. It takes a few minutes.
Feather Wallet (desktop)
Feather bundles its own Tor binary, so there is nothing to install. If it doesn’t find a Tor daemon on port 9050, it starts its own. Under Settings → Network → Proxy you can choose between:
- Never over Tor
- Switch to Tor after initial synchronization (the default)
- Always over Tor
The default is a sensible compromise: the bulky first sync runs over clearnet, and everything after it, including broadcasts, goes over Tor. Pick “Always over Tor” if you don’t want even the first sync tied to your IP. On Tails or Whonix, Feather sends all traffic through Tor whatever the setting.
Cake Wallet (mobile and desktop)
Cake Wallet has a built-in Tor option under Settings → App settings → Connections → Enable built-in Tor. Cake labels it experimental: startup is slower, syncing is much slower than clearnet, and some third-party services such as fiat on-ramps may refuse Tor connections. Once it’s enabled, you can select Cake’s onion node. After updating to v6.5.0 or later, reselect the “Cake Wallet (Tor)” node, because its onion address changed.
Monero GUI
- Install and start Tor (the Tor daemon, or keep Tor Browser open).
- In the GUI, open Settings → Interface and set the SOCKS5 proxy to
127.0.0.1port9050(use9150if you rely on Tor Browser). - Go to Settings → Node, choose a remote node, and enter a
.onionaddress with port18089.
Monero CLI
monero-wallet-cli --proxy=127.0.0.1:9050 \
--daemon-address=http://youronionaddress.onion:18089
Only add --trusted-daemon if the onion belongs to a node you operate. A trusted daemon gets extra privileges, such as being relied on for some data your wallet would otherwise double-check.
Tip: Prefer
.onionor.b32.i2pnode addresses over normal IP nodes reached through Tor. Hidden-service connections are end-to-end encrypted and never leave the anonymity network. Clearnet traffic through a Tor exit relay can be watched or tampered with by the exit operator.
Level 2: Broadcast your node’s transactions over Tor or I2P
If you already run monerod, this is the most valuable single change you can make. The --tx-proxy option sends transactions you create through a SOCKS proxy to peers on Tor or I2P, while blocks keep syncing over clearnet for speed.
Step-by-step (Tor)
- Install the Tor daemon from your distribution or the Tor Project’s repository and confirm it listens on
127.0.0.1:9050. - Add this line to your
monerodconfig file (oftenbitmonero.conf):
tx-proxy=tor,127.0.0.1:9050,disable_noise
- Restart
monerod. - Point your wallet at your local node (
127.0.0.1:18081). Traffic from wallet to node stays on your machine, so it doesn’t need Tor.
Step-by-step (I2P with i2pd)
- Install i2pd and make sure its SOCKS proxy is running on
127.0.0.1:4447. - Add to your config:
tx-proxy=i2p,127.0.0.1:4447,disable_noise
- Restart
monerod. I2P can take several minutes to build tunnels on first start, so be patient.
What disable_noise does
By default, tx-proxy uses “noise”, meaning padding and randomized timing that make it harder for an observer of your connection to spot when you actually sent something. According to the monerod reference, the disable_noise flag makes transactions get fluffed to onion and I2P peers faster. The official setup guide uses it. If you care more about resisting traffic analysis than about speed, leave it off.
Note:
tx-proxyonly covers transactions that originate from your node. Transactions your node forwards for other people still travel over clearnet with Dandelion++. That is by design.
Going further: —proxy
--proxy sends all of monerod’s outbound clearnet traffic through a SOCKS proxy. It is slower, it relies on Tor exit relays, and it doesn’t use hidden services for P2P. Most people are better served by --tx-proxy plus an anonymity-network inbound address. Since release 0.18.5.0 in May 2026, the daemon and wallet support SOCKS5, which makes these proxy setups easier to combine with modern Tor and I2P software.
Level 3: Make your node reachable as a hidden service
A hidden service gives your node a .onion or .b32.i2p address. Two benefits:
- Your phone or laptop can connect to your home node from anywhere without you opening router ports or revealing your home IP.
- Other Monero nodes can relay transactions to you over Tor or I2P, which strengthens the anonymity network for everyone.
Tor hidden service
- Add a hidden service to
/etc/tor/torrc:
HiddenServiceDir /var/lib/tor/monero/
HiddenServicePort 18089 127.0.0.1:18089
HiddenServicePort 18084 127.0.0.1:18084
- Restart Tor and read your new address from
/var/lib/tor/monero/hostname. - Make sure
monerodserves a restricted RPC on port 18089 (for example withrpc-restricted-bind-port=18089) so remote wallets can’t use admin methods. - Add the inbound line to your
monerodconfig, using your real onion address:
anonymous-inbound=youronionaddress.onion:18084,127.0.0.1:18084
- Restart
monerodand test from another machine:
curl -x socks5h://127.0.0.1:9050 http://youronionaddress.onion:18089/get_info
I2P hidden service
With i2pd, create server tunnels for P2P port 18085 and RPC port 18089, restart it, and find your .b32.i2p address in the web console at 127.0.0.1:7070. Then add:
anonymous-inbound=youri2paddress.b32.i2p,127.0.0.1:18085
Warning: Back up your Tor hidden-service directory and your I2P key files. If you lose them, or change
HiddenServiceDir, your node gets a new address and every wallet pointed at the old one breaks.
Common mistakes
- Using
socks5://instead ofsocks5h://in test commands. Without the “h”, DNS lookups can happen outside Tor. - Leaving a clearnet fallback node configured. Some wallets try other nodes if your onion node is unreachable. Check your node list.
- Marking random nodes as trusted. Use
--trusted-daemononly for your own node. - Opening the Monero port to the internet for a node you only use over Tor. Recent versions of
monerodhave dropped UPnP support, but check that your router doesn’t forward port 18080 or 18089 unless you mean it to. - Thinking Tor fixes everything. Tor hides your IP. It does nothing about reusing addresses, round-amount timing patterns, or withdrawing straight from a KYC exchange into a payment.
Tails and Whonix: Tor for everything
If you want every connection your wallet makes to go over Tor, without relying on per-app settings, use an operating system built for that:
- Tails is a live system that boots from a USB stick and forces all traffic through Tor. Feather runs on it, and its persistent storage can keep your wallet files between sessions. It’s a good fit for occasional, high-sensitivity use.
- Whonix runs as two virtual machines: a gateway that handles Tor and a workstation that can only reach the internet through it. Even malware in the workstation can’t learn your real IP easily. It suits people who want a permanent private setup on their everyday computer.
In both systems, a wallet syncing from a remote .onion node is the usual setup, because running a full node inside Tails isn’t practical. On Whonix, --tx-proxy is technically optional since all traffic already goes through Tor, but some operators keep it on so the noise feature still applies.
Which level should you choose?
- Just starting out: Level 1. Turn on Tor in your wallet today.
- Running a node already: Add Level 2. It’s one config line.
- Want remote access or to help the network: Add Level 3.
Even the simplest step removes the most valuable metadata your Monero wallet would otherwise leak. For the bigger picture, see the rest of our Privacy & OpSec guides, and the Wallets category if you’re still choosing a wallet.
Frequently asked questions
Is Monero over Tor slower?
Wallet sync over Tor is noticeably slower, especially for a wallet that has been offline a while. Broadcasting a transaction over Tor takes only seconds, so many people sync over clearnet and broadcast over Tor.
Should I use Tor or I2P for Monero?
Both work. Tor has more users and better wallet support, while I2P is designed for internal peer-to-peer traffic and is a good fit for node-to-node relaying. Many node operators enable both.
Do I need a VPN as well as Tor?
Not for Monero. A VPN just moves trust from your ISP to the VPN company. It can be useful if Tor is blocked where you live, but it is not a replacement for Tor or I2P.
Does --tx-proxy hide that I run a Monero node?
No. With tx-proxy, blocks still sync over clearnet, so your ISP can still tell you run a node. It hides which transactions you originate, not the fact that you participate.