<p>The extra nonce is a value in the coinbase transaction which miners will increment in addition to incrementing the nonce in the block header so that there are more possible hashes that can be tried with a given set of transactions.</p>

<p>The ExtraNonce2 is specifically the part of the extra nonce that the miner is changing while performing work for the pool. There is also an ExtraNonce1 which the pool provides to the miner. That ExtraNonce1 is typically used as an identifier.</p>

CC BY-SA 3.0
2018-03-11T17:24:14.420Z
Could you elaborate on the "ExtraNonce2" part of your answer?  Maybe with an example.  For isntance, you say its "part of the extra nonce" but I'm reading the extranonce2 is different from extranonce1 in terms of forming the coinbase, which I' reading is (coinbase1 + extranonce1 + extranonce2 + coinbase2).
Dave
CC BY-SA 3.0
2018-03-11T18:30:27.847Z
ExtraNonce2 is a value that the miner keeps changing in order to produce more block headers that can be hashed. Because this is something that the miner changes, he has to provide it back to the pool when he submits his work. ExtraNonce1, Coinbase1, and Coinbase2 are provided by the pool, so they know what they are and can reconstruct the block from the ExtraNonce2 and nonce that the miner submits.
Ava Chow
CC BY-SA 4.0
2022-06-15T16:55:07.660Z
So I am understanding that `nonce2` is `ExtraNonce` which is composed of 2 parts `ExtraNonce1` and `ExtraNonce2` where the pool defines `ExtraNonce1` bits but the miner is free to set/redefine during its mining job the `ExtraNonce2` bits.  The pool specifies in bytes (ie 8 bits) how much of `ExtraNonce` the `ExtraNonce2` takes, ie if `ExtraNonce2` is 2 bytes, then `ExtraNonce1` will be 6 bytes because both have to add up to 8 (64 bits)?
andrewz
CC BY-SA 3.0
2018-03-11T04:09:28.957Z
2018-03-11T04:09:28.957Z
Ava Chow
<p>I'm reading about the Stratum protocol where miners contribute to pools.  Specifically there is a "mining.submit" method -- <a href="https://en.bitcoin.it/wiki/Stratum_mining_protocol" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Stratum_mining_protocol</a>, in which I miner will submit a share for consideration.  The details on this doc are a little sparse.  Specifically, what is the "ExtraNonce2" value they describe as being submitted back to the pool?</p>

<mining-pools><mining-theory><stratum>
What is ExtraNonce2?
Dave
# What is ExtraNonce2?

(Asked by: username_0 on 2018-03-10)

I'm reading about the Stratum protocol where miners contribute to pools. Specifically there is a "mining.submit" method -- <https://en.bitcoin.it/wiki/Stratum_mining_protocol>, in which I miner will submit a share for consideration. The details on this doc are a little sparse. Specifically, what is the "ExtraNonce2" value they describe as being submitted back to the pool?

**Tags:** mining-pools, mining-theory, stratum


---

## 1 answers

### Answer by username_1 on 2018-03-11. Score: 2 | Accepted answer

The extra nonce is a value in the coinbase transaction which miners will increment in addition to incrementing the nonce in the block header so that there are more possible hashes that can be tried with a given set of transactions.

The ExtraNonce2 is specifically the part of the extra nonce that the miner is changing while performing work for the pool. There is also an ExtraNonce1 which the pool provides to the miner. That ExtraNonce1 is typically used as an identifier.

> **Comments:**
> **username_0**: Could you elaborate on the "ExtraNonce2" part of your answer?  Maybe with an example.  For isntance, you say its "part of the extra nonce" but I'm reading the extranonce2 is different from extranonce1 in terms of forming the coinbase, which I' reading is (coinbase1 + extranonce1 + extranonce2 + coinbase2).  
> **username_1**: ExtraNonce2 is a value that the miner keeps changing in order to produce more block headers that can be hashed. Because this is something that the miner changes, he has to provide it back to the pool when he submits his work. ExtraNonce1, Coinbase1, and Coinbase2 are provided by the pool, so they know what they are and can reconstruct the block from the ExtraNonce2 and nonce that the miner submits.  
> **username_2**: So I am understanding that `nonce2` is `ExtraNonce` which is composed of 2 parts `ExtraNonce1` and `ExtraNonce2` where the pool defines `ExtraNonce1` bits but the miner is free to set/redefine during its mining job the `ExtraNonce2` bits.  The pool specifies in bytes (ie 8 bits) how much of `ExtraNonce` the `ExtraNonce2` takes, ie if `ExtraNonce2` is 2 bytes, then `ExtraNonce1` will be 6 bytes because both have to add up to 8 (64 bits)?  

---

