Monero is a secure, untraceable and resilient digital currency. We believe it is the successor to Bitcoin. Read why.

How to Mine Monero on Windows (2026): XMRig (CLI) + P2Pool + GUI Options

Last updated on
Conceptual illustration of CPU mining Monero with RandomX on a Windows PC
Monero uses RandomX (CPU-optimized proof-of-work). On Windows, the safest default setup is XMRig using a config.json file.

Introduction

Monero mining in 2026 is primarily CPU mining because Monero uses RandomX, a proof-of-work algorithm designed to be CPU-friendly and ASIC-resistant. That means most “GPU mining” advice for Monero is either outdated or misses the point.

This guide is Windows-focused and written so a technically curious beginner can follow it end-to-end: first the concepts, then two concrete setups: (1) XMRig + a pool (simplest) and (2) P2Pool mini (more decentralized). If you want the broader cross-platform context (CPU vs GPU, general expectations), see How to Mine Monero in 2026 – CPU Mining & the GPU Reality.

Before mining, you need a wallet address to receive payouts. If you do not already have one, start with How to use the Monero GUI wallet or (more advanced) How to create a Monero command line wallet.

Core explanation

What “mining” is in Monero (and why RandomX matters)

Mining is how new blocks are produced and how the network reaches consensus. Miners do computational work, and when a valid block is found the protocol issues a block reward according to the rules described in the official Monero mining guide.

RandomX is designed to run efficiently on general-purpose CPUs by using memory-heavy techniques and executing randomized code, making specialized hardware less effective. The trade-off is that your hashrate depends heavily on CPU architecture, memory latency, and system stability.

What a “config.json” is (and why it’s better than long command lines)

XMRig can be configured by command-line flags, but the safer Windows workflow is a configuration file (usually config.json) stored next to the miner executable. This is preferred because:

  • It reduces mistakes (you are not retyping long commands).
  • You can change one setting at a time and keep a working baseline.
  • You can keep separate configs (pool mining vs P2Pool, low-power vs full-speed).

In this guide you will create a working config file manually (and you can also compare it to the output of the XMRig configuration wizard).

Pools vs P2Pool vs Solo

There are three common ways to mine. Each has a different trust model and setup complexity. As an editorial default for Windows users: start with a reputable pool if you want the simplest setup, and consider P2Pool mini once you are comfortable and want a more decentralized approach.

Diagram comparing centralized pool mining, P2Pool mining, and solo mining for Monero
Trade-offs: trust, payout variance, complexity, and decentralization impact.

Comparison (expert view)

  • Centralized pool: easiest to set up, but you rely on a pool operator’s infrastructure and policies.
  • P2Pool: decentralized pool design (no pool custody). More moving parts (node + p2pool), but aligns strongly with decentralization goals.
  • Solo mining: most independent, but payouts are highly irregular unless you have very large hashrate.

P2Pool’s project documentation and overview are here: SChernykh/p2pool (GitHub). P2Pool also publishes the “mini” mode concept and connectivity notes at p2pool.io/mini.

Who should choose what?

Choose a centralized pool if:

  • You want the fewest steps and do not want to run a Monero node.
  • You are mining on a normal desktop and want to validate the basics first (hashrate, stability, payouts).

Choose P2Pool mini if:

  • You are willing to run a Monero node (or already do) and want a more decentralized mining model.
  • You want payouts without pool custody and prefer a “no pool operator” trust model.

Choose solo mining if:

  • You fully understand payout variance and can tolerate very long gaps between rewards.
  • You already run a reliable node and have substantial hashrate.

Further information about P2Pool can be found in our article P2Pool for Monero: How It Works, Why It Matters, and Who Should Use It.

Mining Monero on Windows using the command line (recommended)

Procedure A (simplest): XMRig + a pool using config.json

You are about to download XMRig, verify it, create a config.json, and start mining to a pool. This is the best “first success” path on Windows because it has the fewest dependencies.

Prerequisites

  • A Monero wallet address (from Monero GUI wallet or another trusted wallet)
  • Windows 10/11 (64-bit)
  • A text editor (Notepad is fine; Notepad++ is convenient)
  • Basic comfort with Command Prompt or PowerShell

