CGMiner Solo Mining Setup 2026: Complete SHA-256 Guide

Hey, I’m Hugo — and I’ve spent way too many nights getting CGMiner to actually work for solo mining. Trust me on this: CGMiner isn’t the easiest mining software to configure, but once you get it running, it’s incredibly powerful for solo mining SHA-256 coins like Bitcoin.

I remember my first attempt. Downloaded CGMiner, pointed it at my node, and… nothing. Just error messages. Turns out I was using the wrong protocol, had my node configured wrong, and honestly had no idea what I was doing. Took me three days to figure it out.

This guide covers everything I learned the hard way — so you don’t have to.

Why CGMiner Still Matters for Solo Mining in 2026

You might wonder why anyone still uses CGMiner when newer software exists. Here’s the thing: CGMiner is the original ASIC mining software, and it’s built specifically for SHA-256 mining. No bloat, no fancy GUI — just raw mining power.

For solo mining, that matters.

Most modern miners are designed for pool mining. They’re optimized for submitting shares every few seconds, handling pool protocols, and managing failover servers. CGMiner? It’s built to find blocks. When you’re running ASICs for solo mining, you need software that can handle direct node communication without pool middleware getting in the way.

Plus, CGMiner still gets updates. The community fork (cgminer-gekko) supports newer ASICs, and the configuration options are way more detailed than what you get with most pool-focused software.

But here’s the honest truth: CGMiner has a learning curve. If you want plug-and-play, this isn’t it. You’ll be editing config files, typing command-line arguments, and troubleshooting error messages. That’s actually the cool part — you learn exactly how solo mining works at the protocol level.

CGMiner Solo Mining Setup: Core Requirements

Before you even download CGMiner, you need the right foundation. Don’t make my mistake of trying to solo mine without a proper node setup — it just won’t work.

Running Your Own Bitcoin Full Node

This is non-negotiable for true solo mining. You need Bitcoin Core running with the following settings in your bitcoin.conf file:

  • server=1 — Enables RPC server
  • rpcuser=yourusername — Your RPC username
  • rpcpassword=yourpassword — Strong password, obviously
  • rpcallowip=192.168.1.0/24 — Allows local network access (adjust to your subnet)
  • rpcport=8332 — Default RPC port

On Windows, your bitcoin.conf goes in %APPDATA%Bitcoin. On Linux, it’s typically ~/.bitcoin/. Restart Bitcoin Core after editing.

Your node needs to be fully synced. That’s around 600 GB as of 2026, and it takes several days on a decent connection. You can’t solo mine while syncing — your blocks would be invalid because you’re not on the current chain tip.

Hardware That Actually Makes Sense

Let’s be realistic. You’re not solo mining Bitcoin profitably with a USB stick miner. Here’s what you actually need:

Antminer S19 XP (140 TH/s)

The workhorse for serious solo miners. 140 TH/s at 3010W. Loud and power-hungry, but gives you a real shot at finding blocks. See our detailed S19 XP vs M50S comparison.

View on Amazon

Whatsminer M66S (280 TH/s)

Double the hashrate of the S19 XP, but also double the cost and power draw. If you’re serious about solo mining with serious hardware, this is the current king.

View on Amazon

Whatsminer M63 (360 TH/s)

The absolute beast for solo miners with industrial power access. 360 TH/s makes your solo mining odds significantly better. Full review in our M63 solo mining analysis.

View on Amazon

Look, I can’t afford an S19 XP. My setup is way more modest. But I’ve tested CGMiner with borrowed hardware, and these are the machines that actually give you reasonable solo mining odds on Bitcoin.

Network and Latency Considerations

Your internet connection matters more for solo mining than for pool mining. When you find a block, you need to broadcast it to the network immediately — before someone else finds a competing block.

Recommended specs:

  • Minimum 10 Mbps upload (50+ Mbps preferred)
  • Low latency to major Bitcoin nodes (<50ms ideal)
  • Stable connection — no random dropouts
  • Wired connection for your mining rig (WiFi adds latency)

