Skip to content

About these pages: they explain Hodler Suite for its customers. Internal details, such as server paths, keys and network addresses, are deliberately left out.

How scores are calculated

This page gives the arithmetic behind every number in a report, step by step. Each step has its formula, a short worked example and what it means in practice. If you only want the short version, skip to In plain words at the end.

The same formulas and constants run for every customer and every plan. What a plan changes is which data sources are queried and which parts of the result you see (see Plans and data).


The pipeline at a glance

  1. Each of the 16 components gets a quality score from 1 to 10, where higher is better.
  2. Each quality score is turned into a component risk from 0 to 10, where higher is riskier.
  3. The component risks are weighted into a base risk from 0 to 100.
  4. The points of any red flags raised are added, up to 50.
  5. Market-structure adjustments for very few holders, thin trading or a very small market cap are added.
  6. The result is the risk score, from 0 to 150, and its band.

Two more figures are calculated alongside: the four category scores (0 to 100, higher is better) and confidence (how much of the expected data arrived).


Step 1: Component quality scores

Every component starts from rules that read the token's data: whether the contract's source code is verified, how many wallets hold the token, how much it trades, whether a screening service lists the address, and so on. Each rule adds or removes a fixed number of points from a starting value, which gives the component's rule score h, between 1 and 10.

For most components the rule score is then blended with the average reading of the specialised data services that cover that component:

qi=clamp((1−bi)·hi+bi·A¯i,1,10)

where bi is the component's blend share and A¯i is the weighted average of the readings the services produced:

A¯i=∑pwp·qp∑pwp

Each service p has a fixed weight wp for each component it informs. The sums run only over the services that returned a reading for this token, so the weights always add up over the services that actually answered. "Clamp" keeps the result between 1 and 10.

Component Blend share b
Marketing and demand 0.62
Code security 0.58
Compliance data 0.56
Development activity, Market dynamics 0.55
AML data 0.52
Business model, Global reach, Whitepaper quality, ESG impact 0.50
Industry impact, Technology and innovation 0.45
Roadmap adherence 0.44
Team expertise, Management strategy, Social data Rules only, no blend

Market-data services (prices, market cap, volume) feed the rules, but their readings never enter the average: knowing that a token has a price says nothing about its risk.

Worked example. A component has a rule score of 8.0, a blend share of 0.50, and two services answered: one reading 6.0 with weight 0.20 and one reading 4.0 with weight 0.10. The average is (6.0 × 0.20 + 4.0 × 0.10) ÷ 0.30 = 5.33, and the quality score is 0.5 × 8.0 + 0.5 × 5.33 = 6.67.

Readings from screening services

Screening services (sanctions lists, scam databases, honeypot detectors and similar) usually answer with a risk value. It is converted to the 1-to-10 quality scale in three moves:

  1. Scale: an answer on a 0-to-100 scale is divided by 10, one on a 0-to-1,000 scale by 100, so every answer lies between 1 and 10.
  2. Invert, so that higher means better:
    q=11−x

  3. Shrink toward the middle by a shrink factor fp, so that no single service can swing a component on its own. The factor is 0.30 for most screening services and 0.35 for TRM Labs, Lukka and OpenSanctions:
    qp=5+(q−5)·fp

A factor of 0.30 maps the full 1-to-10 range onto 3.8 to 6.5.

A decisive finding is not shrunk away. It caps the service's reading instead:

Finding Reading capped at
Honeypot detected (GoPlus or Honeypot.is) 1.0
Match on the OFAC or UK sanctions list (a UK match caps the OFAC reading), or in Breadcrumbs sanctions data 1.1
Chainalysis sanctions match, or listed by ScamSniffer 1.2
TRM Labs or OpenSanctions match 1.5
Three or more malicious indicators (GoPlus), or OKLink high risk 3.0

Worked example. A screening service rates an address 2 out of 10 for risk. Inverted, that is 11 − 2 = 9; shrunk with a factor of 0.30, it becomes 5 + (9 − 5) × 0.30 = 6.2. The same service reporting a sanctions match would give 1.1 instead, however the rest of its answer reads.

Components with their own screening blend

Four components also blend their screening readings into the rule score itself, before the main blend described above, so that the specialised evidence weighs more where it matters most:

Component Inside the component
AML data 74% rule score and 26% the plain average of the AML screening readings, kept below a ceiling of about 8.35 (at most 7.4 when a sanctions list matches); then 0.35 is taken off and the result is pulled toward the middle: 5 + (s − 5) × 0.74
Compliance data 70% rule score and 30% the average of the compliance readings, then 5 + (s − 5) × 0.82
Code security 72% rule score and 28% the average of the security readings
Development activity 74% rule score and 26% the average of the development readings