Step-by-step

  1. Create a folder for mining tools.
    Example: C:\MoneroMining\ (avoid “Program Files” to reduce permissions friction).
  2. Download XMRig from an official source.
    Use either: xmrig.com/download (includes published SHA256 hashes) or the XMRig GitHub releases page.
  3. Extract the ZIP into C:\MoneroMining\xmrig\.
  4. Verify the download hash (recommended).
    On Windows, you can compare SHA256 with certutil.
cd C:\MoneroMining\xmrig certutil -hashfile xmrig-*-windows-x64.zip SHA256

Compare the output to the SHA256 shown on xmrig.com/download. If it does not match, do not run the file.

  1. Create a config file named config.json in the same folder as xmrig.exe.
  2. Paste a minimal working config (then edit the pool and wallet fields).
{ "autosave": true, "cpu": { "enabled": true, "huge-pages": true }, "donate-level": 0, "pools": [ { "url": "POOL_ADDRESS:PORT", "user": "YOUR_MONERO_WALLET_ADDRESS", "pass": "rig1", "tls": true, "keepalive": true } ] }

What these fields mean:
url is the pool endpoint (many pools publish a TLS port like 443/5555).
user is your public wallet address (never your seed).
pass is usually a worker name (or just x) depending on the pool.

  1. Run XMRig once as Administrator (recommended on Windows) so huge pages can work more reliably. You can do this by right-clicking Command Prompt → “Run as administrator”.
  2. Start mining by running XMRig. If config.json is next to xmrig.exe, XMRig will automatically load it.
cd C:\MoneroMining\xmrig .\xmrig.exe

What to expect (success indicators)

  • You should see that XMRig detected RandomX and initialized threads.
  • You should see a pool connection message and then lines indicating accepted shares.
  • Hashrate appears as a running figure (H/s) in the console.

Common problems (and fixes)

  • Windows Defender flags the miner: this is common for mining software. Only use official sources and verify hashes. If you allow it, allow only the specific folder (do not disable Defender globally).
  • No accepted shares: pool URL/port may be wrong, TLS mismatch (try "tls": false if the pool does not support TLS on that port), or firewall issues.
  • Very low hashrate: you may be thermally throttling, running on battery mode, or competing with heavy background tasks. Also ensure huge pages are working (XMRig will usually report it).

Safety notes

  • Never download “bundled miners” from random sites. Stick to official sources and verify hashes. If you want general hygiene guidance, see Avoiding sites with poor reputation.
  • Never paste your 25-word seed into any mining tool. Mining only needs a public address.
  • Monitor temperatures; sustained CPU mining is a long-running load.

If you want a rough estimate of expected output, use the site’s Monero mining calculator (but treat calculators as estimates, not guarantees).

Procedure B (more decentralized): P2Pool mini on Windows (node + p2pool + xmrig)

You are about to run a local Monero node (monerod), run P2Pool in “mini” mode, and point XMRig at it. This aligns well with Monero’s decentralization goals because there is no pool operator custody. The steps below are adapted from the P2Pool project’s Windows instructions.

Prerequisites

  • Windows 10/11 (64-bit)
  • Enough disk space for a node (or a plan for pruning). For node basics, see How to Run a Monero Node.
  • A Monero wallet address (payouts go directly to your wallet)

Step-by-step

  1. Create a base folder, e.g. C:\MoneroMining\p2pool\.
  2. Download P2Pool binaries from the official project: SChernykh/p2pool (use the releases/binaries referenced there).
  3. Download XMRig from an official source: xmrig.com/download or XMRig GitHub releases.
  4. Download Monero CLI (for monerod) from the official Monero downloads page: getmonero.org downloads.
  5. Extract everything so you end up with something like:
    • C:\MoneroMining\p2pool\p2pool.exe
    • C:\MoneroMining\p2pool\xmrig.exe
    • C:\MoneroMining\p2pool\Monero\monerod.exe (copy Monero CLI binaries into a Monero subfolder)
  6. Unblock SmartScreen “downloaded from the internet” friction (if needed). If Windows blocks execution, open file Properties → “Unblock”, or run PowerShell as Admin and unblock the folder.
