A practical, step-by-step guide to choosing a wallet, configuring XMRig, understanding payouts, and connecting your first CPU miner.
So you want to be a miner? Before you submit your first share, there are a few things worth understanding. This guide is written for newcomers and keeps the details that are easy to miss: wallet safety, trusted downloads, RandomX memory, worker names, pool difficulty, encrypted connections, and how pool payouts work. If anything is unclear, our support page is the right place to ask.
Before you start mining, create a wallet whose recovery seed and private keys you control. Download wallet software only from its official website, write the recovery seed down offline, and never paste that seed into a website or send it to support. Good starting points are:
Once the wallet is backed up, copy a receive address from inside the app. A primary Monero address is 95 characters and usually begins with 4; a subaddress is also suitable and usually begins with 8. This guide uses YOUR_XMR_WALLET_ADDRESS as the placeholder. Always copy and paste the address, then compare its first and last characters before starting the miner.
For mining directly to an exchange, use only the exact XMR deposit address currently shown by that exchange and read the exchange section below. Deposit policies can change without notice.
XMRig is the actively maintained open-source miner used in this guide. RandomX is designed for general-purpose CPUs, so start with CPU mining; GPU backends exist, but GPUs are usually not the efficient choice for Monero.
Download XMRig only from the project's official GitHub releases page. Mining binaries are frequently flagged by antivirus products because malware sometimes installs miners without permission. Treat a warning as a reason to verify the download source and release details—not as something to dismiss blindly. Never use a repacked binary from a video description, forum attachment, or advertisement.
XMRig recommends a JSON configuration file because it exposes the full set of options and is easier to revisit than a long command. Start with this small configuration, replace the wallet placeholder, and give each machine a short, unique rig-id.
{
"autosave": true,
"cpu": {
"enabled": true,
"huge-pages": true,
"yield": true
},
"opencl": false,
"cuda": false,
"pools": [
{
"coin": "monero",
"url": "xmrpool.eu:3333",
"user": "YOUR_XMR_WALLET_ADDRESS",
"pass": "x",
"rig-id": "home_pc",
"keepalive": true,
"tls": true
}
]
}
Save the file as config.json beside the XMRig executable, then start it from a terminal:
xmrig -c config.json
For a quick first connection without a config file, use:
xmrig --coin monero -o xmrpool.eu:3333 --tls -u YOUR_XMR_WALLET_ADDRESS -p x --rig-id=home_pc
After connecting, XMRig should report a new job and then accepted shares. An accepted share proves the pool received your work; it is not a block and does not create an immediate payment. Use your wallet address on the pool home page to watch hashrate, workers, accepted work, and pending balance.
RandomX is Monero's CPU-oriented proof-of-work algorithm. It uses random code execution and memory-hard techniques to reduce the advantage of specialized hardware. A modern CPU with plenty of cache and fast memory is generally a better starting point than a GPU.
mode: auto unless you know why you need another mode.yield: true, verify cooling, and measure electricity cost before leaving a machine unattended.See the official XMRig RandomX optimization guide and huge-pages guide when you are ready to tune. Keep coin set to monero and let the pool negotiate the algorithm.
Once accepted shares appear, you are contributing work—but mining income is variable and a share is not an immediate coin payment.
Enter your wallet address on the home page to see your pending balance and worker activity. The pending balance reflects your current credited pool rewards. When the pool finds a block and the block is mature, the pool then calculates the shares that each miner is going to receive and updates their 'Pending Balance' according to the work they submitted (amount of hashes). Over time, greater hashrate normally submits more valid work, but luck and the pool's block-finding interval make short periods noisy.
When you reach the applicable minimum payment threshold, the pool will automatically send your coins:
Payments are processed on a schedule, so crossing the threshold does not produce an immediate transaction. Confirm the current threshold shown by the pool before choosing a destination wallet.
XMRPool supports fixed difficulty and worker names. Start with automatic difficulty; use these options only when you have a reason to override it or want to separate several machines in the dashboard.
These examples use YOUR_XMR_WALLET_ADDRESS as the wallet placeholder:
YOUR_XMR_WALLET_ADDRESS.25000
"rig-id": "my_rig1"
"user": "YOUR_XMR_WALLET_ADDRESS.25000", "rig-id": "my_rig1"
YOUR_XMR_WALLET_ADDRESS
"user": "YOUR_XMR_WALLET_ADDRESS.25000", "rig-id": "my_rig1"
Remember that you are not alone. Start with the official Monero community directory, visit r/Monero for general discussion, or use r/MoneroMining for mining-specific questions. For account, connection, or payout questions about this pool, use our support page.
Open-source CPU miner with optional AMD OpenCL and NVIDIA CUDA backends. Its automatic CPU configuration is the best starting point for most newcomers.
"rig-id": "my_worker" in the pool object or pass --rig-id=my_worker on the command line. Keep the wallet address in user unchanged. XMRPool also accepts the legacy YOUR_XMR_WALLET_ADDRESS+my_worker suffix for miners that do not support a dedicated rig identifier. If both are supplied, the dedicated rig identifier takes precedence.
"tls": true in the pool object. For example:
xmrig --coin monero -o xmrpool.eu:3333 --tls -u YOUR_XMR_WALLET_ADDRESS -p x --rig-id=home_pc
If a connection fails, confirm that the port is current in the connection list below and that --tls matches the miner configuration; do not silently fall back to an unencrypted connection.
The mining difficulty will automatically adjust on all the ports. You can configure a fixed difficulty if you like. To mine with a fixed difficulty level, simply put YOUR_XMR_WALLET_ADDRESS.difficulty in your miner's configuration. For example YOUR_XMR_WALLET_ADDRESS.75000.