Skip to main content
GET
/
v1
/
risk
/
token
Get Token Risk Assessment
curl --request GET \
  --url https://api.range.org/v1/risk/token \
  --header 'Authorization: Bearer <token>'
{
  "token_info": {
    "asset_address": "So11111111111111111111111111111111111111112",
    "name": "Wrapped SOL",
    "symbol": "SOL"
  },
  "overall_assessment": {
    "risk_level": "LOW",
    "risk_score": 123,
    "max_score": 123,
    "risk_percentage": 72.5
  },
  "summary": {
    "total_factors": 123,
    "high_risk_count": 123,
    "medium_risk_count": 123,
    "low_risk_count": 123
  },
  "risk_factors": {},
  "processing_time_ms": 154,
  "errors": [
    "<string>"
  ]
}
Evaluates up to 17 independent risk factors across multiple categories to identify potential threats, vulnerabilities, and suspicious attributes in tokens. See Understanding Risk Scores for general methodology. Key features:
  • Multi-factor analysis across 17 distinct risk dimensions
  • Real-time assessment with typical response times under 500ms
  • Graceful degradation when some data sources are unavailable
  • Human-readable explanations for each risk factor
Currently supports Solana. Ethereum support is in development. Base, Arbitrum, and Polygon are on the roadmap.

Parameters

ParameterTypeRequiredDescription
mint_addressstringYesSolana token mint address (32-44 character base58 string)
networkstringNoBlockchain network (default: solana). Currently only Solana is supported.

Response Schema

Top-Level Fields

FieldTypeDescription
token_infoobjectToken metadata: mint_address, name, symbol
overall_assessmentobjectRisk result: risk_level (LOW/MEDIUM/HIGH), risk_score, max_score, risk_percentage
summaryobjectFactor counts: total_factors, high_risk_count, medium_risk_count, low_risk_count
risk_factorsobjectIndividual assessments keyed by factor name. Each contains level and explanation.
processing_time_msnumberProcessing time in milliseconds.
errorsarrayNon-fatal errors (e.g., skipped assessments due to missing data).

Scoring System

Each risk factor scores: LOW = 0 points, MEDIUM = 1 point, HIGH = 2 points. Risk percentage = (total_score / max_possible_score) × 100
ClassificationThreshold
HIGH≥60% of maximum possible score
MEDIUM≥30% but <60%
LOW<30%
Custom threshold configuration is available for enterprise clients — contact info@range.org.

Risk Factors

The API evaluates up to 17 risk factors across 5 categories. Not all factors may be assessed for every token due to data availability.
Circulating Supply Ratio — Detects dilution risk from centralized mint authority control. LOW: >95% circulating, MEDIUM: 80–95%, HIGH: <80%.Freeze Authority — Identifies trading restriction risk. Freeze authority allows token accounts to be frozen, preventing trading. HIGH: present, LOW: absent/disabled.Mint Authority — Assesses supply inflation risk. Active mint authority enables unlimited token creation. HIGH: present, LOW: absent/disabled.
Market Capitalization — Smaller caps are more susceptible to manipulation. HIGH: <1M,MEDIUM:1M, MEDIUM: 1M–100M,LOW:100M, LOW: \>100M.Token Verification — Unverified tokens lack institutional due diligence. HIGH: unverified, LOW: verified.Liquidity — Low liquidity can trap holders. HIGH: <10K,MEDIUM:10K, MEDIUM: 10K–100K,LOW:100K, LOW: \>100K.Holder Count — Few holders indicate high concentration risk. HIGH: <100, MEDIUM: 100–1000, LOW: >1000.Top Holder Concentration — Extreme concentration enables coordinated dump attacks. HIGH: >90%, MEDIUM: 80–90%, LOW: <80%.
Price Volatility — Extreme swings suggest instability or manipulation. HIGH: >50%, MEDIUM: 20–50%, LOW: <20%.Wash Trading — Detects artificial trading creating false liquidity impressions. HIGH: suspicious in ≥2 timeframes, LOW: normal patterns.Organic Activity — Evaluates authentic demand vs bot-driven trading. HIGH: low organic score, MEDIUM: medium, LOW: high organic score.
Developer Migrations — Frequent team migrations indicate instability. HIGH: ≥5, MEDIUM: 2–4, LOW: <2.Exchange Listings — Major exchanges require due diligence. HIGH: no listings, MEDIUM: <3 or no major, LOW: major exchange listings.Launchpad Platform — Some platforms have higher historical fraud rates. HIGH: high-risk platforms (e.g., pump.fun), LOW: other platforms.Social Media Presence — Team transparency reduces exit scam risk. HIGH: no presence, LOW: active presence.
Token Age — New tokens lack operational track record. HIGH: <7 days, MEDIUM: 7–30 days, LOW: >30 days.Graduation Status — Recent launchpad graduations can create price volatility. MEDIUM: <7 days since graduation, LOW: >7 days or N/A.

