Bitmern Solo
Bitmern Solo
Log inStart Mining
← Back to blog

What Is a Nonce? How Your Bitaxe Actually Searches for a Block

A nonce is a number your miner changes over and over inside a Bitcoin block header so that each attempt produces a completely different hash. Your Bitaxe…

12 min read
What Is a Nonce? How Your Bitaxe Actually Searches for a Block
What Is a Nonce? How Your Bitaxe Actually Searches for a Block

Your Bitaxe sits on the desk, the fan hums, and the dashboard says it is hashing. But what is it actually doing? "Mining" sounds like digging for something, and "solving a puzzle" sounds like there is a clever answer to work out. Neither is quite right. What the chip does is simpler, more repetitive, and — once you see it — explains almost everything about why solo mining feels the way it does.

A nonce is a number your miner changes over and over inside a Bitcoin block header so that each attempt produces a completely different hash. Your Bitaxe takes the job the pool sends over stratum, builds an 80-byte block header from it, sets the 32-bit nonce field (about 4.29 billion possible values), runs the header through double SHA-256, and checks whether the result falls below a target. Almost every hash fails — that is normal. Hashes that beat an easier pool target become shares, which prove your miner is working; a hash that beats the network target would be a block. When the nonce range runs out, the extranonce inside the coinbase transaction is changed so the search continues. On Bitmern Solo, keep BTC easy-start host btc.bitmernsolo.com with port :3132 (never treat :3102 as the Bitaxe / home default), username WALLET.worker, password x. Current Effort is not a find guarantee.

This is the "what is my miner really doing" lane. If you want the share side in depth, read share difficulty explained and best diff explained. If you want the odds side, see difficulty vs effort. New to the whole idea? Start with what is solo mining.

Bitmern Solo is solo infrastructure: flat 1% fee on finds only, you keep 99%. Nothing in this post is financial advice, and nothing here promises a find.

The one-sentence version

Your miner is guessing. Very fast, very systematically, with no shortcuts — and every guess is checked instantly.

There is no formula that tells a miner which nonce will work. The only way to find a valid block is to try values, hash, and compare. That is why it is called proof of work: the result can only be produced by doing the work, and anyone can check it in a fraction of a second.

What a block header is

Every Bitcoin block starts with a block header. It is a small, fixed-size record — 80 bytes — that summarises the block. In plain words, it contains:

  1. A version field. Which set of rules the block signals.
  2. The previous block's hash. This is what chains blocks together.
  3. The merkle root. A single fingerprint of every transaction in the block, including the coinbase transaction that pays the finder.
  4. A timestamp. Roughly when the block was built.
  5. The target, in compact form. How low the block hash must be to count.
  6. The nonce. The field your miner changes.

Change any one of those, even by a single bit, and the hash of the header changes completely. That is the property the whole search depends on.

What the nonce is

"Nonce" is short for "number used once". In Bitcoin it is a 32-bit field in the header, which means it can hold about 4.29 billion different values.

The nonce has no meaning on its own. It is not a password, a key, or a clue. It is simply a dial the miner can turn so that the same header produces a different hash on every attempt. Turn the dial, hash, check. Turn it again, hash, check.

What double SHA-256 does

Bitcoin uses double SHA-256: the header is hashed with SHA-256, and that result is hashed with SHA-256 again. The output looks like a long random string of hex characters.

Two properties matter for a miner:

  1. It is unpredictable. You cannot look at a header and know whether its hash will be low or high. A tiny change gives a completely unrelated result.
  2. It is easy to check. Once someone has a header that hashes below the target, anyone can verify it with a single double SHA-256.

So the "puzzle" is not hard to understand. It is hard to win, because the only strategy is volume: try as many headers as possible.

How the target decides success

The target is a threshold. Think of the hash as a very large number. If the number is below the target, the header is valid. If it is above, it is not.

The lower the target, the fewer hashes qualify, and the harder it is to find a valid one. Network difficulty is just a more human-friendly way of expressing that target. When the network retargets, the threshold moves — that mechanism is covered in difficulty adjustment explained.

Why almost every hash "fails"

This is the part that surprises people. Your Bitaxe is producing hashes constantly, and nearly all of them are above the network target. They are thrown away immediately.