# PowerShell (Run as Administrator) Get-ChildItem C:\MoneroMining\p2pool -Recurse | Unblock-File
  1. Start the Monero node with ZMQ enabled (required for P2Pool). This command format is documented by the P2Pool project (Windows section).
cd C:\MoneroMining\p2pool .\Monero\monerod.exe --zmq-pub tcp://127.0.0.1:18083 --out-peers 32 --in-peers 64 --enforce-dns-checkpointing --enable-dns-blocklist
  1. Wait for the node to sync. This can take hours on first sync. If you need help speeding up initial sync, see How to speed up initial blockchain sync.
  2. Start P2Pool in mini mode and set your wallet for payouts.
cd C:\MoneroMining\p2pool .\p2pool.exe --host 127.0.0.1 --wallet YOUR_MONERO_WALLET_ADDRESS --mini
  1. Wait for P2Pool to finish its initial sync (typically minutes once monerod is synced).
  2. Start XMRig and point it to your local P2Pool stratum port.
cd C:\MoneroMining\p2pool .\xmrig.exe -o 127.0.0.1:3333
  1. Confirm it’s working. You should see XMRig connect locally and begin reporting accepted shares. P2Pool will also log share activity.

What to expect (success indicators)

  • monerod shows it is synchronized (or close) and maintains peers.
  • p2pool shows it is synchronized and listening.
  • xmrig connects to 127.0.0.1:3333 and reports accepted shares.

Common problems (and fixes)

  • P2Pool says it cannot connect to monerod: ensure monerod is running and includes --zmq-pub tcp://127.0.0.1:18083.
  • Firewall prompts: allow private network access for monerod/p2pool when Windows asks, otherwise peers may be limited.
  • “It runs but payouts seem slow”: P2Pool payouts depend on shares in the PPLNS window and network luck; “mini” is designed to help smaller miners with payout frequency trade-offs.

Safety notes

  • Keep everything in a dedicated folder and avoid random “all-in-one” miners from unknown sites.
  • Never expose your wallet seed; P2Pool needs only your public address.
  • Running a node is real infrastructure: keep Windows updated and avoid running unknown software alongside your node/miner.

For additional official context and ongoing documentation, see: P2Pool documentation (GitHub) and the connectivity notes at p2pool.io.

GUI mining on Windows (when it makes sense)

A GUI can be useful if you want fewer knobs and a lower chance of typos. However, many “easy miners” are closed-source or bundle unwanted software. The safer pattern is: choose a GUI that simply orchestrates well-known open-source components (like XMRig and P2Pool).

In the P2Pool ecosystem, one example project that aims to provide a GUI for P2Pool + XMRig is mentioned in the P2Pool documentation: see “GUI for P2Pool” in the P2Pool README. Treat GUIs as convenience wrappers; verify what they run underneath.

When you are learning, the command-line approach in this guide is recommended because it makes each dependency and trust assumption explicit.

FAQs

Is GPU mining Monero worth it in 2026?

Usually not. Monero’s proof-of-work is RandomX, which is intentionally optimized for CPUs and designed to make specialized hardware less advantageous. While it is technically possible to involve GPUs in some setups, most users see worse efficiency (hashes per watt) compared to straightforward CPU mining. A common misunderstanding is to assume “GPU always beats CPU” because that is true for other algorithms; RandomX is specifically designed to break that assumption.

What exactly is an “accepted share” and why does it matter?

A share is proof to the pool (or P2Pool) that your miner is doing valid work. “Accepted” means the pool validated it and credited it toward payouts. Shares are not blocks; they are smaller units of work used for fair accounting. A common misunderstanding is thinking “no blocks found” means “not mining”—most miners will never personally find a block, but they can still earn payouts through shares in pooled/P2Pool mining.

Do I need to run XMRig as Administrator on Windows?

Not strictly, but it often helps. One of the biggest reasons is enabling “huge pages,” which can improve RandomX performance and reduce memory overhead. Running once as Administrator is also a practical troubleshooting step if you see messages indicating huge pages could not be enabled. A common misunderstanding is that Administrator mode is required “for mining”; it’s mainly about performance and OS-level memory permissions, not about network access.

