XMRig Solo Mining: Direct Node Connection for Monero 2026

Last summer I spent three days debugging why my XMRig solo mining setup kept rejecting shares. The issue? A single incorrect parameter in config.json that broke the direct node connection. That’s when I learned that solo mining Monero isn’t plug-and-play — but once you understand the configuration, it’s actually pretty straightforward.

XMRig is the standard CPU miner for Monero’s RandomX algorithm. While most miners point it at pools, configuring XMRig for solo mining directly to your own node gives you complete control. No pool fees. No middleman. Just you, your hardware, and the blockchain.

Let me break this down from the ground up.

Why XMRig Solo Mining Configuration Matters for Monero

Monero runs on the RandomX algorithm — designed specifically for CPUs. This makes it one of the few remaining coins where solo mining without warehouse-scale operations still makes mathematical sense. Not profitable sense necessarily, but the probability math works differently than with Bitcoin.

Here’s what the numbers say: Monero network hashrate sits around 2.5 GH/s as of early 2026. A high-end Ryzen 9 7950X generates roughly 18 KH/s. Quick math: you’re contributing 0.00072% of the network hashrate. That translates to finding a block approximately every 193 days on average.

The key word is “average.” Mining follows Poisson distribution — you might hit a block in two weeks, or wait 400 days. That’s the lottery aspect. But unlike Bitcoin solo mining where you need millions in ASIC hardware to have realistic odds, Monero solo mining can work with equipment you might already own.

The direct node connection is critical for solo mining. When you connect XMRig straight to your Monero daemon (monerod), you eliminate all intermediaries. Every hash you compute goes directly into attempting to solve the block. If you find one, the block reward (currently 0.6 XMR plus transaction fees) goes entirely to your wallet.

No 1-2% pool fees eating your potential reward. No payout thresholds. No trust required in pool operators.

Setting Up Your Monero Node for XMRig Solo Mining

Before configuring XMRig, you need a fully synchronized Monero node. This is non-negotiable for true solo mining. The node validates the blockchain, receives new blocks from the network, and allows XMRig to submit block solutions.

Download the latest Monero CLI from getmonero.org. The GUI wallet includes the daemon, but for mining I prefer the command-line version — lighter resource usage, easier to monitor.

Extract the files and run monerod with these parameters:

./monerod --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18081 --confirm-external-bind --rpc-login username:password --disable-rpc-ban

Let me explain each flag:

  • –rpc-bind-ip 127.0.0.1: Binds RPC to localhost only. Security measure — you don’t want external connections to your node’s RPC interface.
  • –rpc-bind-port 18081: Default Monero RPC port. XMRig will connect here.
  • –confirm-external-bind: Required when using –rpc-bind-ip.
  • –rpc-login username:password: Sets authentication. Choose a strong password — this protects your node from unauthorized mining attempts.
  • –disable-rpc-ban: Prevents the daemon from banning localhost connections after repeated requests. Essential for mining.

Initial sync takes 24-48 hours depending on your connection. The Monero blockchain is roughly 170 GB as of 2026. You need a decent SSD — mechanical drives will bottleneck sync speed badly.

While syncing, the daemon won’t accept mining connections. You can check sync status with status command in monerod. Wait until it shows “Synchronized” before proceeding.

One thing I learned the hard way: make sure your node stays synchronized. If it falls behind even a few blocks, XMRig will mine on stale data. Any block you find on outdated information gets rejected by the network. I once “found” a block that turned out to be orphaned because my node was 3 blocks behind. That hurt.

XMRig Configuration File: Solo Mining Parameters

XMRig uses config.json for all settings. Download XMRig from xmrig.com/download — always get it from the official source. Third-party builds sometimes include malware or dev fees higher than the standard 1%.

The default config.json won’t work for solo mining. You need to modify the pools section to point directly at your node.

Here’s a working XMRig solo mining configuration for Monero:

