← Back to HODL

How HODL Health works

Current version: health-v0.3.0. 28 checks across 7 domains.

What Health is

Health is a 0 to 10 snapshot of the observable condition of a Solana token and its market, built only from data HODL could actually see at scan time.

It is not a prediction. A high score does not mean a token will go up, and a low score does not mean it will fail. It is not financial advice.

When data is missing, the check shows N/A and is left out of the average. It is never counted as zero. But a token whose Security or Liquidity could not be checked, or with under 60% of checks observed, is capped (see Score caps), so unknowns cannot make a token look healthy.

How the score is built

Each check scores 0 to 10. A domain score is the average of its observed checks. The overall score is the weighted average of the observed domains, with the weights re-scaled to the domains that had data.

Market15%
Liquidity25%
Flow15%
Holders15%
Creator10%
Security15%
Lifecycle5%

Score caps

An average can hide a serious problem, so certain red flags set a ceiling. The final score is the lower of the average and the lowest ceiling that applies. A rugged token can never score above 1, whatever else looks fine. The score screen shows which cap applied.

The ceilings are provisional. Flags that compare against a recorded peak apply only to tokens that have been on a watchlist, because that is when HODL records the peak.

RugCheck marks the token as ruggedmax 1.0
Price down 70% or more in 24hmax 2.0
Price down 50% or more in 24hmax 3.5
Price down 50% or more in 24h, but liquidity and holders heldmax 5.0
Same, and price has steadied over the last 6 hoursmax 6.5
Price down 50% or more in 6hmax 3.0
Price down 40% or more in the last hourmax 3.0
Liquidity down 70% or more from its recorded peakmax 2.0
Liquidity down 50% or more from its recorded peakmax 3.5
Price down 80% or more from its recorded peakmax 2.5
Price down 60% or more from its recorded peakmax 4.0
Pool reports no liquiditymax 1.5
Liquidity under $5,000max 3.0
Liquidity under $20,000max 5.5
Liquidity unreadable while the token still tradesmax 3.0
Fresh launch under 30 minutes, liquidity not indexed yetmax 5.0
Mint authority still setmax 4.5
Freeze authority still setmax 5.0
RugCheck flags permanent controlmax 3.0
Transfer fee above 5%max 3.0
Any transfer feemax 5.5
One non-pool wallet holds 50% or moremax 3.0
One non-pool wallet holds 30% or moremax 5.0
Insiders hold 40% or moremax 3.5
Insiders hold 20% or moremax 5.5
Pool under 1 hour oldmax 6.0
Pool under 24 hours oldmax 7.0
Under 30% buys in the last hour (30+ trades)max 5.5
Security or liquidity could not be checkedmax 5.0
Fewer than 60% of checks observedmax 6.0

Coverage and the Partial label

Coverage is the share of checks that were observed. When coverage is under 60%, or when Liquidity or Security could not be observed at all, HODL labels the result Partial instead of giving it a confident label.

Otherwise the display label comes from the score: 7.5 and above is Healthy, 5.5 and above is Mixed, 3.5 and above is Weak, and anything lower is Poor. The labels are for display and do not change the score.

Market (15%)

What is price actually doing?

5m price stability

How far price moved in the last 5 minutes, in either direction.

Scoring: 10 when flat, falling smoothly with the size of the move (about 3.7 at a 20% move).

1h price stability

How far price moved in the last hour.

Scoring: 10 when flat; about 3.7 at a 50% move.

6h price stability

How far price moved in the last 6 hours.

Scoring: 10 when flat; about 3.7 at an 80% move.

24h price stability

How far price moved in the last 24 hours.

Scoring: 10 when flat; about 3.7 at a 150% move.

Drawdown from 24h high

How far price sits below its highest point of the last 24 hours (from 15-minute candles).

Scoring: 10 at the high; about 3.7 when 40% below it.

Volatility (15m candles)

The typical candle-to-candle move over 24 hours, scaled to a 15-minute equivalent. Pools under 6 hours old use 5-minute candles.

Scoring: 10 when steady; about 3.7 at a 4% typical move.

Recovery from 24h low

After the largest drop of the last 24 hours, how much of it price has won back.

Scoring: 9 when there was no drop of 10% or more. Otherwise 3 (no recovery) up to 10 (fully recovered).

Liquidity (25%)

Can the market absorb trading?

Absolute liquidity

Dollar value of liquidity in the pool.

Scoring: Log scale: 0 at $1,000, 10 at $10 million.

Liquidity / market cap

Liquidity as a share of market cap.

Scoring: Log scale: 0 at 1%, 10 at 50%.

24h volume / liquidity

24h trading volume divided by liquidity.

Scoring: 9 from 0.1x to 5x, 6 from 5x to 15x, 5 from 0.02x to 0.1x, 3 above 15x (churn), 2 below 0.02x (dead market).

