Skip to content

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

Target

Advanced Mining Basics

Also known as: Difficulty target

Definition

Target (also called the difficulty target) is the 256-bit threshold a candidate block’s hash must fall below to be considered valid. When mining hardware hashes a block header, the resulting number must be numerically less than or equal to the current target. Because SHA256d outputs are effectively random, a lower target leaves fewer valid hashes and demands more attempts on average to find one.

The target sits at the center of Bitcoin’s proof-of-work. It is what turns raw computation into a verifiable, scarce result: anyone can confirm a hash is below the target in microseconds, but producing one takes the entire network roughly ten minutes of combined effort.

How the target is encoded

The target is not stored in full 256-bit form inside the block header. Instead it is packed into the 4-byte bits field (also called nbits) using a compact, floating-point-style encoding:

  • The high byte is a 1-byte exponent.
  • The lower three bytes are a 3-byte mantissa.

The full target is reconstructed as target = mantissa × 2^(8 × (exponent − 3)). The genesis block used nbits = 0x1d00ffff, which by definition yields a difficulty of exactly 1. From that anchor, difficulty and target are simply inverse views of the same quantity: difficulty = max_target / current_target. As the network gets faster, the target shrinks and difficulty rises.

The target is recalculated every 2,016 blocks, based on how long the previous 2,016 blocks actually took to mine relative to the two-week ideal. This retarget is what keeps block time near ten minutes regardless of how much hashrate joins or leaves the network.

Network target vs. share target on real ASICs

This is where the concept matters most on the shop floor, and where many miners get confused. There are really two targets in play during ASIC mining, and they are not the same thing:

  • Network target — the consensus threshold carried in the latest mining.notify as nbits. Clearing it means you found an actual block.
  • Share (pool) target — a much easier threshold the pool assigns through mining.set_difficulty. Your firmware derives a target from that difficulty, and any hash that clears it counts as a valid share — proof you are doing real work, even though it falls far short of the network target.

Inside the miner, the control board reconstructs the block header — version, previous hash, merkle root, ntime, nbits, and the nonce — computes the double-SHA256 digest, and checks it against the share target before submitting. The ASIC chips themselves hash the header at enormous speed; the firmware’s job is to feed them work and validate which returned nonces clear the bar.

Getting the share target right is operationally critical. A pool that sets share difficulty too high for a given machine can starve it of valid shares; set too low, the machine floods the pool with submissions. A practical rule of thumb is to size requested share difficulty around difficulty = hashrate × 5 / 2^32, so a healthy machine reports a few shares per second. On low-hashrate hardware this distinction is unforgiving: assign a 17-billion-difficulty target meant for an S21 to a small unit and it may exhaust its entire nonce search space in seconds, reporting near-zero effective hashrate despite drawing full power.

Reading the target on your own hardware

Open-source firmware exposes the live target so operators can see exactly what their hardware is chasing. On the DCENT_axe, for example, the current network target is published as nbits at /api/mining/block.nbits — the value from the most recent mining.notify, not a recomputed pool figure. Converting that compact field back to a human-readable difficulty (with K/M/G/T/P suffixes) is a small but satisfying piece of the proof-of-work picture you can watch update block by block.

If you want to see target and difficulty in action on hardware you fully control, the Bitaxe hub is a great starting point — an open-source solo miner where every layer, from the nonce search to the share-vs-target check, is yours to inspect. Browse the open-source mining gear to start learning the protocol from the chip up.

Related terms: Difficulty, Proof of Work, Hash, Block Header, Bits, Nonce, Share.

In Simple Terms

The threshold a block hash must be below to be valid. Lower target means harder mining.

Target (also called the difficulty target) is the 256-bit threshold a candidate block's hash must fall below to be considered valid. When mining hardware hashes a block header, the resulting number must be numerically less than or equal to the current target. Because SHA256d outputs are effectively random, a lower target leaves fewer valid hashes and demands more attempts on average to find one.

The target sits at the center of Bitcoin's proof-of-work. It is what turns raw computation into a verifiable, scarce result: anyone can confirm a hash is below the target in microseconds, but producing one takes the entire network roughly ten minutes of combined effort.

How the target is encoded

The target is not stored in full 256-bit form inside the block header. Instead it is packed into the 4-byte bits field (also called nbits) using a compact, floating-point-style encoding:

  • The high byte is a 1-byte exponent.
  • The lower three bytes are a 3-byte mantissa.

The full target is reconstructed as target = mantissa × 2^(8 × (exponent − 3)). The genesis block used nbits = 0x1d00ffff, which by definition yields a difficulty of exactly 1. From that anchor, difficulty and target are simply inverse views of the same quantity: difficulty = max_target / current_target. As the network gets faster, the target shrinks and difficulty rises.

The target is recalculated every 2,016 blocks, based on how long the previous 2,016 blocks actually took to mine relative to the two-week ideal. This retarget is what keeps block time near ten minutes regardless of how much hashrate joins or leaves the network.

Network target vs. share target on real ASICs

This is where the concept matters most on the shop floor, and where many miners get confused. There are really two targets in play during ASIC mining, and they are not the same thing:

  • Network target — the consensus threshold carried in the latest mining.notify as nbits. Clearing it means you found an actual block.
  • Share (pool) target — a much easier threshold the pool assigns through mining.set_difficulty. Your firmware derives a target from that difficulty, and any hash that clears it counts as a valid share — proof you are doing real work, even though it falls far short of the network target.

Inside the miner, the control board reconstructs the block header — version, previous hash, merkle root, ntime, nbits, and the nonce — computes the double-SHA256 digest, and checks it against the share target before submitting. The ASIC chips themselves hash the header at enormous speed; the firmware's job is to feed them work and validate which returned nonces clear the bar.

Getting the share target right is operationally critical. A pool that sets share difficulty too high for a given machine can starve it of valid shares; set too low, the machine floods the pool with submissions. A practical rule of thumb is to size requested share difficulty around difficulty = hashrate × 5 / 2^32, so a healthy machine reports a few shares per second. On low-hashrate hardware this distinction is unforgiving: assign a 17-billion-difficulty target meant for an S21 to a small unit and it may exhaust its entire nonce search space in seconds, reporting near-zero effective hashrate despite drawing full power.

Reading the target on your own hardware

Open-source firmware exposes the live target so operators can see exactly what their hardware is chasing. On the DCENT_axe, for example, the current network target is published as nbits at /api/mining/block.nbits — the value from the most recent mining.notify, not a recomputed pool figure. Converting that compact field back to a human-readable difficulty (with K/M/G/T/P suffixes) is a small but satisfying piece of the proof-of-work picture you can watch update block by block.

If you want to see target and difficulty in action on hardware you fully control, the Bitaxe hub is a great starting point — an open-source solo miner where every layer, from the nonce search to the share-vs-target check, is yours to inspect. Browse the open-source mining gear to start learning the protocol from the chip up.

Related terms: Difficulty, Proof of Work, Hash, Block Header, Bits, Nonce, Share.

Explore the Full Glossary

Browse all Bitcoin mining terms from A to Z. Whether you are a beginner or expert, deepen your understanding of the mining ecosystem.

Mining Glossary

ASIC Miner Database

Compare 500+ miners with real-time profitability data, home mining scores, and detailed specs.

Compare Miners