How is Monero network difficulty calculated?
Monero recalculates its network difficulty after every block, using recent block timestamps and the amount of mining work recorded in the blockchain. The aim is to keep blocks arriving about two minutes apart, even when miners join or leave.
What difficulty measures
Difficulty tells you how much work you should expect to do before finding a valid block. That work consists of hashes: results from repeated calculations that miners perform using Monero’s mining algorithm, RandomX.
A block qualifies only when its hash meets a numerical limit called the target. A higher difficulty means a lower target, so fewer possible hashes qualify.
For example, at a hypothetical difficulty of 120 billion, finding a block would take about 120 billion hash attempts on average. That is a statistical average, not a countdown. You could find a block much sooner, or go far longer without finding one.
How the calculation works
Monero does not adjust difficulty from just the last block. One unusually fast or slow block would make that approach too jumpy.
Instead, its established calculation uses a recent history window:
- 720 blocks form the calculation window. At the intended block rate, that represents roughly one day.
- The newest 15 blocks are left out. This introduces a short delay between a change in mining speed and its full effect on the calculation.
- The timestamps are sorted. With a full window, the calculation cuts 60 timestamps from each end, leaving 600 central timestamps.
- Recorded work and elapsed time determine the next difficulty. The target spacing is 120 seconds.
In simplified form:
Next difficulty = recent recorded work × 120 ÷ measured elapsed seconds
The actual calculation uses integer arithmetic and rounds the division upward. It also includes safeguards, such as treating a zero-second measured span as at least one second.
The recorded work comes from cumulative difficulty, a running total of the difficulty assigned to blocks. It is not a count of every calculation miners actually performed; the network cannot see their unsuccessful attempts.
Trimming extreme timestamps helps reduce the influence of unusual clock readings. Importantly, it does not mean Monero simply removes the 60 fastest and 60 slowest individual block intervals.
What makes difficulty rise or fall
If the recent work was completed faster than the two-minute target suggests, the calculated difficulty rises. If it took longer, difficulty falls.
The adjustment happens every block, but the historical window and 15-block delay mean it does not instantly follow a sudden change in mining power.
You can roughly estimate the network’s computing speed with:
Estimated network hashes per second ≈ difficulty ÷ 120
That is an estimate, not a direct measurement. For today’s difficulty, check a live Monero block explorer or your own node, which is software that verifies and shares blockchain data.
Whether you mine solo or through P2Pool, the same network difficulty governs valid Monero blocks. P2Pool also uses separate difficulty rules for shares—proofs of your mining contribution—but those do not change Monero’s network calculation.
The bottom line
Monero sets difficulty from recent recorded work and block timing, aiming for one block every two minutes. Every node checks the same rules; no pool, miner, or central operator gets to choose the network difficulty.