LP locked

Share of liquidity that is locked or burned, weighted across pools (from RugCheck).

Scoring: The locked percentage divided by 10.

Price impact ($1k buy)

Estimated price impact of a $1,000 buy, assuming an even constant-product pool.

Scoring: 10 at no impact; about 3.7 at 10% impact. This is an estimate, not a quote.

Flow (15%)

Who is buying and selling?

Buy/sell flow (1h, 6h fallback)

Buys versus sells by transaction count over the last hour, or the last 6 hours when the hour has fewer than 20 trades.

Scoring: 7 when balanced, 10 when all buys, 0 when all sells. N/A when both windows have fewer than 20 trades.

24h buy/sell flow

Buys versus sells by transaction count over 24 hours.

Scoring: Same scale as above. N/A under 20 trades.

Trading activity (24h)

Total number of trades in 24 hours.

Scoring: 2 under 50 trades, 5 under 300, 8 under 1,500, 10 above.

24h volume / market cap

24h trading volume divided by market cap. A very high ratio can mean churn or wash trading, though it cannot prove it.

Scoring: 10 at 5x or below, 0 at 60x or above, on a log scale between.

24h trades per holder

Total trades in 24 hours (buys plus sells) divided by the number of holders. Many trades from few holders can mean a few wallets trading back and forth.

Scoring: 10 at 10 trades per holder or fewer, 0 at 100 or more, on a log scale between. N/A under 100 trades.

Holders (15%)

Who owns the supply?

Top-holder concentration (excl. pools)

Share of supply held by the largest holder that is not a known pool.

Scoring: 10 at 10% or less, 0 at 50% or more, linear between.

Top 10 non-pool holders

Combined share of supply held by the 10 largest non-pool holders.

Scoring: 10 at 15% or less, 0 at 60% or more, linear between.

Holder count

Number of holders.

Scoring: Log scale: 0 at 10 holders, 10 at about 3,000.

Insider supply

Share of supply held by wallets RugCheck links to insiders.

Scoring: 10 at 0%, 0 at 25% or more.

Creator (10%)

Is the creator a risk?

Rugged flag

Whether RugCheck marks the token as rugged.

Scoring: 0 if rugged, 10 if not.

Creator allocation

Share of supply held by the creator wallet, when it appears among the top holders.

Scoring: 9 when the creator is not among the top holders. Otherwise 10 minus half the percentage held (0 at 20%).

Security (15%)

Can the contract hurt holders?

Mint / freeze authority

Whether the mint authority (can create more supply) and freeze authority (can freeze wallets) are revoked.

Scoring: 10 for each revoked authority, 0 for each still set, averaged.

Transfer fee

Whether the token charges a fee on transfers.

Scoring: 10 for none. Otherwise 10 minus twice the fee percentage.

Jupiter verification

Whether Jupiter lists the token as verified.

Scoring: 9 if verified, 5 if not. This is a listing check, not an endorsement.

Lifecycle (5%)

How mature is the token?

Token age

Time since the token was first detected.

Scoring: 1 under 1 hour, 3 under 6 hours, 5 under 24 hours, 7 under 3 days, 8.5 under 7 days, 10 after that.

Pool age

Time since the trading pool was created.

Scoring: Same scale as token age.

Data sources

Market data comes from DexScreener, chart candles from GeckoTerminal, and holder, lock and contract data from RugCheck. These are third parties. Their data can be late, incomplete or wrong, and HODL cannot verify it independently.

Known limits

Thresholds are provisional and will change as HODL learns from real tokens. Every change raises the version number below.

HODL does not yet see wallet-level activity such as whale sells or sniper clusters. Alerts compare scans taken about every 5 minutes, so fast moves between scans can be missed or reported late.

Version history

health-v0.3.0

Added wash-trading checks, a holder-count trend and RugCheck risk flags. Tape is now direction-aware and age penalties are softer. Young pools use 5-minute (and 1-minute under 2 hours) candles so market checks are not blank. Fresh launches are not treated as drained pools, and pump.fun bonding-curve tokens use curve reserves. A held 24h fall gets a higher ceiling, and higher again when price has steadied. Early-token ceilings are explained in the UI.

health-v0.2.0

Added score caps. A serious red flag now sets a ceiling the score cannot exceed, whatever the average says. Missing security or liquidity data and thin coverage also cap the score. Caps are provisional and are shown next to the score.

health-v0.1.2

Seven domains and 26 checks. Flow falls back to a 6-hour window when the last hour is too thin. Holder checks exclude known pools. Results are labelled Partial when coverage is low or Liquidity or Security was not observed.

health-v0.1.1

Added buy/sell flow from transaction counts, with N/A below 20 trades.

health-v0.1

First version: four groups and seven checks.