🧅Running Behind Tor

One config flag hides your real IP from every peer on the network. Combined with Dandelion++, the origin of your transactions is structurally invisible.

Why Tor on a privacy chain

Stealth addresses, ring mixing, and the two-pool model all defend against on-chain analysis. They don't help if your node's IP is logged by every peer when you broadcast a TX. Tor closes that gap by tunneling all P2P traffic through the Tor anonymity network.

Layered defense

Step-by-step

  1. Install Tor

    # Debian / Ubuntu / Raspberry Pi OS
    $ sudo apt update && sudo apt install tor
    
    # macOS
    $ brew install tor
    
    # Windows: download Tor Expert Bundle from torproject.org
  2. Make sure Tor is running on port 9050

    $ sudo systemctl enable --now tor
    $ ss -lnt | grep 9050
    LISTEN  0  4096  127.0.0.1:9050  0.0.0.0:*
  3. Edit your MaryJaneCoin.conf

    Path: ~/.MaryJaneCoin/MaryJaneCoin.conf on Linux/macOS or %APPDATA%\MaryJaneCoin\MaryJaneCoin.conf on Windows.

    # Route all P2P traffic through Tor
    proxy=127.0.0.1:9050
    onlynet=ipv4
    listen=0
    discover=0
    
    # Optional: only connect to onion seeds
    # onlynet=onion
  4. Restart the daemon

    $ MaryJaneCoind stop
    $ MaryJaneCoind -daemon
  5. Verify Tor is in use

    $ MaryJaneCoind getnetworkinfo | grep -A2 networks
    # look for: "name": "ipv4", "proxy": "127.0.0.1:9050"
    
    $ MaryJaneCoind getpeerinfo | head -30
    # external addresses should be onion or your VPN exit
  6. Confirm DNS is also tunneled

    $ MaryJaneCoind getnetworkinfo | grep -i nameproxy
    # nameproxy should equal proxy — DNS leaks defeat the whole point
Seed nodes vs staking nodes The seed nodes (seeds.maryjanecoin.net) stay non-Tor on purpose so new wallets can find peers. All nodes that hold funds — yours — should be behind Tor.
Don't reuse the daemon's wallet over the regular internet Once you've configured Tor, never start the daemon without it — that one accidental boot leaks your IP to every peer that connects in the first 60 seconds.