{
    "autosave": true,
    "cpu": {
        "enabled": true,
        "huge-pages": true,
        "hw-aes": null,
        "priority": null,
        "memory-pool": false,
        "yield": true,
        "max-threads-hint": 100,
        "asm": true,
        "argon2-impl": null,
        "astrobwt-max-size": 550,
        "astrobwt-avx2": false,
        "cn/0": false,
        "cn-lite/0": false
    },
    "opencl": {
        "enabled": false
    },
    "cuda": {
        "enabled": false
    },
    "pools": [
        {
            "algo": "rx/0",
            "coin": "monero",
            "url": "127.0.0.1:18081",
            "user": "YOUR_MONERO_WALLET_ADDRESS",
            "pass": "x",
            "daemon": true,
            "self-select": "127.0.0.1:18081",
            "submit-to-origin": true
        }
    ],
    "http": {
        "enabled": true,
        "host": "127.0.0.1",
        "port": 16000,
        "access-token": null,
        "restricted": true
    }
}

Critical parameters for solo mining:

daemon: true — This tells XMRig to connect to a Monero daemon instead of a pool. Without this, the connection fails.

url: “127.0.0.1:18081” — Your node’s RPC address and port. If you changed the port in monerod, update it here.

user: “YOUR_MONERO_WALLET_ADDRESS” — Replace with your actual Monero wallet address. This is where block rewards get sent if you solve a block.

self-select: “127.0.0.1:18081” — Enables self-select mode where XMRig builds its own block templates. Essential for solo mining.

submit-to-origin: true — Ensures solved blocks submit directly to your node, not through any external service.

If you set RPC authentication on your node (which you should), modify the config:

"url": "127.0.0.1:18081",
"user": "YOUR_MONERO_WALLET_ADDRESS",
"pass": "x",
"daemon": true,
"self-select": "127.0.0.1:18081",
"submit-to-origin": true,
"daemon-poll-interval": 1000,
"daemon-job-timeout": 15000,
"daemon-zmq-port": -1,
"rpc-user": "username",
"rpc-password": "password"

The rpc-user and rpc-password must match what you set in monerod. Otherwise XMRig gets “401 Unauthorized” errors and can’t connect.

CPU Optimization for RandomX Mining

RandomX is memory-intensive. You need roughly 256 MB of L3 cache per mining thread for optimal performance. This is why high core-count CPUs with large cache dominate Monero mining.

Best CPUs for XMRig solo mining in 2026:

AMD Ryzen 9 7950X

16 cores, 64 MB L3 cache, approximately 18-19 KH/s at 140W. Currently my primary mining CPU — runs stable and delivers solid hashrate per watt.

View on Amazon

AMD Ryzen 9 5950X

16 cores, 64 MB L3 cache, roughly 16-17 KH/s at 105W. Previous generation but often better value on used market. Really practical for home mining.

View on Amazon

Intel Core i9-13900K

24 cores, 36 MB L3 cache, around 15-16 KH/s. Runs hotter than AMD equivalents, but good availability.

View on Amazon

For dedicated mining rigs, check out the AMD Threadripper RandomX setup guide — those 64-core monsters can push 50+ KH/s but require serious power infrastructure.

In config.json, the “huge-pages”: true setting is critical for performance. Huge pages reduce TLB misses and can boost hashrate 10-20%. On Linux, enable them with:

sudo sysctl -w vm.nr_hugepages=1280

On Windows, run XMRig as administrator to allocate huge pages automatically. If it fails, you’ll see warning messages in the console.

The max-threads-hint parameter controls how many threads mine. Set it to 100 for maximum performance, or lower it if you need CPU headroom for other tasks. I run mine at 90 during the day (leaves system responsive) and 100 overnight.

Monitoring Your Solo Mining Operation

XMRig includes a built-in HTTP API for monitoring. In config.json:

"http": {
    "enabled": true,
    "host": "127.0.0.1",
    "port": 16000,
    "access-token": null,
    "restricted": true
}

Point your browser to http://127.0.0.1:16000 to see real-time stats: hashrate, accepted shares, temperature, power consumption estimates.

For command-line monitoring, XMRig prints stats every 60 seconds:

[2026-01-15 14:32:17.458]  miner    speed 10s/60s/15m 18245.2 18201.4 18189.6 H/s max 18312.5 H/s
[2026-01-15 14:32:17.458]  cpu      18201.4 H/s (16) 140W