Adjustments for the kind of token

Two kinds of token lose quality points on specific components after the blend, never falling below 1.0:

  • A speculative memecoin loses 2.6 on industry impact, 2.2 on business model, 2.0 on technology and on team expertise, 1.4 on AML and on compliance data, and 1.0 on ESG impact.
  • A wrapped token loses 1.0 on code security and on compliance data, and 0.8 on business model.

When data is missing

Missing data is not treated as neutral. Each component starts from a cautious value between 3 and 5, and evidence has to be found to raise it. The social component, for example, starts at 3 and loses another 0.5 when at most one social or news source has anything on the token, so a token with no social evidence scores 2.5 there. A value of exactly 5.0 appears only if a component's calculation fails.


Step 2: From quality to risk

Each quality score qi is turned around into a component risk ri on a 0-to-10 scale:

ri=10−qi9×10
Quality q 10 8.2 5.5 2.8 1
Risk r 0 2 5 8 10

The best possible quality gives no risk, the worst gives the maximum, and everything in between is a straight line.


Step 3: The weighted base risk

The 16 component risks are combined with fixed weights wi into the base risk B, on a 0-to-100 scale:

B=10×∑i=116wi·ri∑i=116wi

The weights add up to 1.00:

Component Category Weight
Code security Contract 0.10
Business model Market 0.08
Social data Market 0.08
Industry impact Market 0.07
Technology and innovation Contract 0.07
Team expertise Behavior 0.07
Market dynamics Liquidity 0.07
Development activity Contract 0.06
AML data Behavior 0.06
Compliance data Behavior 0.06
Whitepaper quality Contract 0.05
Roadmap adherence Behavior 0.05
Management strategy Behavior 0.05
Global reach Market 0.05
Marketing and demand Market 0.05
ESG impact Behavior 0.03

By category, Market carries 0.33 of the weight, Behavior 0.32, Contract 0.28 and Liquidity 0.07. The weights are the same in EU mode and in Global mode.

Because the weights add up to 1, the base risk is simply a straight-line reading of the token's weighted average quality q¯=∑wiqi:

B=100×10−q¯9

Worked example. A token whose weighted average quality is 6.4 has a base risk of 100 × (10 − 6.4) ÷ 9 = 40.0.

Each component's own share of the base is 10×wi×ri points. A component weighted 0.08 with a risk of 5, for example, contributes 4 points.

The base can never exceed 100, so the components alone can make a token at most Medium risk. Only red flags and the adjustments below can take it into High or Extreme.


Step 4: Red flags

Each red flag raised adds a fixed number of points βk. Together they are capped at 50:

F=min(50,∑k∈raisedβk)
Red flag Points
Sanctions match (TRM Labs, Chainalysis, OFAC or the UK Sanctions List), each 45
EU regulatory issues (EU mode) 40
Honeypot (GoPlus) 35
MiCA non-compliant (EU mode) 35
Honeypot pattern (Honeypot.is) 30
Listed by ScamSniffer 28
Wrapped token 22
High risk (GoPlus: three or more malicious indicators) 22
High honeypot risk (Honeypot.is risk of 8 or more) 22
Speculative memecoin 18
High risk (OKLink) 18
Owner changed in the last 24 hours 15
Unverified contract 15
High holder concentration 15
Asset-referenced token 15
Low liquidity 12
Associated with honeypot activity (GoPlus) 10
Proxy contract 0 (shown as a warning; no points until its weight is measured)
No MiCA whitepaper (EU mode) 0 (informational)
Unlicensed EU stablecoin (EU mode) Overrides the score, see Step 6

A check that could not run reports Not checked and adds nothing. What each flag means and when it is raised is listed in Scoring model and categories.

Worked example. A token is flagged for a sanctions match (45) and, in EU mode, for EU regulatory issues (40). The flags add up to 85, so they count 50.


Step 5: Market-structure adjustments

A few signs of a fragile market add a smaller number of points, outside the red-flag cap:

Condition Points
2,500 holders or fewer +6
2,501 to 5,000 holders +4
Market cap of $5 million or less, with liquidity under 25% of the market cap +3
The same, with 5,000 holders or fewer as well +2 more
24-hour volume below the larger of $100,000 and 0.3% of the market cap +2
Wrapped token (in addition to its red flag) +8
The chain's own native token, when not wrapped −3

Together these make the market adjustment M, the wrapped-token penalty W and the native-token discount N.


Step 6: The risk score and its band

S=clamp(B+F+M+W−N,0,150)

