How to mine Monero solo with its GUI wallet or pooled using XMR-Stak


If you’ve been in the crypto scene long enough, chances are you’ve heard of a very unique and popular coin called Monero (previously known as Bitmonero).

Monero (XMR) is a decentralized, scalable cryptocurrency with the well-deserved reputation of providing complete anonymity. Monero achieves its bulletproof privacy through the use of stealth addresses, ring signatures, and RingCT. Monero is based on the CryptoNote protocol, and was launched in 2014. It is also based on a completely original codebase. As a matter of fact, the term “altcoin” doesn’t quite apply to it for that reason; it’s source code hasn’t been forked from Bitcoin or any other cryptocurrency. Monero is more or less its own unique project.

Why Mine Monero?

As amazing as Monero is, there are many other coins one could mine as well. However, Monero is an excellent choice for a couple of reasons.

First of all, it runs exceptionally well on AMD hardware. Not that Nvidia cards have a hard time earning profitability either, but AMD cards tend to see better hash rates on Monero than with other cryptocurrencies.

Secondly, Monero’s CryptoNight algorithm is CPU-optimized. Most other coins, on the other hand, are unprofitable to CPU mine.

Lastly, Monero is an incredibly popular coin. No other cryptocurrency has come near to offering the level of privacy that millions of people worldwide have come to enjoy from Monero.

How to solo-mine Monero with its GUI wallet

Although not the most profitable, solo-mining Monero is preferred by many enthusiasts for a couple of reasons.

Benefits to solo mining

First of all, solo-mining does a lot to strengthen the Monero network. By mining on the Monero network without joining a pool, you are effectively contributing to the network’s decentralized nature by pitting your hash rate against that of the rest of the network’s. Whereas if you join a mining pool, you are contributing to that pool’s overall hashrate, which could allow that mining pool to gain more influence over the network, therefore making the network more centralized.

For example, Vertcoin has been having huge issues with a mining pool called “Coinotron” controlling over 51% of the network. This gives Coinotron the malicious ability to basically create a new chain, while double-spending in the process. Another coin, ZCash, has faced a similar dilemma. Many solo-miners feel a strong sense of pride in knowing they are playing a role in keeping Monero’s network strong and healthy.

Set it up

Setting up solo-mining is also incredibly easy, as the functionality to do so is built directly into Monero’s official GUI and CLI wallets.

If you are successful in finding and mining a block before the rest of the network, you will receive that block’s entire reward, instead of getting a small bit of the reward as a payout, like you would receive from a mining pool.

As one might expect, however, solo-mining is far less profitable. The chances of a solo miner actually finding and mining a block before the rest of the network is tremendously slim, so one is more likely to end up simply wasting electricity rather than striking gold. However, as I’ve said, solo-mining Monero can be both fun and fulfilling.

Solo-mining Monero is quite easy. All you need to do is download the official Monero GUI wallet. Fortunately, the official Monero wallet works for all major operating systems. After generating a seed and address, you’ll want to click on the Advanced tab, then on Mining.

Official Monero GUI Wallet.

From here, you have the ability to change the number of CPU threads (cores) to mine with, as well as the option to enable background mining. The more cores you enable, the more hashrate you will be contributing. Be sure to have sufficient cooling if you plan to enable mining on all of your processor’s cores.

Also be sure to not enable more cores than the amount your processor actually has, or the wallet may begin to act unexpectedly. Background mining allows your computer to automatically begin mining when it detects that your computer is standing idle. But, as the GUI suggests, Background mining mode is in an experimental state. Remember that if you select the Start mining button before the daemon syncs, the wallet will throw an error.

Wait for the daemon to finish synchronization before mining, or you will receive the above error.

For more advanced users, you might want to know that solo mining can also be done through the official Monero CLI wallet. You can do so by running the command:

start_mining [number of threads]

Be sure to launch monerod.exe and allow your wallet to sync before attempting to mine, or an exception will be thrown.

It is important to note that you can only solo-mine with your CPU through the official Monero wallets.

How to pool-mine Monero with XMR-Stak

As stated earlier, although you will not necessarily be playing a strong role in security the network, pool mining is much more profitable than solo mining. You can mine Monero as part of a pool with CPUs, AMD GPUs, and Nvidia GPUs.