The key metrics: current hashrate (18.2 KH/s in this example), power draw (140W), and thread count (16 cores fully utilized).

Your node’s monerod console shows when XMRig connects successfully:

2026-01-15 14:30:05.123 I Received block template from daemon

If you don’t see this, check your config.json for typos in the RPC settings.

Share submissions appear in XMRig as “accepted” messages. In solo mining, you’re submitting potential block solutions, not pool shares. Most get rejected — that’s normal. You’re looking for the one share that meets the network difficulty threshold.

When (if) you find a block, XMRig displays:

[2026-01-15 15:47:32.891]  miner    BLOCK FOUND

Check your wallet approximately 20 minutes later. Monero requires 60 confirmations before the reward unlocks, which takes about 2 hours at Monero’s 2-minute block time.

The Math: Solo Mining Profitability and Expected Value

Here’s where I’ll be completely honest with you: solo mining Monero with consumer hardware is not profitable in the traditional sense. It’s a lottery with better odds than Bitcoin, but still a lottery.

Let’s run the numbers for a Ryzen 9 7950X setup:

  • Hashrate: 18 KH/s
  • Power consumption: 140W
  • Network hashrate: 2.5 GH/s (2,500,000 KH/s)
  • Block reward: 0.6 XMR
  • Block time: 2 minutes (720 blocks/day)

Your percentage of network hashrate: 18 / 2,500,000 = 0.00072%

Expected blocks per day: 720 × 0.00072% = 0.00518 blocks/day

Expected time to block: 1 / 0.00518 = 193 days

If Monero trades at $342.52, that block is worth 0.6 × $342.52 in XMR value.

Electricity cost over 193 days: 140W × 24h × 193 days × $0.12/kWh = $78.14

See the problem? You’re spending $78 in electricity for an expected reward that might take 6 months to materialize. And that’s assuming average luck. With bad luck, you could run for a year without finding anything.

The electricity cost warning is real. At $0.12/kWh (US average), you’re paying $0.40 per day in power. Over a year, that’s $146 in electricity. Your expected return is roughly 1.89 blocks/year × 0.6 XMR = 1.134 XMR. At current prices, you’d need XMR above $129 just to break even on power costs.

This doesn’t account for hardware depreciation, cooling costs, or the opportunity cost of running the equipment.

So why do it? Two reasons:

1. You have very cheap electricity. Below $0.05/kWh, the math shifts toward breakeven territory. Some solo miners have solar setups or live in areas with subsidized power.

2. You enjoy the lottery aspect. Some miners view it as entertainment — the thrill of potentially finding a full block makes the negative expected value acceptable. That’s a personal decision, not a financial one.

If you want more favorable odds with pooled variance reduction, check the P2Pool guide — it combines pool-like consistent payouts with solo-mining philosophy.

Troubleshooting Common XMRig Solo Mining Issues

When I first configured XMRig for solo mining, I hit every possible error. Here’s what I learned:

Problem: “socket error”

XMRig can’t connect to your node. Check:

  • Is monerod actually running? Verify with ps aux | grep monerod on Linux or Task Manager on Windows.
  • Is the RPC port open? Test with curl http://127.0.0.1:18081/json_rpc — should return JSON data.
  • Did you set RPC authentication? If yes, add rpc-user and rpc-password to config.json.
  • Firewall blocking localhost connections? Unlikely but possible on some corporate networks.

Problem: “algorithm not known”

Your algo parameter is wrong. For Monero, it must be “rx/0” exactly. Case-sensitive. Check for typos in config.json.

Problem: “low difficulty share rejected”

This happens in solo mining constantly. You’re submitting shares that meet XMRig’s internal difficulty but not the network’s block difficulty. Completely normal. You only care about shares that meet network difficulty — those become blocks.

Problem: hashrate drops after a few minutes