What’s the safest default: pool mining or P2Pool?

For a first-time Windows setup, a reputable pool is the simplest path because it does not require running a full node. Once you’re comfortable, P2Pool mini is often the better long-term choice if your priority is decentralization and avoiding pool custody. The key trade-off is complexity: P2Pool adds monerod + p2pool services you need to keep stable and synced. A common misunderstanding is that P2Pool is “just another pool”; it is a decentralized pool design with different trust assumptions.

Can I use a remote node with P2Pool to avoid syncing the blockchain?

In practice, P2Pool is typically run with a local node for reliability and performance, because your P2Pool instance needs consistent access to node data and benefits from good connectivity. While there are advanced configurations (including different node connectivity modes), beginners should treat “local monerod” as the default to avoid hard-to-debug issues. A common misunderstanding is thinking P2Pool is “lightweight like a wallet”; it is infrastructure and behaves more like running a service. If you want a remote-node experience, start with pooled mining first, then graduate to a local node + P2Pool.

Conclusion

In 2026, mining Monero on Windows is mainly about running a stable CPU miner on RandomX with clear trust assumptions. The safest learning path is: start with XMRig + a pool using a config.json, verify you see accepted shares, then consider P2Pool mini if you want a more decentralized setup.

Keep expectations realistic: mining is infrastructure work, and stability, verification, and operational safety matter more than aggressive “tuning.”


If you have feedback, corrections or suggestions for improving this guide, please send them to hello@monero.how. Information on this site is provided for educational purposes only and does not constitute investment advice. Use at your own risk.

Follow us
Exchange instantly
Sponsor
Latest Price
Sponsor
Monero.how Tutorials
Why Monero vs Bitcoin
Monero ELI5 (Explain like I'm five) - a super simple explanation of how Monero works
How Monero's privacy works
Monero Infographic
How long transactions take
Transaction fees
Glossary of the most important Monero terms
A low-level explanation of the mechanics of Monero vs Bitcoin in plain English
How to use the Monero GUI wallet
How to create a Monero command line wallet
How to speed up initial blockchain sync
How to send and receive Monero on the command line
How to prove you've made a payment
How to restore a command line wallet from your 25 word seed
How to verify your funds with a private view key
How to buy Monero
How to buy Monero via Coinbase
How to Buy Monero Using LocalMonero
How to Buy Monero Using Binance
Set up a Monero wallet on a USB pendrive linux computer using a remote daemon
How to Mine Monero in 2026 – CPU Mining & the GPU Reality
How to Mine Monero on Windows (2026): XMRig (CLI) + P2Pool + GUI Options
Monero mining calculator
P2Pool for Monero: How It Works, Mini, and Payouts
How to run a Monero Node
Configure OpenAlias to more easily share your Monero address
How to Safely Hold Monero in Cold Storage
Create a paper wallet for secure offline storage
Display a Monero ticker on your Mac menu bar
Avoiding Google ad attacks
Trusted and untrusted sites
Send feedback, corrections or suggestions to hellomonero.how
Donations for running costs appreciated at 86oPE889B4qeJn14jkhQkPFnwRUV3Upd8TZjbU89JdWpH7NbECNHXMG67vSLCKZt1nTWK4v445cndXLNtw24WzmNGYs7WeH
Thanks to Monero developers and community members that answered questions that contributed to the content in this site: jollymort, hyc, moneromoo, smooth, jwinterm, debruyne, fluffypony, pero, needmoney90, ferretinjapan, idunk, saddam, wolf0, daveyjones, snipa, gingeropolous, markos, othe, m5m400, luigi1111, kenshi84
Disclaimer: This site contains opinion for informational purposes only and does not consitute investment advice. Information may contain errors and omissions. Use solely at your own risk. Services listed here are run by third parties and are not vetted by this site. The authors of this site and/or the authors of articles linked to from this site may have financial investments that may bias their opinions, including ownership of Monero currency. Always do your own research, form your own opinions, and never take risks with money or trust third parties without verifying their credibility. Remember to take your computer security seriously and never use a computer or phone that is at risk of infection by untrusted software that may contain malware or viruses. © Copyright 2025.