Definition
Extranonce is the additional search space that lives inside a block's coinbase transaction, used by miners once the 32-bit nonce in the block header has been exhausted. With only about 4.3 billion header-nonce values, a modern ASIC burns through the entire range in a fraction of a second, so it needs another field to vary in order to keep generating fresh candidate blocks. Changing any byte of the coinbase changes the Merkle root, which in turn produces an entirely new header to hash — and the extranonce is the field reserved for exactly that purpose. It is the quiet reason terahash-scale hardware never runs out of work between job updates.
Where it lives in the coinbase
The coinbase transaction is the only transaction a miner may author freely, and its input's scriptSig is a scratch area: after the BIP 34 block height and any pool tags, there is room for arbitrary bytes. Under Stratum, the pool splits the serialized coinbase into two hex fragments — coinbase_1 (everything before the insertion point, ending partway through the scriptSig) and coinbase_2 (the rest of the scriptSig, the reward outputs, and the locktime). The miner reassembles the transaction as coinbase_1 || extranonce1 || extranonce2 || coinbase_2, double-SHA256 hashes it, and climbs the supplied merkle branches to a fresh merkle root. Because the split point sits inside the scriptSig, the miner gets a unique transaction hash for every extranonce value while the pool retains full control of where the block reward is paid.
Extranonce1 and extranonce2 in pooled mining
Stratum V1 divides the field in two. When a miner connects, the pool's mining.subscribe response hands back a session-unique extranonce1 plus an extranonce2_size (commonly 4 to 8 bytes). Extranonce1 is fixed for the connection and guarantees that no two miners on the pool ever search the same coinbase space or submit duplicate shares. Extranonce2 belongs to the miner, which typically treats it as a simple counter: firmware such as ESP-Miner on the Bitaxe keeps a 64-bit counter, copies it little-endian into the allotted bytes, and increments it for each job variation. Every share submission carries the extranonce2 used, so the pool can reconstruct the exact coinbase and verify the work. A pool can even rotate values mid-session with mining.set_extranonce if the client advertised the subscribe-extranonce extension — common behind proxies and hashrate-routing services.
How deep is the space?
Deep enough. A 4-byte extranonce2 multiplies the 4.3-billion header-nonce range by another 4.3 billion, and each increment costs the miner two SHA-256 passes over the coinbase plus a short merkle climb — trivial bookkeeping for the controller while the ASICs grind headers. Modern firmware also rolls the version bits of the header via version rolling, which adds yet another dimension of search space per extranonce value and is the mechanism behind AsicBoost. When extranonce2, version bits, and the timestamp are all exhausted, the miner simply requests fresh work, but in practice a new job arrives (new transactions, new height) long before that happens.
Extranonce and decentralization
The extranonce split is also where pooled mining's power imbalance hides: because the pool authors coinbase_1 and coinbase_2, it decides the payout address and which transactions the fleet works on. Stratum V2 addresses this with its Job Declaration extension, which lets the miner construct its own block template — extranonce space included — while still sharing rewards. For a home miner on a Bitaxe or a full-size Antminer, understanding the extranonce is understanding exactly what your pool controls and what your hardware controls. See nonce for the header field it extends and solo mining for the case where you keep the whole coinbase to yourself.
In Simple Terms
Extranonce is the additional search space that lives inside a block’s coinbase transaction, used by miners once the 32-bit nonce in the block header has…