That is not your miner doing something wrong. That is exactly how Bitcoin is designed. The network target is set so that, across all miners in the world, valid blocks are rare. A home miner contributes a small slice of the total guesses, so it will see a vast number of misses for every success — whether that success ever comes is a matter of chance.

If the dashboard shows hashrate and accepted shares, your miner is doing its job. The misses are the job.

Where shares come in

If valid blocks are so rare, how does the pool know your miner is working at all? With shares.

A share is a hash that beats an easier target chosen by the pool. It is not a block. It is proof that your miner is genuinely searching. Because the share target is much easier than the network target, shares arrive regularly, and the pool can count them, measure your hashrate, and show you a live picture on the dashboard.

Here is the key idea:

  1. Every share is a hash that met the pool's easier target.
  2. A block is a hash that met the network's much harder target.
  3. Any hash that meets the network target also meets the share target — so a block always shows up as a share first.

The pool adjusts how easy that share target is with VarDiff, so a small miner and a large miner both send a sensible stream of shares. More on that in share difficulty explained. Your highest single result is tracked as best difficulty — see best diff explained.

How the pool's job reaches your Bitaxe

Your miner does not build blocks from scratch. The pool does the block-building and sends your miner a job over stratum. The job contains what the miner needs to assemble headers: the previous block hash, the pieces of the coinbase transaction, the merkle branch, the version, the compact target, and the time.

Your Bitaxe combines those pieces, fills in its own values, and starts hashing. When it finds a hash that meets the share target, it submits a share back over stratum.

A simplified picture of that conversation looks like this. The values are placeholders only:

EXAMPLE ONLY — simplified stratum flow, placeholder values
pool  -> miner   mining.notify   job_id=<JOB>  prevhash=<PREV>  coinb1=<C1>  coinb2=<C2>  merkle=[<M...>]  version=<V>  nbits=<BITS>  ntime=<T>
miner           builds header, sets nonce, double SHA-256, compares to share target
miner -> pool    mining.submit   WALLET.worker  <JOB>  <EXTRANONCE2>  <T>  <NONCE>
pool  -> miner   result: accepted

The username in that submit is your WALLET.worker. That is how Bitmern Solo attributes the share to your worker and, in the event of a find, to your payout wallet.

What happens when the nonce runs out

About 4.29 billion values sounds like a lot, but modern ASIC chips can work through the whole nonce range quickly. When every nonce for a given header has been tried, the miner needs a fresh header to keep searching.

That is what the extranonce is for. The extranonce lives inside the coinbase transaction — the first transaction in the block, which pays the finder. Changing it changes the coinbase transaction, which changes the merkle root, which changes the header. Now the whole nonce range is fresh again.

In practice, part of the extranonce is assigned by the pool so different miners do not repeat each other's work, and part (often called extranonce2) is rolled by the miner. Some firmware and hardware also roll other header fields within the rules. You do not need to configure any of this — it is handled by your firmware and the pool.

Ordered "is my miner really searching?" checklist

You cannot watch the nonce dial turn, but you can confirm every step around it.

1. Confirm the stratum fields

Symptom: The miner shows hashrate locally, but you are not sure it is on the right pool.

Fix: In AxeOS, check the stratum settings. Host:

btc.bitmernsolo.com

Port:

3132

Username:

WALLET.worker

Password:

x

Never treat :3102 as the Bitaxe / home default.

2. Check that jobs are arriving

Symptom: Hashrate is zero or the miner says it is waiting for work.

Fix: Look at the AxeOS logs for new jobs from the pool. If none arrive, the problem is the connection, not the hashing. The AxeOS logs guide shows what normal job and share lines look like.

3. Confirm shares are being accepted

Symptom: You see hashrate but wonder whether any of it counts.

Fix: Open the matching coin tab on Bitmern Solo and look at your worker. Fresh accepted shares mean your miner is building headers, rolling nonces, hashing, and occasionally beating the share target — the full loop is working. See dashboard workers / shares / effort.

4. Do not worry that shares feel rare

Symptom: Shares seem to arrive slowly compared with how fast the miner hashes.

Fix: That is VarDiff doing its job — the share target is set so you send a sensible stream, not a flood. Why shares feel rare explains it.

5. Read best difficulty as a curiosity, not a countdown

Symptom: Your best difficulty is high and you think a block must be close.

