Mining Monero with XMRig: the CPU mining guide

Practical guide · October 2026 · not financial advice. Earnings figures below are estimates — check current network hashrate and your electricity price.

Why Monero is still CPU-mineable

Monero's proof-of-work algorithm, RandomX, was designed to favor general-purpose CPUs over ASICs and GPUs. No special hardware lottery: a modern desktop or even a decent laptop can hash. That design choice is deliberate — it keeps mining decentralized and lets anyone contribute to network security with hardware they already own.

The honest economics first

Read this before you start: a single CPU will not make you rich. With typical desktop hardware you're looking at a small fraction of an XMR per month (estimate — depends on your hashrate, network difficulty, and XMR price), and after electricity costs the profit is often thin or negative. People mine XMR for three reasons: supporting the network they believe in, acquiring no-KYC coins with zero counterparty risk, and the hobby of it. If your goal is maximum XMR per dollar, buying or swapping (see our BTC → XMR guide) almost always wins. If your goal is censorship-resistant coins earned by your own machine, mining is unmatched.

Pool vs P2Pool vs solo

Our recommendation: start on P2Pool if you can follow the setup, otherwise a reputable centralized pool. Avoid any pool approaching a large share of network hashrate — decentralization is the point.

Step-by-step XMRig setup

  1. Get a Monero address

    Create a wallet with Cake Wallet or Feather and copy your primary address — pool payouts go here.

  2. Download XMRig from the official source

    Get the latest release from the XMRig GitHub repository (xmrig/xmrig). Verify the release hashes/signatures published there. Never download miners from random mirrors — fake "XMRig" builds bundled with malware are a classic.

  3. Point it at a pool

    Run XMRig with your pool's address, your XMR address as the username, and a worker name. Example for a generic pool:

    xmrig -o pool.example.com:3333 -u YOUR_XMR_ADDRESS -p worker1

    Replace the pool address with your chosen pool's real hostname and port (listed on the pool's own site). For P2Pool, follow the P2Pool setup docs — you run a small P2Pool node locally and point XMRig at it.

  4. Let it run and watch

    XMRig prints your hashrate in H/s. Expect the first minutes to be slow while RandomX builds its dataset (~2–3 GB of RAM). Payouts appear in your wallet once you pass the pool's minimum threshold.

Tuning and staying safe