Rug Check API

Score a token's rug risk, read its vibe and KOLs, and pull the creator's history.

What you get

Three endpoints turn a Solana mint into a full read on a token: the Risk Score and the wallet signals behind it, the Vibe Score with live KOL and smart-money trades, and the token creator's track record. Every path takes a Solana token mint address and returns the standard JSON envelope. Authenticate with your X-API-Key against https://api.xaxios.com.

Endpoints

GET/rug-check/scan/{tokenAddress}

The Risk Score and the holder-behavior signals behind it. The eight signals are empty wallets, inactive wallets, coordinated buying, wallet similarity, single-purpose wallets, new wallets, bot activity, and connected (same-entity) wallets.

json
{
  "success": true,
  "data": {
    "globalScore": 27,
    "metrics": [
      { "key": "B1", "title": "Empty Wallets", "description": "Measures how many top holders appear to have abandoned or disposable wallets", "score": 12 },
      { "key": "B2", "title": "Inactive Wallets", "description": "Detects wallets that show signs of being inactive or single-use", "score": 20 },
      { "key": "B3", "title": "Coordinated Buying", "description": "Analyzes whether buying patterns suggest automated or synchronized activity", "score": 41 },
      { "key": "B4", "title": "Wallet Similarity", "description": "Checks if holder wallets share suspiciously identical structures", "score": 33 },
      { "key": "B5", "title": "Single-Purpose Wallets", "description": "Identifies wallets that appear to exist solely for holding this token", "score": 22 },
      { "key": "B6", "title": "New Wallets", "description": "Evaluates how many holders are using recently created wallets with little history", "score": 48 },
      { "key": "B7", "title": "Bot Activity", "description": "Detects signs of automated trading bots among the top holders", "score": 18 },
      { "key": "B8", "title": "Connected Wallets", "description": "Identifies groups of wallets that appear to be controlled by the same entity", "score": 29 }
    ],
    "signalThresholds": [
      { "min": 0,  "max": 40,  "level": "good" },
      { "min": 41, "max": 60,  "level": "warning" },
      { "min": 61, "max": 100, "level": "danger" }
    ]
  }
}
FieldTypeDescription
globalScorenumberRisk score from 0 to 100. Higher means riskier. Bucket it with signalThresholds.
metricsarrayAll eight holder-behavior signals (B1 to B8). Each item has key, title, description, and a score from 0 to 100 where higher is more suspicious.
signalThresholdsarrayScore bands: 0 to 40 good, 41 to 60 warning, 61 to 100 danger.
GET/rug-check/vibe/{tokenAddress}

The Vibe Score: how much attention a token is pulling right now, plus what KOLs and smart money are actually doing with it. A higher vibe means more eyes on the token and faster moves in either direction.

json
{
  "success": true,
  "data": {
    "traderScore": 62.5,
    "holderScore": 48,
    "metrics": [
      { "title": "Overall Popularity", "description": "Measures the overall social buzz and attention this token has gathered over time", "score": 62.5 },
      { "title": "Current Popularity", "description": "Reflects how much active interest and engagement this token has right now", "score": 48 }
    ],
    "influencerTrades": [
      {
        "name": "Crypto KOL",
        "handle": "cryptokol",
        "imageUrl": "/token-image/a1b2c3d4e5f6a7b8",
        "profileUrl": "https://x.com/cryptokol",
        "status": "bought",
        "pnl": 12480.55,
        "pnlPercent": 34.2,
        "holdPercent": 0.87,
        "lastTradeTime": 1720618200
      }
    ]
  }
}
FieldTypeDescription
traderScorenumberOverall Popularity, 0 to 100. Higher means more attention (the opposite direction to the Risk Score).
holderScorenumberCurrent Popularity, 0 to 100, based on who is holding right now.
metricsarrayThe vibe breakdown shown on the page: Overall Popularity and Current Popularity, each with a title, description, and score.
influencerTradesarrayRecent KOL and smart-money trades. Each has name, handle, imageUrl, profileUrl, status (bought / sold / holding), pnl, pnlPercent, holdPercent, and lastTradeTime (unix seconds).
GET/rug-check/dev-tokens/{tokenAddress}