Fix: Best diff records your luckiest single hash so far. It is fun to watch, but each hash is independent; a high best diff does not make the next hash more likely to win.

6. Read Current Effort correctly

Symptom: Current Effort is above 100% and you think a find is "due".

Fix: Current Effort compares work done since the last find with what would be expected on average. Because every hash is an independent guess, there is no "due". Current Effort is not a find guarantee — read Current Effort explained.

7. Know what a find looks like

Symptom: You wonder whether you would even notice.

Fix: If one of your hashes ever meets the network target, the pool submits the block to the network and your dashboard records the find. What happens when you find a block walks through it.

A worked example of the loop (EXAMPLE values only)

The values below are placeholders to show the sequence only. They are not real hashes, targets, or results.

EXAMPLE ONLY
Header (80 bytes) with nonce = N1   -> double SHA-256 -> H1   H1 > share target   -> discard
Header with nonce = N2               -> double SHA-256 -> H2   H2 > share target   -> discard
...
Header with nonce = Nk               -> double SHA-256 -> Hk   Hk < share target   -> submit share (accepted)
                                                              Hk > network target -> not a block
...
Nonce range exhausted               -> roll extranonce2 in coinbase -> new merkle root -> new header -> start again

Notice the shape: discard, discard, discard, occasional share, keep going. That is what "mining" means at the chip level.

Why this makes solo mining lottery-like

Put the pieces together:

  1. Every hash is an independent guess. Past misses do not make the next hash more likely to win.
  2. The winning threshold is set for the whole network. Your miner competes with every other hash in the world, not just with other Bitmern Solo miners.
  3. Shares prove work, not progress. They show your miner is searching honestly; they are not steps toward a block.
  4. A find is the whole block reward. That is the solo trade: rare, all-or-nothing outcomes instead of small, regular pool payouts.

That is why solo finds can take a very long time, or arrive unexpectedly, and why no dashboard number can tell you when. For more on that character, see what is solo mining and difficulty vs effort.

What this post will not invent

  • No chip or model hashrate figures
  • No "expected time to find" or odds-per-day numbers
  • No profitability, ROI, or price talk — no financial advice
  • No claim that :3102 is the home Bitaxe default (easy-start is :3132)

Common nonce misunderstandings

  1. "The miner is solving a maths problem." It is guessing and checking. There is no clever solution to find.
  2. "Some nonces are luckier than others." No. The nonce value itself has no special meaning.
  3. "Shares add up to a block." They do not. A block is a single hash that meets the network target.
  4. "Running out of nonces means the miner is stuck." No. The extranonce in the coinbase transaction is rolled and the search continues.
  5. "High Current Effort means a block is coming." It does not. Current Effort is not a find guarantee.
  6. "I need to tune nonce settings." You do not. Firmware and the pool handle nonce and extranonce rolling.

Soft next step

Open AxeOS, confirm the stratum fields above, then open the matching coin tab on Bitmern Solo and watch a few fresh accepted shares arrive under your WALLET.worker. Every one of them is your Bitaxe doing exactly what this post describes: build a header, turn the nonce, double SHA-256, compare, repeat. Keep BTC easy-start btc.bitmernsolo.com with port :3132 and password x.

Start mining

Start Mining — after login, open the matching coin tab and confirm workers / shares / hashrate.

FAQ

What is a nonce in Bitcoin mining?

A 32-bit field in the 80-byte block header that the miner changes on every attempt so each hash comes out different. It has about 4.29 billion possible values.

What does my Bitaxe actually do?

It builds block headers from the pool's stratum job, changes the nonce, runs double SHA-256, and compares the result to a target. Results that beat the pool's easier target are sent as shares.

Why do almost all hashes fail?

Because the network target is set so valid blocks are rare across the whole world's mining. Discarding nearly every hash is normal.

What is the extranonce?

Extra search space inside the coinbase transaction. Changing it changes the merkle root and header, giving the miner a fresh nonce range.

Are shares the same as blocks?

No. A share meets the pool's easier target and proves work. A block meets the much harder network target.

Does Current Effort mean I am about to find a block?

No. Current Effort is an ops / attribution signal — not a find guarantee. See Current Effort explained.

Related posts

    What Is a Nonce? How Your Bitaxe Actually Searches for a Block