Risk Factor Summary

FactorCategoryHIGHMEDIUMLOW
Circulating Supply RatioAuthority & Control<80%80–95%>95%
Freeze AuthorityAuthority & ControlPresentAbsent/Disabled
Mint AuthorityAuthority & ControlPresentAbsent/Disabled
Market CapitalizationMarket Structure<$1M1M1M–100M>$100M
Token VerificationMarket StructureUnverifiedVerified
LiquidityMarket Structure<$10K10K10K–100K>$100K
Holder CountMarket Structure<100100–1000>1000
Top Holder ConcentrationMarket Structure>90%80–90%<80%
Price VolatilityTrading Patterns>50%20–50%<20%
Wash TradingTrading PatternsSuspicious ≥2 TFNormal
Organic ActivityTrading PatternsLowMediumHigh
Developer MigrationsPlatform & Social≥52–4<2
Exchange ListingsPlatform & SocialNo listings<3/no majorMajor exchanges
Launchpad PlatformPlatform & SocialHigh-risk (pump.fun)Other platforms
Social Media PresencePlatform & SocialNo presenceActive presence
Token AgeTemporal<7 days7–30 days>30 days
Graduation StatusTemporal<7 days>7 days/N/A

Examples

Low-Risk Token (USDC)

curl -X GET "https://api.range.org/api/v1/ml/risk/assessment/token?mint_address=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&network=solana" \
  -H "Authorization: Bearer your-api-key"
{
  "token_info": {
    "mint_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "name": "USD Coin",
    "symbol": "USDC"
  },
  "overall_assessment": {
    "risk_level": "LOW",
    "risk_score": 6,
    "max_score": 26,
    "risk_percentage": 23.1
  },
  "summary": {
    "total_factors": 13,
    "high_risk_count": 3,
    "medium_risk_count": 0,
    "low_risk_count": 10
  },
  "risk_factors": {
    "circulating_ratio": {
      "level": "LOW",
      "explanation": ">95% circulating - minimal mint authority usage"
    },
    "freeze_authority": {
      "level": "HIGH",
      "explanation": "Freeze authority present - token accounts can be frozen by authority"
    },
    "minting_authority": {
      "level": "HIGH",
      "explanation": "Mint authority present - new tokens can be created, diluting existing holders"
    },
    "market_cap": {
      "level": "LOW",
      "explanation": "Market cap >$100,000,000 - established project"
    },
    "token_verification": {
      "level": "LOW",
      "explanation": "Token verified - passed institutional due diligence"
    }
  },
  "processing_time_ms": 378.2,
  "errors": [
    "Dev migration data not available - dev_migrations assessment skipped",
    "Exchange listing data not available - exchange_listings assessment skipped"
  ]
}
USDC shows LOW overall risk (23.1%) despite having freeze/mint authorities, demonstrating how multiple factors contribute to the final assessment.

Medium-Risk Token (Limited Data)

