> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solanatracker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Token Safety & Rugcheck

> Check token safety scores, detect freeze and mint authority, flag bundlers and insiders, and build a rug screener using the Solana Tracker Data API.

Before buying a token, check whether it has safety risks. The Data API returns a detailed risk score on every token object. It covers freeze authority, mint authority, bundler activity, insider concentration, developer holdings, and liquidity depth.

## Get the Risk Score

The risk score is included in the standard [token info](/data-api/get-token-information) response under `risk`. Higher score means higher risk. The final score uses a 1–10 range, even though individual risk factors use larger internal weights.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://data.solanatracker.io/tokens/6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const token = "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN";

  const res = await fetch(`https://data.solanatracker.io/tokens/${token}`, {
    headers: { "x-api-key": "YOUR_API_KEY" }
  });
  const data = await res.json();

  const risk = data.risk;
  console.log(`Risk score: ${risk.score}/10`);
  console.log(`Rugged: ${risk.rugged}`);
  console.log(`Risk factors: ${risk.risks.length}`);
  risk.risks.forEach(r => {
    console.log(`  [${r.level.toUpperCase()}] ${r.name}: ${r.description}`);
  });
  ```

  ```python Python theme={null}
  import requests

  token = "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN"
  data = requests.get(
      f"https://data.solanatracker.io/tokens/{token}",
      headers={"x-api-key": "YOUR_API_KEY"}
  ).json()

  risk = data["risk"]
  print(f"Risk score: {risk['score']}/10")
  for r in risk["risks"]:
      print(f"  [{r['level'].upper()}] {r['name']}")
  ```
</CodeGroup>

**Risk response shape:**

```json theme={null}
{
  "score": 7.4,
  "rugged": false,
  "risks": [
    {
      "name": "Freeze Authority Enabled",
      "description": "Tokens can be frozen and prevented from trading in the future",
      "level": "danger",
      "score": 7500
    },
    {
      "name": "Top 10 Holders",
      "description": "Top 10 holders own more than 15% of the total supply",
      "level": "danger",
      "score": 5000
    }
  ]
}
```

***

## Key Risk Factors

### Freeze Authority

Freeze authority lets the token creator lock wallets out of trading at will. This is one of the most dangerous flags — if enabled, the dev can freeze your wallet after you buy.

```javascript theme={null}
const isFreezeEnabled = data.risk.risks.some(r => r.name === "Freeze Authority Enabled");
if (isFreezeEnabled) {
  console.log("🚨 Freeze authority is ON — dev can freeze your tokens");
}
```

### Mint Authority

Mint authority means the token owner can print unlimited new tokens, diluting your position to zero.

```javascript theme={null}
const isMintEnabled = data.risk.risks.some(r => r.name === "Mint Authority Enabled");
if (isMintEnabled) {
  console.log("🚨 Mint authority is ON — supply can be inflated at any time");
}
```

### LP Burned vs Removable

If liquidity has not been burned or locked, the developer may be able to remove the pool's trading funds. That can make selling difficult or impossible.

```javascript theme={null}
const lpNotBurned = data.risk.risks.some(r => r.name === "LP Burned");
if (lpNotBurned) {
  console.log("⚠️ LP not burned — dev can remove liquidity at any time");
}
```

### Bundler Activity

Bundlers are wallets that coordinated buys in the same transaction block at launch, often to accumulate a large position before anyone else can react. A `totalBundlerPercentage` above 20% is a serious red flag.

```javascript theme={null}
const bundlerRisk = data.risk.risks.find(r => r.name.toLowerCase().includes("bundl"));
if (bundlerRisk) {
  console.log(`⚠️ Bundler activity detected — ${bundlerRisk.description}`);
}
```

### Insider Concentration

Insiders are wallets connected to the deployer — early coordinated buyers or team wallets. When insiders hold a large percentage of supply, they can dump on you at any moment.

```javascript theme={null}
const insiderRisk = data.risk.risks.find(r => r.name.toLowerCase().includes("insider"));
if (insiderRisk) {
  console.log(`⚠️ Insider wallets detected: ${insiderRisk.description}`);
}
```

### Rugged Status

The `rugged` field is a direct Rugcheck signal. `true` means no liquidity remains and the token is considered unsafe to buy.

```javascript theme={null}
if (data.risk.rugged) {
  console.log("💀 Token is rugged — no liquidity");
}
```

***

## Build a Risk Screener

Filter tokens before displaying them in your app. Here's a screener that blocks tokens with any danger-level risk factor:

```javascript theme={null}
async function isSafe(token) {
  const res = await fetch(`https://data.solanatracker.io/tokens/${token}`, {
    headers: { "x-api-key": "YOUR_API_KEY" }
  });
  const data = await res.json();
  const { risk } = data;

  if (risk.rugged) return { safe: false, reason: "Rugcheck: token is rugged" };
  if (risk.score >= 8) return { safe: false, reason: `Risk score too high: ${risk.score}/10` };

  const dangerFlags = risk.risks.filter(r => r.level === "danger");
  if (dangerFlags.length > 0) {
    return { safe: false, reason: dangerFlags.map(r => r.name).join(", ") };
  }

  return { safe: true, score: risk.score };
}

const result = await isSafe("6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN");
console.log(result);
// { safe: false, reason: "Freeze Authority Enabled, Top 10 Holders" }
```

***

## Risk Score Reference

| Score range | Risk level | What it means                                     |
| ----------- | ---------- | ------------------------------------------------- |
| 1–3         | Low        | Clean token, no major flags                       |
| 4–6         | Medium     | Some warnings, review manually                    |
| 7–8         | High       | One or more danger factors — proceed with caution |
| 9–10        | Critical   | Multiple severe flags or confirmed rug            |

For the complete list of risk factors and their weights, see the [Risk Score Reference](/data-api/risk).

***

## Real-Time Safety Monitoring

Risk scores reflect a point-in-time snapshot. For live alerts — sniper wallet movements, dev selling, bundler activity as it happens — use the Safety Streams via Datastream WebSocket. See the [Safety Streams](/guides/datastream-safety) guide.