The first thing you’ll want to do is download XMR-Stak. This particular miner supports Windows and supports mining on both CPUs and GPUs, regardless of manufacturer (Intel, AMD, Nvidia). Most other mining software solutions specialize in terms the hardware they support. If you prefer Linux, I highly recommend at least using a Windows 10 virtual machine, as mining Monero with both your CPU and GPU is not a pleasant experience on Linux, unfortunately.

If you haven’t already, get Windows 10

You can easily download a Windows 10 image for free from Microsoft. Although you will be given the option to pay, sticking with the free version is absolutely fine. The most significant feature you’ll be missing by running a free version of Windows 10 on a mining rig is the ability to change the desktop/lock screen background. Please note that, by default, XMR-Stak will attempt to mine with all hardware available.

Run XMR-Stak

Next, double-click xmr-stak file in the downloaded folder.


From there you will see a command line prompt asking you to select a currency (either Monero or Aeon). Type “monero” and hit the ENTER key.

Next, it will ask you to enter a pool address. You can check out this list of Monero pool addresses to choose the most optimal one for yourself. Be sure to select a pool address that is closest to your region. Once you find the pool closest to you, select the go to pool button in that pool’s respective column. Next, navigate to the Getting Started page of your pool’s website.

Here, you will see a list of ports associated with that pool. The port you choose is solely dependent on the quality of hardware you intend to be mining with.

For example, on MoneroHash:

MoneroHash pool’s “Getting Started” page.

If I were going to mine on this pool with both a high end CPU and GPU, I would choose port 5555.

When you choose the pool and port on which you want to mine, copy the information into the XMR-Stak command prompt. To check your earned rewards while mining, navigate to your pool’s website and enter your wallet address where prompted.

Example of where to enter your wallet address to check your current mining rewards via the pool.

Next, XMR-Stak will request that you enter a username (Monero wallet address). If you don’t have a Monero wallet set up yet, I suggest you download the official Monero GUI wallet. However, if you prefer web wallets, MyMonero is a very solid product. Beware, however, that web wallets are inherently less secure due to the fact that your private keys are stored on a central server, and could be stolen by a determined hacker. Using a web wallet is sort of like using a crypto-bank.

After that, XMR-Stak will ask you for a password. Leave this field blank and press ENTER.

XMR-Stak will then ask if the pool port supports TLS/SSL. Depending on the port you use, TLS/SSL support may or may not be present. In the previous MoneroHash example, you can see that port 9999 does support SSL/TLS, as is defined in the “Description” field. If your pool doesn’t explicitly state that your port supports TLS/SSL, assume that it doesn’t and enter n.

The next prompt will ask you if you want to use nicehash. Type n and press ENTER.

After that, XMR-Stak will ask if you want to use multiple pools. Type n and press ENTER.

The XMR-Stak command prompt should look something like this.

Congratulations! Your miner should have started and you should be well on your way to earning Monero riches! If you find that your miner has crashed, use your file explorer to navigate to the nvidia.txt (amd.txt if you have an AMD card) file and open it. Then, reduce the number of threads to a suitable amount for your graphics card.

Reduce the number of threads from 72 to a number more suitable to your graphics card.

If you don’t want to mine with your graphics card at all, set the thread amount to zero. By default, XMR-Stak will attempt to mine with all available hardware. You can also lower the thread count to a more comfortable level if you find that your GPU is running too hot for your taste. If you have multiple GPUs, you should see configuration information for each individual card.

Conclusion, and other options

There are, of course, many different options to choose from when it comes to mining software for Monero. As a matter of fact, you can find a list of recommended miners for Monero here. However, none of which are as easy and seamless to set up as XMR-Stak, as it will run on any hardware without presenting a major challenge to set up and configure.

Do you appreciate this guide? Tips welcome!
RaiBlocks: xrb_3amuwjo4sunaqxaye98yqpn94hs7weucxtj6jy8khidyyjwqy7ebmutbpk9y


About Author

Got into cryptocurrencies through the fascinating gateway of mining. Favorite cryptos thus far are Monero, Ethereum, IOTA, and RaiBlocks. Sort of our in-house Monero expert, for all intents and purposes.

  • Aware Muzzle

    So I followed the directions, entered it all in and got started using XMR-STAK, but forgot to include the port for the pool, so it keeps returning an error: CONNECT error: Pool port number is not specified.

    I can’t figure out how to enter additional commands, / or or ENTER don’t seem to do anything, and typing without an indicator does not as well. Please help, I’m feeling pretty dumb right now! I could not find a readme or anything for this; the guide is great but I can’t figure out how to do anything else with it now that I messed up the setup.