• Hash256
  • Hash160
  • Reverse Bytes
  • Hexadecimal

Target The number you need to get below to mine a block.

The target is the threshold that a blockhash must be under for a candidate block to be added to the blockchain.


The current target is:


So if you want to add a candidate block to the blockchain, you must get one with a blockhash that is below this value.

Where does the target come from?

The target originally started out at:


This target was set so that it would take 10 minutes to mine a block. Or in other words, that it would take an average of 10 minutes to find a block hash (number) below this value.

However, as miners get faster at hashing and are able to mine blocks more quickly, the target adjusts (up and down) to try and keep the time between blocks at 10 minutes intervals.

This original target value is also the highest possible value for the target.

You can see the original target value by looking at the bits field of the genesis block

When does the target move?

The target adjusts every 2016 blocks (roughly every 2 weeks).

  • If blocks have been mined in less than 10 minutes (on average) over the last 2016 blocks, the target moves lower.
  • If blocks have been mined in more than 10 minutes (on average) over the last 2016 blocks, the target moves higher.

So before every 2016th block, each node will look at the average time it took to mine the last 2016 blocks, and move the target up or down based on that.


1. What has the target got to do with the difficulty?

The difficulty shows the change in the target from it’s original value.

 difficulty = original_target / target

So if we work out the current difficulty:

difficulty = 0x00000000ffff0000000000000000000000000000000000000000000000000000 / 0x0000000000000000001620d10000000000000000000000000000000000000000
           = 12720005267391

Which is like saying: “it’s currently 12,720,005,267,391 times more difficult to mine a block today than it was when bitcoin started.”

The difficulty value is not used internally in bitcoin. It’s just a useful metric that helps you compare the changes in the height of the target.

2. What has the target got to do with “bits”?

The bits field is a compact way of storing the target in the block header.


See also:

By Greg Walker,

Last Updated: 17 Oct 2019
  • 17 Oct 2019: longest chain (second draft, diagrams), resources page, router now includes config when running pages through PHP
  • 09 Oct 2019: renamed browser to explorer, glossary to guide, and guide to beginners

Hey there, it's Greg.

I'll let you know about cool website updates, or if something seriously interesting happens in bitcoin.

Don't worry, it doesn't happen very often.