I learned this the hard way when my WiFi dropped for 30 seconds right after finding a testnet block. Imagine if that had been a real Bitcoin block worth $66,312.

Downloading and Installing CGMiner for Solo Mining

This is where things get slightly tricky because there are multiple CGMiner versions floating around.

Which CGMiner Version to Use

The original CGMiner repository doesn’t support modern ASICs anymore. You need community forks depending on your hardware:

  • cgminer-gekko — Supports Compac F, 2Pac, and GekkoScience USB miners
  • cgminer (Canaan fork) — For AvalonMiner ASICs
  • Braiins OS+ with cgminer — Custom firmware for Antminers (my recommendation)

For Whatsminer devices, you typically use the built-in firmware interface rather than CGMiner directly. But you still need to understand CGMiner configuration because that’s what the firmware uses under the hood.

Windows Installation

Download the Windows binary from the appropriate repository. You’ll get a .zip file. Extract it to C:cgminer for simplicity.

Important: Windows Defender will probably flag CGMiner as malware. It’s a false positive (mining software gets flagged all the time), but you’ll need to add an exception.

Open Command Prompt as Administrator and navigate to your CGMiner folder:

cd C:cgminer

Linux Installation

On Linux, you can compile from source or use pre-built binaries. Ubuntu/Debian example:

sudo apt-get update
sudo apt-get install build-essential autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libusb-1.0-0-dev libncurses5-dev
git clone https://github.com/ckolivas/cgminer.git
cd cgminer
./autogen.sh
./configure --enable-gekko
make
sudo make install

Adjust the --enable-gekko flag based on your hardware. For most ASICs, you won’t compile CGMiner yourself — you’ll use the manufacturer’s firmware.

CGMiner Solo Mining Configuration: Command-Line Arguments

Here’s where CGMiner gets powerful but complicated. Your entire mining configuration happens through command-line arguments or a configuration file.

Basic Solo Mining Command Structure

The core command looks like this:

cgminer -o http://127.0.0.1:8332 -u yourusername -p yourpassword --btc-address YOUR_BITCOIN_ADDRESS

Breaking it down:

  • -o — Your node’s RPC URL (127.0.0.1 if on the same machine)
  • -u — RPC username from bitcoin.conf
  • -p — RPC password from bitcoin.conf
  • –btc-address — Where you want block rewards sent

This uses the getwork protocol, which is actually deprecated for Bitcoin mining. More on that in a second.

Getwork vs Stratum: What Actually Works

Here’s something that confused me for days: Bitcoin Core removed getwork support years ago. If you try the command above with a modern Bitcoin Core node, CGMiner will just sit there doing nothing.

You have two options:

Option 1: Use getblocktemplate (recommended)

Modern CGMiner versions support getblocktemplate, which is what Bitcoin Core uses now:

cgminer -o http://127.0.0.1:8332 -u yourusername -p yourpassword --btc-address YOUR_BITCOIN_ADDRESS --no-getwork

The --no-getwork flag forces CGMiner to use getblocktemplate instead.

Option 2: Run a local Stratum proxy

This is actually what I do. You run mining-proxy software that converts Stratum (what CGMiner speaks best) into getblocktemplate (what your node provides).

Popular options:

  • mining-proxy — Simple Python script
  • solo-ckpool — More robust, handles multiple miners

With a Stratum proxy running on port 3333, your command becomes:

cgminer -o stratum+tcp://127.0.0.1:3333 -u YOUR_BITCOIN_ADDRESS -p x

Way cleaner, and it works with all CGMiner versions.

Configuration File Method

Typing that command every time gets old fast. Create a cgminer.conf file instead:

{
"pools" : [
  {
    "url" : "stratum+tcp://127.0.0.1:3333",
    "user" : "YOUR_BITCOIN_ADDRESS",
    "pass" : "x"
  }
],
"api-listen" : true,
"api-port" : "4028",
"expiry" : "120",
"log" : "5",
"queue" : "1",
"scan-time" : "60",
"shares" : "0"
}

