<p><a href="https://bitcointalk.org/index.php?topic=9438.msg136344#msg136344">This</a> really helped me understand it:</p>

<blockquote>
  <p>A solo miner increments Nonce until it overflows. Then it increments extraNonce and resets Nonce. extraNonce is located in the coinbase transaction, so changing it alters the Merkle root. extraNonce is reset based on the time.</p>
</blockquote>

CC BY-SA 3.0
2015-03-10T23:48:15.860Z
2015-03-10T23:48:15.860Z
Geremia
<p>extraNonce gets put into the input of the generation transaction. getwork clients can't see transactions, so they can't update extraNonce. Some miners instead modify nTime slightly to give them more nonce space.</p>

<p>extraNonce is used by bitcoind, but it's not part of the protocol. There is no extraNonce field in blocks or transactions.</p>

CC BY-SA 3.0
2012-10-13T05:03:34.927Z
Ah, interesting. And nTime is the same as the timestamp described [here](https://en.bitcoin.it/wiki/Block_hashing_algorithm), correct?
ConstableJoe
CC BY-SA 3.0
2012-10-13T12:30:02.497Z
Yes, nTime is a field inside the block header.
Pieter Wuille
CC BY-SA 3.0
2012-10-13T01:50:17.443Z
2012-10-13T01:50:17.443Z
theymos
<p><a href="https://bitcoin.stackexchange.com/questions/2571/json-rpc-getwork-data-field">This question</a> helps identify the various components of the getwork "data" field, but I'm curious where the extraNonce comes from. My hunch is it's the first four bytes of the second half of the data, because I believe this is still part of the Merkle root (and yet, being in the second half of the data, it won't be part of the midstate). Is this correct? And if so, how does one increment the extraNonce, and what does it mean to do so?</p>

<p>Example getwork data:
<code>00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000</code></p>

<p>Is the extraNonce (in little-endian, I know), <code>55b5b8f6</code>?</p>

<getwork><nonce><mining-technical-details>
What is the extraNonce?
ConstableJoe
# What is the extraNonce?

(Asked by: username_0 on 2012-10-13)

[This question](https://bitcoin.stackexchange.com/questions/2571/json-rpc-getwork-data-field) helps identify the various components of the getwork "data" field, but I'm curious where the extraNonce comes from. My hunch is it's the first four bytes of the second half of the data, because I believe this is still part of the Merkle root (and yet, being in the second half of the data, it won't be part of the midstate). Is this correct? And if so, how does one increment the extraNonce, and what does it mean to do so?

Example getwork data:
`00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000`

Is the extraNonce (in little-endian, I know), `55b5b8f6`?

**Tags:** getwork, nonce, mining-technical-details


---

## 2 answers

### Answer by username_2 on 2012-10-13. Score: 13 | Accepted answer

extraNonce gets put into the input of the generation transaction. getwork clients can't see transactions, so they can't update extraNonce. Some miners instead modify nTime slightly to give them more nonce space.

extraNonce is used by bitcoind, but it's not part of the protocol. There is no extraNonce field in blocks or transactions.

> **Comments:**
> **username_0**: Ah, interesting. And nTime is the same as the timestamp described [here](https://en.bitcoin.it/wiki/Block_hashing_algorithm), correct?  
> **username_3**: Yes, nTime is a field inside the block header.  

---

### Answer by username_1 on 2015-03-10. Score: 14

[This](https://bitcointalk.org/index.php?topic=9438.msg136344#msg136344) really helped me understand it:

> A solo miner increments Nonce until it overflows. Then it increments extraNonce and resets Nonce. extraNonce is located in the coinbase transaction, so changing it alters the Merkle root. extraNonce is reset based on the time.


---