curl -X GET "https://api.range.org/api/v1/ml/risk/assessment/token?mint_address=5aaHbSR47rtH7m7pV5FEyoqkvGjGRE1xv3kzEjVw4YBx&network=solana" \
  -H "Authorization: Bearer your-api-key"
{
  "token_info": {
    "mint_address": "5aaHbSR47rtH7m7pV5FEyoqkvGjGRE1xv3kzEjVw4YBx",
    "name": "DEAD LAND SURVIVAL",
    "symbol": "$DEADLAND"
  },
  "overall_assessment": {
    "risk_level": "MEDIUM",
    "risk_score": 2,
    "max_score": 6,
    "risk_percentage": 33.3
  },
  "summary": {
    "total_factors": 3,
    "high_risk_count": 1,
    "medium_risk_count": 0,
    "low_risk_count": 2
  },
  "risk_factors": {
    "freeze_authority": {
      "level": "LOW",
      "explanation": "No freeze authority - accounts cannot be frozen"
    },
    "minting_authority": {
      "level": "LOW",
      "explanation": "No mint authority - token supply is fixed"
    },
    "organic_activity": {
      "level": "HIGH",
      "explanation": "Low organic score - indicates bot-driven trading activity"
    }
  },
  "processing_time_ms": 403.6,
  "errors": [
    "Circulating supply data not available - circulating_ratio assessment skipped",
    "Market cap data not available - market_cap assessment skipped",
    "Token verification data not available - token_verification assessment skipped",
    "Liquidity data not available - liquidity assessment skipped"
  ]
}
Tokens with limited data result in fewer assessed factors. The API adjusts the maximum possible score accordingly, but partial assessments should be treated with additional caution.

Errors

Invalid Address Format (422)

{
  "detail": [
    {
      "type": "string_pattern_mismatch",
      "loc": ["query", "mint_address"],
      "msg": "String should match pattern '^[1-9A-HJ-NP-Za-km-z]{32,44}$'",
      "input": "invalid_address",
      "ctx": { "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$" }
    }
  ]
}

Unsupported Network (400)

{
  "error": "Unsupported network",
  "error_type": "validation_error",
  "detail": "Only 'solana' network is supported",
  "mint_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}

Best Practices

  • Use the errors array to understand which risk factors were skipped due to data unavailability.
  • Tokens with fewer assessed factors may need additional manual review — a low score based on 3 factors is less reliable than one based on 13.
  • For compliance workflows, combine token risk assessment with the Address Risk Score for the token’s deployer address.
  • Test with known tokens (USDC, USDT, BONK) to understand response patterns before integrating.
Stablecoins:
  • USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
  • USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
Infrastructure:
  • Wrapped SOL: So11111111111111111111111111111111111111112
  • JUP: JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN
  • Pyth: HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3
Meme Tokens:
  • BONK: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
  • WIF: EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm
  • POPCAT: 7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr
interface TokenRiskResponse {
  token_info: {
    mint_address: string;
    name: string;
    symbol: string;
  };
  overall_assessment: {
    risk_level: "LOW" | "MEDIUM" | "HIGH";
    risk_score: number;
    max_score: number;
    risk_percentage: number;
  };
  summary: {
    total_factors: number;
    high_risk_count: number;
    medium_risk_count: number;
    low_risk_count: number;
  };
  risk_factors: Record<string, {
    level: "LOW" | "MEDIUM" | "HIGH";
    explanation: string;
  }>;
  processing_time_ms: number;
  errors: string[];
}

Authorizations

Authorization
string
header
required

Use Authorization: Bearer

Query Parameters

asset_address
string
required

Asset identifier (chain-agnostic). Currently only Solana token mint (base58, 32–44 chars) is supported.

Example:

"So11111111111111111111111111111111111111112"

network
enum<string>
required

Blockchain network for token risk (only solana supported)

Available options:
solana
Example:

"solana"

Response

200 - application/json

Token risk assessment with detailed factors and scoring

token_info
object
required

Basic token identification details

overall_assessment
object
required

Overall risk assessment aggregation

summary
object
required

Summary counts of risk factor severity levels

risk_factors
object
required

Map of risk factor key to its detailed assessment

processing_time_ms
number
required

Processing time in milliseconds for the assessment

Example:

154

errors
string[]
required

List of non-fatal errors encountered while computing the assessment

Last modified on March 2, 2026