Then just run: cgminer --config cgminer.conf

Keep this file in the same directory as your CGMiner executable.

ASIC-Specific CGMiner Settings for Solo Mining

Different ASICs need different parameters. This is where things get hardware-specific.

Antminer Configuration

For Antminers running stock firmware, you configure solo mining through the web interface. But if you’re running Braiins OS+ (which I recommend), you get direct CGMiner access.

In Braiins OS+, navigate to Miner → Configuration and enter:

  • URL: stratum+tcp://YOUR_NODE_IP:3333
  • Worker: YOUR_BITCOIN_ADDRESS
  • Password: x

Advanced settings I use:

  • Frequency: Stock (don’t overclock for solo mining — stability matters more than 5% extra hashrate)
  • Voltage: Auto (undervolting slightly can improve efficiency)
  • AsicBoost: Enabled (free ~20% efficiency boost)

Whatsminer Configuration

Whatsminers use their own firmware interface. Access it via web browser at the miner’s IP address.

Navigate to Miner Configuration:

  • Pool 1 URL: stratum+tcp://YOUR_NODE_IP:3333
  • Worker: YOUR_BITCOIN_ADDRESS
  • Password: x
  • Pool 2 and 3: Leave empty (or set to a backup pool if you want failover)

Don’t set a failover pool if you want pure solo mining. The moment your node goes down, you’d fail over to a pool and miss your solo block chance.

USB ASIC Miners (GekkoScience, Compac F)

These are the only ASICs you’ll actually run CGMiner directly on your computer for. Command example for a Compac F:

cgminer -o stratum+tcp://127.0.0.1:3333 -u YOUR_BITCOIN_ADDRESS -p x --gekko-compacf-freq 200

The --gekko-compacf-freq parameter sets the clock speed. Start at 200 MHz, increase gradually if stable. These USB miners pull maybe 15W, so they won’t find blocks realistically — but they’re perfect for learning CGMiner configuration.

I actually recommend starting with a USB miner just to understand the workflow before moving to expensive ASICs.

Troubleshooting CGMiner Solo Mining Issues

Trust me, something will go wrong. Here are the errors I’ve encountered and how to fix them.

“No servers could be used! Exiting.”

This means CGMiner can’t connect to your node. Check:

  • Is Bitcoin Core running?
  • Is your node fully synced?
  • Did you configure bitcoin.conf correctly?
  • Did you restart Bitcoin Core after editing bitcoin.conf?
  • Is your firewall blocking port 8332?

Test your RPC connection manually:

curl --user yourusername:yourpassword --data-binary '{"jsonrpc":"1.0","id":"test","method":"getblockchaininfo","params":[]}' -H 'content-type:text/plain;' http://127.0.0.1:8332/

If that returns blockchain info, your node is accessible. If not, your issue is with Bitcoin Core configuration, not CGMiner.

“Stratum connection failed”

If using a Stratum proxy, make sure it’s actually running. I use solo-ckpool and run it with:

./solo-ckpool -A -N -L -p YOUR_BITCOIN_ADDRESS

It logs to console, so you can see if it’s successfully connecting to your Bitcoin Core node.

Zero Hashrate Reported

Your ASIC might not be detected. For USB miners, check:

  • USB drivers installed (WinUSB on Windows, libusb on Linux)
  • Device shows up in Device Manager / lsusb
  • CGMiner compiled with correct –enable flags

For network ASICs, the device itself might be hashing but not submitting to your node. Check the ASIC’s web interface to confirm it’s actually mining.

High Reject Rate

In solo mining, you shouldn’t see many rejects. If you’re getting rejected shares, something is wrong:

  • Your node might be out of sync (check getblockchaininfo)
  • Your system time might be wrong (use NTP to sync)
  • Network latency might be too high (check your internet connection)

Actually, in pure solo mining you shouldn’t see “shares” at all — only valid blocks. If CGMiner is reporting shares, you’re probably accidentally connected to a pool.

My Honest Assessment: Is CGMiner Worth It for Solo Mining in 2026?