The creator's track record: every token the wallet behind this one has launched before. A high rug rate across many past tokens is a loud warning.

json
{
  "success": true,
  "data": {
    "summary": {
      "createdTokenCount": 14,
      "ruggedTokenCount": 9,
      "ruggedTokenRate": 64.29,
      "migratedTokenCount": 2,
      "migratedTokenRate": 14.29
    },
    "tokens": [
      {
        "tokenSymbol": "MOON",
        "tokenContractAddress": "6dPXahFh4sT2Yr9kA1cW8b3vQeZ2mN7pL4kR9xJ2pump",
        "marketCap": 18250,
        "volume24H": 4310,
        "rugged": true,
        "migratedStatus": null,
        "tokenCreateTime": 1718900400,
        "tokenLogoUrl": "/token-image/9f8e7d6c5b4a3210",
        "holderCount": 143,
        "liquidity": 0
      },
      {
        "tokenSymbol": "SUNSET",
        "tokenContractAddress": "9xQeR2mN7pL4kR9xJvQeZ2mN7pL4kR9xJ2b3vQe8bonk",
        "marketCap": 421000,
        "volume24H": 88700,
        "rugged": false,
        "migratedStatus": "1",
        "tokenCreateTime": 1717430400,
        "tokenLogoUrl": null,
        "holderCount": 512,
        "liquidity": 31200
      }
    ],
    "hasToken": true
  }
}
FieldTypeDescription
summaryobjectAggregates: createdTokenCount, ruggedTokenCount, ruggedTokenRate, migratedTokenCount, migratedTokenRate (rates are percentages).
tokensarrayThe individual tokens the creator launched before. Each has tokenSymbol, tokenContractAddress, marketCap, volume24H, rugged, migratedStatus, tokenCreateTime (unix seconds), tokenLogoUrl, holderCount, and liquidity.
hasTokenbooleanWhether any creator history was found.

Try it live

Pick an endpoint, paste your xax_ key, and send a real request against a Solana mint.

Request
curl -s "https://api.xaxios.com/rug-check/scan/So11111111111111111111111111111111111111112" \ -H "X-API-Key: YOUR_API_KEY"
Response

Choose an endpoint, paste your key, and send a request to see the live JSON response.

Code samples

The scan endpoint in curl, JavaScript, and Python:

요청
curl -s "https://api.xaxios.com/rug-check/scan/{mint}" \
  -H "X-API-Key: YOUR_API_KEY"
응답
200 OKapplication/json
{
  "success": true,
  "data": {
    "globalScore": 19,
    "metrics": [
      { "key": "B1", "title": "Empty Wallets", "description": "Measures how many top holders appear to have abandoned or disposable wallets", "score": 24 },
      { "key": "B2", "title": "Inactive Wallets", "description": "Detects wallets that show signs of being inactive or single-use", "score": 12 },
      { "key": "B3", "title": "Coordinated Buying", "description": "Analyzes whether buying patterns suggest automated or synchronized activity", "score": 8 },
      { "key": "B4", "title": "Wallet Similarity", "description": "Checks if holder wallets share suspiciously identical structures", "score": 21 },
      { "key": "B5", "title": "Single-Purpose Wallets", "description": "Identifies wallets that appear to exist solely for holding this token", "score": 15 },
      { "key": "B6", "title": "New Wallets", "description": "Evaluates how many holders are using recently created wallets with little history", "score": 9 },
      { "key": "B7", "title": "Bot Activity", "description": "Detects signs of automated trading bots among the top holders", "score": 33 },
      { "key": "B8", "title": "Connected Wallets", "description": "Identifies groups of wallets that appear to be controlled by the same entity", "score": 41 }
    ],
    "signalThresholds": [
      { "min": 0, "max": 40, "level": "good" },
      { "min": 41, "max": 60, "level": "warning" },
      { "min": 61, "max": 100, "level": "danger" }
    ]
  }
}

Typical agent workflow

To size up a token, call all three endpoints on the same address. scan gives you the risk score and holder signals, dev-tokens gives you the creator's rug and migration record, and vibe gives you live KOL and smart-money conviction. Read them together instead of trusting any single number.