D-Score methodology
The Decentralization Score (D-Score) is a 0–100 score computed for every validator from on-chain and network data. It rewards validators that perform well and make the network harder to capture: smaller stake, outside the superminority, in less crowded hosting providers, cities, countries and continents. It penalises stake concentration and high or changing fees. The goal is to help delegators move stake away from concentration without giving up returns.
Disclosure. Stake Manager is built and operated by LUX8, which also runs validators on these networks. LUX8 is ranked by exactly the same formula as every other validator. There are no manual adjustments, no paid placements and no per-validator exceptions in the score; every input below is computed automatically from data.
Common principles
- Relative, not absolute. Several components compare a validator with the rest of its network at the moment of measurement (median stake, APY spread, regional stake shares). A score can move when the network changes, even if the validator did not.
- Superminority. The smallest set of the largest validators that together hold at least one third of active stake, plus any validator holding more than 2% of the network on its own. Being in it removes the superminority points entirely.
- Stake size is measured against the network median: at or below the median earns the full points, and every doubling above the median costs points.
- Hosting concentration is the share of located validators that share this validator's hosting provider (autonomous system, ASN) and its city. The more crowded, the fewer points.
- Geographic rarity is based on the share of active stake already in the validator's continent and country: the less stake there already, the more points.
- Unknown location earns no location credit. A validator without a geolocation gets no continent rarity and is treated as fully concentrated for hosting, so hiding a location never scores better than a real one.
- Mega-stake is penalised with a multiplier rather than a deduction, so a validator many times larger than typical cannot reach the top on performance alone.
- Rank is the position by D-Score among all listed validators of that network.
Solana
Performance (52 points) plus decentralization (46 points), multiplied by fee and size multipliers, then scaled by 100/98 so that a perfect validator scores 100.
| Component | Max | How it is scored |
|---|---|---|
| Vote credits | 22 | 22 × the validator's vote credits in the last completed epoch as a share of the best validator's credits. |
| Skip rate | 15 | 15 × (1 − skip rate / 5%). A skip rate of 5% or more scores 0; no block production data scores 0. |
| APY | 15 | The validator's paid APY (last 10 epochs) placed between the 5th and 95th percentile of paying validators, then 15 × position1.5, so only the top of the range earns high points. Validators with fewer than 3 measured epochs use the estimated APY instead. |
| Stake size | 13 | 13 at or below the median stake; above it, 13 − 2 × log2(stake / median), not below 0. |
| Superminority | 12 | 12 outside the superminority, 0 inside it. |
| Hosting concentration | 6 | 6 − 2 × (ASN share + city share), not below 0. |
| Continent rarity | 8 | 8 × (1 − 1.2 × continent stake share), between 0 and 8; 0 without a location. |
| Country rarity | 7 | 7 × (1 − 2.5 × country stake share), between 0 and 7. |
Multipliers
- Commission: × max(0.5, 1 − 0.04 × commission %). 0% keeps the full score; 12.5% or more halves it.
- MEV (Jito) commission: × max(0.5, 1 − 0.5 × MEV commission share). Keeping all MEV tips halves the score. Since 2026-08-20 this is a penalty, not a disqualification: the delegator still receives the inflation rewards.
- Mega-stake: above 4 × the median stake, × max(0.4, 1 − 0.12 × (log2(stake / median) − 2)).
Score 0
- Commission of 100%.
- Commission raised by more than 5 percentage points, or Jito commission raised by more than 10 points, in the last epoch.
- A known fee flipper. The list is built automatically and re-checked every epoch: repeated raises of at least 3 points that take the commission above 5%, or an effective commission (what was actually taken from rewards, measured with
getInflationReward) of at least 50% and at least 30 points above the displayed commission in at least 2 of the last 8 epochs — the pattern of validators that show 0% and switch to 100% at the epoch boundary.
Solana testnet (TDS)
The testnet ranking uses the Solana formula above. Testnet rewards have no economic value and are not measured, so the APY component uses the estimated APY rather than the paid one.
X1
X1 uses the Solana formula with three differences:
- The APY component is not used: no APY is available when the score is computed, so every validator receives the same 0 of 15 points for it.
- There is no MEV multiplier and no commission-raise rule; only a 100% commission scores 0.
- The score shown is the average of the last 10 epochs of scores, sampled every two hours with the latest run of each epoch kept. An epoch in which the validator was absent counts as 0. The single-epoch score is kept alongside it.
NEAR
NEAR publishes real per-epoch production statistics for every validator, so the performance part uses them directly. The total is 100 points before penalties and the mega-stake multiplier.
| Component | Max | How it is scored |
|---|---|---|
| Performance | 24 | Weighted ratio of chunk endorsements (weight 3), produced chunks (2) and produced blocks (1); duties a validator does not have are left out. The scale runs from 95% (0 points) to 100% (24 points). No data: 12. |
| Stake size | 18 | 18 at or below the median stake; above it, 18 − 3.6 × log2(stake / median). |
| Superminority | 14 | 14 outside the superminority, 0 inside it. |
| Delegator base | 6 | 1.5 × log10(number of delegators), capped at 6. Unknown: 3. |
| Self-stake | 2 | 0.8 × log2(self-stake / 10,000 NEAR) + 0.8, between 0 and 2. A weak signal: an operator's own capital can sit on any address. |
| Hosting concentration | 12 | 12 − 24 × (ASN share + city share), not below 0. |
| Continent rarity | 10 | 10 × (1 − 1.2 × continent stake share); 0 without a location. |
| Country rarity | 8 | 8 × (1 − 2.5 × country stake share). |
| Commission | 6 | 6 × (1 − commission / 15%), between 0 and 6. Unknown: 3. |
- Penalties for states the chain itself reports: slashed → 0; kicked out in the last epoch → × 0.5; leaving the validator set → × 0.8.
- Mega-stake: above 1% of network stake, × max(0.4, 1 − 20 × (share − 0.01)).
Monad
Monad does not expose per-validator production statistics, so performance is measured through realized reward accrual. The total is 100 points before the mega-stake multiplier.
| Component | Max | How it is scored |
|---|---|---|
| Performance | 16 | Realized reward rate, gross of commission, placed between the 5th and 95th percentile of validators. While the history window is still filling, 8 (neutral). |
| Stake size | 20 | 20 at or below the median stake; above it, 20 − 4 × log2(stake / median). |
| Superminority | 16 | 16 outside the superminority, 0 inside it. |
| Delegator concentration | 6 | 6 × (1 − share of stake from the largest single delegator). Unknown: 3. |
| Self-stake | 2 | 0.8 × log2(self-stake / 100,000 MON) + 0.8, between 0 and 2. |
| Hosting concentration | 12 | 12 − 24 × (ASN share + city share), not below 0. |
| Continent rarity | 11 | 11 × (1 − 1.2 × continent stake share); 0 without a location. |
| Country rarity | 9 | 9 × (1 − 2.5 × country stake share). |
| Commission | 8 | 8 × (1 − commission / 20%), between 0 and 8. Scored additively because most Monad validators share the same commission. |
- Score 0: inactive or decommissioned validator, or 100% commission.
- Mega-stake: above 1% of network stake, × max(0.4, 1 − 20 × (share − 0.01)).
APY definitions
Every APY figure on the site carries a label that says which of these it is.
- Paid APY (Solana): what delegators were actually paid, averaged over the last 10 measured epochs. Inflation rewards are read from the chain with
getInflationRewardon the validator's largest stake accounts; Jito MEV rewards come from the Jito API. Both are net of the validator's commissions and compounded over the measured epoch length. An epoch whose MEV has not been published yet is skipped rather than counted as zero. At least 3 measured epochs are required; otherwise no paid APY is shown. - Estimated APY: a forecast. On Solana it starts from the reward the network actually paid per epoch to zero-commission validators with near-perfect vote credits, scales it by this validator's vote credits and current commission, adds its average MEV net of Jito commission, and compounds over the measured number of epochs per year. It is always labelled “estimated”.
- Realized APY (Monad): reward accrual net of commission over the last 30 epochs, annualised.
- LST APY on the LST dashboard is the average reported by Sanctum and is labelled with its source.
Data sources and update frequency
| Network | Sources | Score refresh |
|---|---|---|
| Solana | Solana RPC (vote accounts, block production, inflation rewards, stake accounts); Jito API for MEV; MaxMind GeoLite2 City and ASN for location | every 15 minutes; paid APY every 15 minutes after each epoch closes |
| Solana testnet | Solana testnet RPC; MaxMind GeoLite2 | every 15 minutes |
| NEAR | NEAR RPC (validators, epoch production and endorsement statistics, pool accounts); MaxMind GeoLite2 | every 10 minutes |
| Monad | Monad staking precompile (validators, delegators, rewards); MaxMind GeoLite2 | every 10 minutes |
| X1 | X1 RPC; MaxMind GeoLite2 | score history every 2 hours; live score on page load |
Geolocation is refreshed hourly for Solana and daily for X1 and Monad. Validator locations come from the IP addresses validators announce on their network.
Edge cases
- New validators. On Solana, the APY component uses the estimated APY until 3 epochs of paid rewards exist. On Monad, performance is neutral (8 of 16) while the reward history fills. On NEAR, missing performance, delegator or commission data scores the midpoint of that component.
- Missing location. No continent rarity and full hosting concentration (see common principles).
- Validators that pay nothing (100% commission) score 0 and are left out of the APY percentile range and the network average APY, so they do not distort the scale for everyone else.
- Delinquent validators are left out of the medians and stake shares other validators are compared against, but they are still scored and ranked.
Limitations
- IP geolocation can be wrong, and a hosting provider (ASN) is not the same as a single data center.
- Relative components move with the whole network, so a score can change without any change at the validator.
- Commission changes are detected from epoch snapshots and effective-commission measurement; very short-lived changes between samples can still be missed.
- The score does not measure client diversity, operational security, key management or the operator's identity.
- Score history is recorded forward only: past scores cannot be recomputed under a newer formula, so a change in methodology shows up as a step in the history.
- The D-Score is information, not investment advice.
Changelog
| Date | Change |
|---|---|
| 2026-10-01 | Solana: the APY component uses paid APY (last 10 epochs) instead of the model. The estimated-APY model was corrected: it had overstated returns by about 7% because it assumed more epochs per year than the network actually completes, and annualised MEV over 182 epochs instead of the measured number. Validators paying nothing were taken out of the APY percentile range and the network average. |
| 2026-08-20 | Solana: a 100% MEV commission became a penalty (score halved) instead of a disqualification. |
| 2026-08-10 | NEAR: D-Score introduced with real production statistics. |
| 2026-08-09 | Monad: D-Score introduced; geography added to the score and its weight raised. |
| 2026-07-27 | Mega-stake multiplier and the 2% superminority rule added. X1 started showing the 10-epoch average score. |
| 2026-07-26 | X1 moved to the Solana formula. |
| 2026-07-25 | Validators without a location no longer receive continent-rarity points. |
See the rankings: Solana · NEAR · Monad · X1 · Solana testnet. Machine-readable summary: llms.txt.