Here’s where I’m going to be completely honest with you.

When CGMiner Makes Sense

CGMiner is genuinely good for solo mining if:

  • You’re running ASICs that support it (Antminers with Braiins OS, older hardware)
  • You want complete control over your mining operation
  • You’re comfortable with command-line interfaces
  • You’re mining altcoins where CGMiner still has native support

For serious ASIC-based Bitcoin solo mining, CGMiner is basically the standard. The alternatives (BFGMiner, custom firmware interfaces) are either similar in complexity or more restrictive.

When You Should Use Something Else

Don’t use CGMiner if:

For most modern solo mining scenarios, you’re either using ASIC firmware directly or algorithm-specific miners. CGMiner still works, but it’s not always the easiest path.

The Learning Value

That said, learning CGMiner teaches you how mining actually works. You understand RPC connections, mining protocols, block templates, and node interaction at a level you won’t get from clicking buttons in a GUI.

I spent weeks fighting with CGMiner when I started. Was it frustrating? Absolutely. But now I can troubleshoot any mining setup because I understand what’s happening under the hood.

If you’re in this as a teenage solo miner like me, that education is genuinely valuable. If you just want to plug in an ASIC and start mining, use the manufacturer’s firmware.

Alternative Solo Mining Software to Consider

Let’s be real about your other options.

BFGMiner: CGMiner’s Cousin

BFGMiner forked from CGMiner and supports some hardware CGMiner doesn’t. Configuration is nearly identical:

bfgminer -o stratum+tcp://127.0.0.1:3333 -u YOUR_BITCOIN_ADDRESS -p x -S all

The -S all flag auto-detects all supported hardware. Honestly, for solo mining, BFGMiner and CGMiner are basically interchangeable. Use whichever supports your specific hardware.

Modern ASICs come with web-based firmware that handles all mining configuration. For solo mining:

  • Antminers (stock firmware): Miner Configuration → Enter node’s Stratum URL
  • Whatsminers: Miner Configuration → Pool settings
  • AvalonMiners: Mining settings → Solo pool address

This is actually easier than CGMiner for most people. You get monitoring, automatic restarts, temperature control, and fan management all in one interface.

Braiins OS+ for Antminers

This is my actual recommendation for Antminer solo mining. Braiins OS+ is custom firmware that:

  • Gives you more control over frequency and voltage
  • Includes AsicBoost for better efficiency
  • Uses CGMiner under the hood but with a friendlier interface
  • Supports direct node connection for solo mining

It’s like getting the power of CGMiner with a usable configuration interface. Best of both worlds.

Solo Mining SHA-256 Altcoins with CGMiner

Bitcoin isn’t the only SHA-256 coin. Smaller networks might give you better solo mining odds.

Bitcoin Cash (BCH)

Same algorithm, way lower difficulty. Your S19 XP has much better odds of finding a BCH block. Setup is identical to Bitcoin:

  • Run Bitcoin Cash node (Bitcoin ABC or BCHN)
  • Configure RPC access
  • Point CGMiner to your BCH node

Current BCH price: $66,312… wait, that’s BTC. BCH is worth significantly less, so your block reward is smaller even though you’ll find blocks more often.

DGB-SHA (DigiByte on SHA-256)

DigiByte uses multi-algorithm mining, including SHA-256. Even lower difficulty than BCH. The challenge is finding a maintained node and making sure your CGMiner configuration points to the SHA-256 algo specifically.

Should You Mine Altcoins Instead of Bitcoin?

Depends on your goal. If you want the thrill of finding blocks regularly, smaller SHA-256 coins make sense. But those block rewards are worth less, and you might not be able to sell them easily.

I’m in it for Bitcoin blocks. That’s the lottery ticket I want to win. But I know solo miners who run smaller networks specifically because finding blocks feels more achievable.

Electricity Cost Reality Check

This part isn’t fun, but it’s important. Running an S19 XP at 3010W costs real money.

At $0.10/kWh (US average):
Daily cost: 3010W × 24h × $0.10 = $7.22/day
Monthly cost: $216.60/month