Thermal throttling. Your CPU is overheating and reducing clock speeds to protect itself. Solutions:

  • Better cooling: upgrade to a tower cooler or AIO liquid cooler
  • Undervolting: reduce CPU voltage while maintaining clock speeds (requires BIOS tweaking)
  • Lower max-threads-hint to reduce heat generation

I run my 7950X with a Noctua NH-D15 cooler and it stays under 75°C even at 100% load. Stock coolers aren’t sufficient for 24/7 mining.

Problem: huge pages allocation failed

On Linux: sudo sysctl -w vm.nr_hugepages=1280 then restart XMRig.

On Windows: Run XMRig as administrator. If that fails, open Local Security Policy → User Rights Assignment → Lock pages in memory → Add your user account → Reboot.

Huge pages typically boost hashrate 10-15%. Worth the configuration effort.

Alternative Solo Mining Approaches for Better Odds

True solo mining isn’t the only way to play the lottery. If you want better variance reduction while maintaining the solo spirit, consider these options:

P2Pool: Decentralized pool for Monero. You run a local pool node that shares work with other miners. Payouts scale with your hashrate, but you’re technically still mining to your own node. See the P2Pool vs true solo comparison for details.

Multi-coin strategy: Some solo miners split hashrate across multiple RandomX coins. Monero has the highest difficulty, but smaller coins like Wownero or Dero offer more frequent block finds at lower value per block. Diversifies your lottery tickets.

Seasonal mining: Mine when electricity is cheaper (winter in cold climates where the heat offsets heating costs). Stop during expensive months. This improves your effective cost per hash.

If you want to explore other algorithms, the profitable solo mining coins guide covers GPU-based options with different odds profiles.

For internet requirements — Monero solo mining needs very little bandwidth but low latency matters. The bandwidth and latency guide explains why ping matters more than speed.

FAQ: XMRig Solo Mining Configuration

Can I solo mine Monero with a laptop CPU?

Technically yes, but I wouldn’t recommend it. Laptop CPUs throttle heavily under sustained load, reducing your effective hashrate. A typical laptop i7 might achieve 3-4 KH/s before thermal limits kick in. At that hashrate, you’re looking at 2+ years average time to find a block. Laptops also aren’t designed for 24/7 operation — you’ll wear out the cooling system.

Do I need to keep my wallet open while mining?

No. XMRig sends block rewards directly to the wallet address in your config.json. The wallet doesn’t need to be running. Block rewards appear in your wallet once you sync it after finding a block. I usually check mine every few days just to verify the node is still synchronized.

What happens if my node goes offline while mining?

XMRig loses connection and stops mining until the node comes back. Any work in progress is lost — RandomX mining doesn’t have persistent state like some algorithms. When the node reconnects, XMRig requests a new block template and starts fresh. This is why node stability matters. I run monerod as a systemd service on Linux so it auto-restarts if it crashes.

Can I use XMRig to mine to a pool and then switch to solo?

Yes. Just change the pool configuration in config.json from pool URL to your daemon settings. You can even configure multiple pools — XMRig will failover between them. Some miners run pool mining as primary and solo mining as backup, or vice versa. Personally I prefer dedicated configs to avoid confusion.

How do I know if I actually found a block?

XMRig displays “BLOCK FOUND” in bright text. Your monerod console shows “Block successfully submitted to network”. Check your wallet after 20 minutes — you should see an incoming transaction for the block reward (0.6 XMR as of 2026). The transaction takes about 2 hours to unlock (60 confirmations). If you don’t see it after 2 hours, something went wrong — check monerod logs for orphan block messages.

Solo mining Monero with XMRig is one of the most accessible forms of true solo mining in 2026. The barrier to entry is low — any modern CPU can participate. The math is transparent: you know exactly what your odds are based on network hashrate. And when you find a block, that entire 0.6 XMR is yours.

Just remember the electricity cost reality. I’ve been solo mining for two years now, and I haven’t hit a block yet. My expected time was 193 days based on hashrate, but variance doesn’t care about expectations. That’s the lottery aspect.

If you’re mining for profit, point your hashrate at a pool. If you’re mining for the thrill of potentially solving an entire block yourself — this guide gives you everything you need to configure XMRig correctly. The rest is probability and patience.