// blog · · by Nathan Baldwin
// Suggested difficulty vs auto vardiff on a Bitaxe: how each changes your share rate and pool hashrate accuracy, and why neither changes what you earn.
Pool difficulty is the setting people fiddle with most and understand least. Here’s the part that ends the argument: share difficulty changes how often your Bitaxe reports work, not how much it earns. A 1.2 TH/s Gamma submitting at difficulty 1,000 and the same Gamma at difficulty 16,000 have identical expected payouts. The only thing that moves is share cadence and how smooth your hashrate graph looks.
So the choice between a fixed Suggested Difficulty and the pool’s Auto (vardiff) isn’t about money. It’s about feedback quality, bandwidth, and how much you trust your pool’s short-term hashrate estimate. Once you frame it that way the decision gets easy.
A share at difficulty D requires, on average, D × 2^32 hashes to find. That’s about 4.295 billion hashes per unit of difficulty. Your Bitaxe submits a share every time it finds a hash that clears the difficulty target the pool handed it.
Lower difficulty means each share is easier, so you submit more of them. Higher difficulty means each share is rarer but represents more work. The pool reconstructs your hashrate by counting shares over a time window and multiplying by their difficulty. Both ends arrive at the same number over a long enough window. Short windows are where they diverge.
Here’s what difficulty does to share cadence on a 1.2 TH/s Gamma:
| Difficulty | Seconds per share |
|---|---|
| 512 | ~1.8 s |
| 1,000 | ~3.6 s |
| 4,096 | ~15 s |
| 8,192 | ~29 s |
| 16,384 | ~59 s |
At difficulty 16,384 you’re submitting roughly one share a minute. That’s fine for the pool’s long-run accounting, but it makes any hashrate graph shorter than an hour look like a seismograph.
Most commercial pools run variable difficulty. The pool watches your submission rate and nudges difficulty up or down to hit a target share interval, usually somewhere around one share every 10 to 30 seconds. You connect, submit a few shares, and within a minute or two the pool has settled on a difficulty that fits your hashrate.
For a normally tuned Bitaxe on a pool that supports vardiff, Auto is the right default. You don’t have to recalculate anything when you change tuning, swap a board, or add a second miner. The pool keeps the cadence sensible on its own.
Auto has two failure modes worth knowing. The first is a vardiff floor that’s too high for a small device. Some pools were built for multi-terahash farm gear and won’t drop difficulty below a level that leaves a 1.2 TH/s Bitaxe submitting a share every couple of minutes. The second is slow adaptation: if you make a big tuning change, the pool can take several minutes to re-settle, and your dashboard hashrate will read wrong until it does.
Suggested Difficulty is a fixed value you hand the pool, usually through mining.suggest_difficulty in the Stratum handshake. AxeOS sends it when you’ve set one; otherwise it falls back to whatever the pool decides. Depending on the pool, you set it in a dedicated field, by appending something like d=4096 to the worker password, or by picking a specific Stratum port that maps to a difficulty tier. Check your pool’s docs, because the mechanism varies.
Pin a difficulty when:
The trick is picking the number. Aim for roughly one share every 10 to 20 seconds. The formula is D = hashrate × target_seconds ÷ 2^32. For a 1.2 TH/s Gamma at a 15-second target: 1.2e12 × 15 ÷ 4.295e9 ≈ 4,190, so 4,096 is the clean power-of-two pick. Running three Gammas to one worker? Use the combined hashrate. Two at 1.2 TH/s land near 8,192.
Setting difficulty stupidly low (think 128 or below) on a real pool floods it with near-worthless shares, wastes bandwidth on both ends, and adds needless work for the ESP32 running AxeOS. It doesn’t earn you more. It just makes you the noisy neighbor.
Setting it absurdly high on a single Bitaxe is the opposite problem: shares get so rare that the pool’s short-window hashrate estimate becomes meaningless, and you’ll convince yourself your miner is dropping when it’s just statistical noise between submissions.
And the classic: believing a difficulty change moved your earnings. It didn’t. Expected reward is hashrate times luck, full stop. If your payout looked different after a difficulty change, you were watching variance, not a real effect.
If you’re on a normal commercial pool, leave it on Auto and stop thinking about it. If you’re solo mining, self-hosting a pool, or fighting a noisy hashrate graph while you tune, switch to a fixed Suggested Difficulty and size it for roughly one share every 10 to 20 seconds using the formula above. Run the number against your real combined hashrate, set it once, and move on. Difficulty is a monitoring knob, not a money knob.
Try it yourself: Bitaxe Baller is a free desktop app for Mac and Windows that surfaces these recommendations automatically across your fleet — live monitoring, tuning suggestions, pool config, all in a native window. Open source on GitHub.