At $0.25/kWh (California, parts of Europe):
Monthly cost: $541.50/month

Your solo mining odds with 140 TH/s on Bitcoin:
Network hashrate: ~600 EH/s (as of 2026)
Your share: 140 TH/s ÷ 600,000,000 TH/s = 0.000000233%
Expected time to block: ~8 years

So you’re paying $7-18/day for a lottery ticket that statistically pays out once every eight years. That block is worth 3.125 BTC (current subsidy after 2026 halving), which at current prices is worth… $66,312 × 3.125.

Do the math for your electricity rate. Don’t make my mistake of ignoring this reality. Solo mining Bitcoin is a lottery, not a business plan.

If you want mining income, join a pool. If you want the solo mining thrill, set a monthly budget you’re okay losing — just like you would at a casino.

Monitoring Your CGMiner Solo Mining Operation

Once CGMiner is running, you need to monitor it. Solo mining for months without checking is a good way to miss problems.

Built-In API Monitoring

CGMiner runs an API server on port 4028 (if enabled in config). Query it with:

echo '{"command":"summary"}' | nc 127.0.0.1 4028

This returns JSON with your current hashrate, accepted/rejected shares (should be zero for solo), hardware errors, and uptime.

Web-Based Monitoring

For a prettier interface, run something like miner-monitor that queries the CGMiner API and displays it in a web dashboard. Useful if you’re running multiple devices or want to check status from your phone.

Node Monitoring

Your Bitcoin node is just as important as your miner. Monitor:

  • Blockchain sync status (bitcoin-cli getblockchaininfo)
  • Network connections (bitcoin-cli getnetworkinfo)
  • Mempool size (during high congestion, your node might lag)

I check my node daily. If it falls out of sync, you’re wasting hashrate mining on old block templates.

Noise and Heat Management

ASICs are loud. Like, vacuum cleaner next to your head loud. My parents made me move my test rig to the garage after one night of 75dB fan noise.

If you’re trying to solo mine from a home office, you need serious noise reduction or a separate space. These aren’t quiet desktop computers.

FAQ: CGMiner Solo Mining Setup

Can I use CGMiner for GPU solo mining in 2026?

No. CGMiner dropped GPU support years ago. For GPU-based solo mining on coins like Karlsen, Conflux, or Meowcoin, you need algorithm-specific miners like T-Rex, lolMiner, or Gminer. CGMiner is ASIC-only in 2026.

What’s the minimum hashrate needed to solo mine Bitcoin with CGMiner?

Technically, any hashrate works — you’re just less likely to find a block. Realistically, below 100 TH/s your odds are so low it’s basically a waste of electricity unless you’re doing it purely for the lottery thrill. An S19 XP at 140 TH/s takes on average 8 years to find a block. Anything less than that, and you’re looking at decades.

Do I need to run CGMiner 24/7 for solo mining?

No, but the more you run it, the better your statistical odds. Every second your miner is off is a second someone else might find the block you would have found. That said, I only run my setup when electricity rates are low (off-peak hours). Your expected time to block is based on cumulative hashrate, not continuous operation. Running 12 hours a day just doubles your expected time to block.

Can CGMiner solo mine directly to Bitcoin Core without a Stratum proxy?

Yes, using the getblocktemplate protocol. Add --no-getwork to your command and point directly to your node’s RPC port. However, Stratum is more efficient and handles network latency better, so I recommend using solo-ckpool or similar proxy even for solo mining. The proxy optimizes block template updates and reduces stale work.

What happens if I find a block while solo mining with CGMiner?

CGMiner submits the block to your Bitcoin Core node, which validates and broadcasts it to the network. If accepted, the block reward (3.125 BTC as of 2026, plus transaction fees) gets sent to the address you specified in your configuration. It takes 100 confirmations (~16.7 hours) before you can spend it. That’s the moment every solo miner dreams about. I’ve only seen it happen on testnet so far, but when it’s real Bitcoin… that’s the goal.