// blog · · by Nathan Baldwin

Solo mining a Bitcoin block with a Bitaxe — what your odds actually look like at 1.2 TH/s

// Solving a Bitcoin block with 1.2 TH/s — the math on solo Bitaxe odds at current network difficulty, plus what lottery mining actually means.

A Bitaxe Gamma at 1.2 TH/s has roughly a 1-in-4.3-million chance of solving a Bitcoin block on any given day. Over a year, that’s a 1-in-12,000 chance. Over a decade, 1-in-1,200. Over a human lifetime (call it 80 years), about 1-in-150. Those are the real odds — not the optimistic ones, not the pessimistic ones, just what the math says.

People keep buying lottery tickets at worse odds with worse payouts. Solo mining a Bitaxe is, in a strict probability sense, a better bet than your state lottery.

The math, step by step

Bitcoin’s network hashrate is currently around 750 EH/s. That’s 750 × 10¹⁸ hashes per second, or 7.5 × 10²⁰ H/s.

Your Bitaxe Gamma at 1.2 TH/s is 1.2 × 10¹² H/s.

Your fraction of the network:

1.2 × 10¹² / 7.5 × 10²⁰  =  1.6 × 10⁻⁹

That’s 0.00000016% — call it “one part in 625 million.”

Blocks are found on average every 10 minutes, which means 144 per day. Your expected blocks per day:

144 × 1.6 × 10⁻⁹  =  2.3 × 10⁻⁷ blocks/day

Inverted, your expected wait between blocks:

1 / 2.3 × 10⁻⁷  =  4,343,000 days  =  ~11,900 years

That’s the headline number. Average expected wait for one Bitaxe to find one block: ~12,000 years.

But “average expected wait” isn’t the right way to think about a lottery. The right way is to think in probabilities.

Probabilities at different time scales

The probability of finding at least one block over N days follows the Poisson distribution: P(at least one) = 1 - e^(-λN) where λ is your daily block-finding rate (2.3 × 10⁻⁷).

Plug in different N:

The 1-in-150 lifetime number is what gets people interested. The state lottery is roughly 1-in-300-million per ticket. A 1-in-150 chance to win something over a lifetime of “playing” is, in expected-value terms, dramatically better — especially because the cost of “playing” (electricity for one Bitaxe) is something like $3/month.

The payout, though, is fixed at ~$300k current value (3.125 BTC × $95k, minus a ~2% pool fee on solo.ckpool). Compared to the lottery’s $100M+ jackpot, the per-win payout is smaller. So state-lottery dollars and Bitaxe-solo dollars are not directly comparable. The point is: the odds are wildly different and the cost is wildly different.

What “expected value” means in practice

Multiply the daily probability by the expected payout to get expected daily revenue:

2.3 × 10⁻⁷ × 3.125 BTC × $95,000  =  ~$0.07/day

That’s $2.13/month expected. But the actual realized cash flow is almost always $0. The expected value only manifests over astronomical time scales — or over astronomical numbers of devices.

If you ran 12,000 Bitaxes for a year, you would (probabilistically) find one block. That’s a ~$300k payout against ~$36,000 of electricity ($3 × 12,000), which is a healthy margin. The math is sound. The math has always been sound.

The math is just inconvenient for any normal person who runs three Bitaxes on their desk.

Block reward isn’t the whole story

A successful Bitcoin block also includes transaction fees from every transaction included in the block. As of April 2026, that’s adding ~0.05 to 0.5 BTC on top of the 3.125 BTC base reward, depending on mempool congestion.

Average over the last 90 days has been ~0.12 BTC in fees per block, so a real-world solo block payout is closer to 3.245 BTC, currently ~$308k. During high-mempool periods (NFT mints, runes activity, ordinal frenzy), block fees have spiked above 1 BTC — meaning the “lucky” Bitaxe owner who lands a block during that window walks away with ~$400k.

The next halving (April 2028, roughly) drops the base reward to 1.5625 BTC. Fees will likely become a larger fraction of block reward over time, but the headline payout shrinks. Time your solo career accordingly, I guess.

What real solo Bitaxe winners look like

solo.ckpool.org maintains a public log of every block its solo pool finds. Browse it and you’ll see Bitaxe owners hitting blocks at regular-ish intervals — not because each individual Bitaxe is lucky, but because there are thousands of them collectively searching.

Recent solo Bitaxe block-finders include: - A single Bitaxe Supra at 750 GH/s (October 2024) — odds against them were ~13× worse than a Gamma at 1.2 TH/s and they still hit it. - A Bitaxe Gamma reportedly found block 879886 in early 2025 — owner had been running it for 5 months. Statistically extremely lucky, but it happened. - Several at the Ultra (300-500 GH/s) tier have hit over the past few years.

The lesson: the odds against any specific Bitaxe are immense, but the odds against the Bitaxe-as-a-class finding blocks fairly regularly are basically 100%. Someone is winning. It’s just almost certainly not going to be you. But it could be.

How to actually run it

Point your Bitaxe at solo.ckpool.org on port 3333. Use your BTC address as the worker name. Set the password to anything — they ignore it.

Then leave it alone. There’s nothing to tune for solo that wouldn’t also matter for pool — get your HW error rate under 0.5%, keep VR temp below 65°C, watch the J/TH curve. The only different is the payout structure.

Bookmark solo.ckpool.org/users/<your-btc-address>. Check it once a week. If your hashrate is showing up steadily on the dashboard, you’re in the lottery. That’s all you can do.

What to do today

If you’ve got more than one Bitaxe, set one to solo and the rest to a pool. The economic loss is trivial (~$3/month expected difference) and the upside is a ~$300k payout you’ll talk about for the rest of your life. If you’ve got exactly one Bitaxe, decide based on temperament — do you want $0.20/day reliably, or $0.00 with the possibility of $300k?

Either answer is defensible. There’s no wrong choice with one device.

Try it yourself: Bitaxe Baller is a free Mac app that surfaces these recommendations automatically across your fleet — live monitoring, tuning suggestions, pool config, all in a native window. Open source on GitHub.

← back to blog