Two rules can override the sum:

  • A speculative memecoin never scores below 50.5, so it is always at least Medium risk:
    S=max(S,50.5)

  • In EU mode, an unlicensed EU stablecoin scores 150, Extreme risk, whatever its other scores are.

The band follows from the score:

Band Score
Low 50 or less
Medium above 50, up to 100
High above 100, up to 120
Extreme above 120, up to 150

Worked example. A token with a base risk of 40.0 is flagged for an unverified contract (15) and low liquidity (12), and has 4,000 holders (+4). Its score is 40.0 + 27 + 4 = 71.0, Medium risk.

Total minus social

On Plus and above the report also shows the score without the social component. The social component's share of the base is

Csocial=10×wsocial×rsocial=0.8×rsocial

and Total minus social is clamp(S−Csocial,0,150). The difference between the two numbers is the social contribution. Because of how the social component is scored (see Social signals), it lies between 2.4 and about 6.7 points.


Category scores

The four category scores summarise the components in each category, on a 0-to-100 scale where higher is better, the opposite direction to the risk score. A category's score is the plain average of its components' quality scores, rescaled:

Gc=round(q¯c−19×100),q¯c=1nc∑i∈cqi
Category Components
Market Industry impact, Business model, Global reach, Marketing and demand, Social data
Liquidity Market dynamics
Behavior Team expertise, Management strategy, Roadmap adherence, AML data, Compliance data, ESG impact
Contract Code security, Technology and innovation, Development activity, Whitepaper quality

Category scores are a summary for reading the report. The risk score is calculated from the weighted components, not from the category scores.

Worked example. Contract components with quality scores of 7.2, 6.0, 8.1 and 5.5 average 6.7, so the Contract score is (6.7 − 1) ÷ 9 × 100 = 63.3, shown as 63.


Confidence

Confidence measures data coverage: how much of the evidence the engine expected for this token actually arrived. It never changes the risk score.

For each component, the expected sources Ei are the data services that cover the component, cover the token's chain, are included in your plan and could be called in this run. Services that were skipped or failed in this run (for example, because they were temporarily unavailable or had used up their allowance) are left out of the count. Each expected source earns a credit κp:

The source... Credit κ
returned usable data 1
answered, but had nothing on this token 0.35
gave nothing usable 0
ci=round(100×∑p∈Eiκp|Ei|)

If none of a component's sources could be called, all of them count as expected and the component's confidence is 0. The report then shows Partial data for that component.

The overall confidence pools every component's sources (a service that informs three components counts three times):

C=round(100×∑i∑p∈Eiκp∑i|Ei|)

No component is shown with a higher confidence than the overall figure. The report also shows the credits and the expected count behind the overall figure, as "N of M sources", and the category confidence is the average confidence of the category's components.

Confidence How to read it
High, 85% or more Almost every expected source answered.
Moderate, 60% to 84% Some evidence is missing; read the parts that rely on it with care.
Low, under 60% Review the token by hand before relying on the score.

Worked example. A component expects four sources. Three return data and one answers with nothing on the token, so its confidence is (1 + 1 + 1 + 0.35) ÷ 4 = 83.75%, shown as 84%, Moderate.


Plans and data

The formulas are the same on every plan, but the data they receive is not:

  • Free queries a primary set of sources: market data, DeFi data, block explorers and node providers, and the core security and sanctions checks. The specialised services that Basic and above add can move a component's quality score, so the same token can score differently on Free and on a paid plan.
  • Free and Basic do not collect social signals. The social component is then scored as a component with no social evidence (quality 2.5, risk 8.33), which adds 6.67 points to the base, and it is left out of the Market category score.
  • Plus and above collect social signals and show the social contribution separately.

In plain words

Hodler Suite looks at a token from 16 angles, such as the safety of its code, how it trades, who holds it, whether it appears on sanctions or scam lists, and how active its development is. Each angle gets a mark out of 10, built from fixed rules and from what specialised data services report. No single service can tip a mark on its own, except for serious findings like a sanctions match, which always count in full.

The 16 marks are combined with fixed weights into a risk score out of 100, where higher means riskier. Specific warning signs then add points on top, up to 50 more, which is why the scale goes to 150. A score of 50 or less is Low risk, up to 100 Medium, up to 120 High, and above 120 Extreme.

Missing information never makes a token look safer: when evidence cannot be found, it counts against the token. Confidence tells you how much of the expected evidence actually arrived, so a high-risk score with low confidence is a reason to look closer, not to stop looking.

Everything is calculated the same way for every token and every customer, so two reports can be compared fairly and any number in them can be traced back to this page.