Extranonce
The extranonce is an add-on to the nonce, handed out by the pool. It spreads millions of ASICs across different slices of the search so nobody grinds the same numbers twice.
What the extranonce is
The nonce field in the block header is only 4 bytes, and a modern ASIC burns through that range in a fraction of a second. After that something else has to change, and that something is the extranonce: a chunk of data in the block's coinbase transaction that shifts the Merkle root and opens a fresh range of nonces.
It comes in two parts. The first, extranonce1, is assigned by the pool when you connect, and it is different for every connection: that is how the pool guarantees no two workers receive identical work. The second, extranonce2, the ASIC iterates on its own between job updates.
For you this is invisible plumbing, but it has visible consequences. After a reconnect the pool hands out a new extranonce1, so work started before the drop no longer fits the new session. And a proxy that funnels several ASICs into one connection has to split the extranonce itself, otherwise the miners behind it will crowd onto the same range.
This is also where the extranonce.subscribe line in your logs comes from: the ASIC or proxy asks the pool to announce extranonce changes instead of sending a full new job. A small traffic optimization that almost every pool supports.
The short version
| Why it exists | the 4 byte nonce field is too small |
| Where it lives | in the block's coinbase transaction |
| extranonce1 | assigned by the pool, unique per connection |
| extranonce2 | iterated by the ASIC itself |
| What it shifts | the Merkle root, and the work range with it |
Where you meet it in practice
In connection logs: extranonce lines at startup are normal negotiation, not an error.
On proxies and farm controllers: if several ASICs behind one connection duplicate work, check the extranonce settings.
On dropped connections: a new session means a new range, so work started before the drop is lost even if you reconnect instantly.
In solo mining on your own node: your software has to hand out the ranges, there is no pool to do it anymore.
A back-of-the-napkin example
A thousand miners connect to one pool and receive the same block template. Without the extranonce they would all grind the same 4 bytes of nonce and burn electricity on duplicates. The pool gave each connection its own extranonce1, the Merkle roots diverged, and a thousand miners now work on a thousand different jobs.
Related terms
Where to go next on the site
Algorithms
- SHA-256 algorithms
Coins
- Bitcoin coins
Questions and answers
Can a pool hand two miners the same work
An honest one, no, that is exactly what the extranonce is for. A homebrew proxy that fails to split ranges behind itself can get it wrong.
Does the extranonce affect income
No, it labels the work, it does not change the amount of it. Income is set by hashrate and the payout scheme, the extranonce only rules out duplicates.
What does extranonce.subscribe mean in the log
The ASIC asked the pool to send extranonce changes as a short message instead of a full job. Standard optimization, leave it alone.
How the terms connect
Every link in the chain is clickable. Orange marks where you are now.
Looking for an ASIC miner
The catalog holds 212 models. You can compare them by hashrate and by joules per terahash, then plug your own rate into the calculator and see what stays in your pocket.
Page written and checked by Denys Klimchuk. Updated .