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:
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.
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.
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.
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:
- Your ASIC has modern firmware with a built-in web interface (Whatsminers, new Antminers) — just use that
- You want GPU mining for altcoins — CGMiner dropped GPU support years ago, use GPU-focused miners like T-Rex or lolMiner
- You’re solo mining Monero — XMRig is way better for RandomX
- You’re mining Kaspa — specialized miners like IceRiver KS3M or KS0 Pro use their own software
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.
Manufacturer Firmware (Recommended for Most)
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.