> ## 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.

# Leer puntuaciones y señales de riesgo en Solana

> Lee el objeto risk de un token: autoridades de mint y freeze, liquidez, concentración y factores de riesgo.

El objeto `risk` contiene una puntuación y sus factores. Consúltalos junto con la liquidez y los holders; una puntuación no garantiza la seguridad de un token.

## Obtén la puntuación de riesgo

La puntuación de riesgo se incluye en la respuesta estándar de [información de token](/es/data-api/tokens/get-token-information) bajo `risk`. Una puntuación más alta significa mayor riesgo. La puntuación final usa un rango de 1–10, aunque los factores de riesgo individuales usan pesos internos mayores.

<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>

**Forma de la respuesta de riesgo:**

```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
    }
  ]
}
```

## Factores de riesgo clave

### Freeze authority

Una freeze authority activa puede congelar cuentas de tokens. Comprueba qué dirección controla esa autoridad antes de mostrar el token como libre de restricciones.

```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

Una mint authority activa puede emitir más tokens. Muestra su estado junto con la oferta y los holders.

```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 quemada vs removible

La liquidez retirable puede afectar a la capacidad del pool para ejecutar swaps. Consulta el estado de la LP junto con la liquidez actual.

```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");
}
```

### Actividad de bundlers

Los campos de bundlers identifican wallets asociadas a transacciones agrupadas. `totalBundlerPercentage` mide su porcentaje de la oferta; elige el umbral de alerta según tu aplicación.

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

### Concentración de insiders

Los campos de insiders identifican wallets según las señales de la API. Revisa sus posiciones junto con los datos del developer y los primeros compradores.

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

### Estado de rug

Muestra `risk.rugged` junto con los factores de riesgo y el estado actual del pool.

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

## Construye un screener de riesgo

Este ejemplo excluye tokens con un factor de nivel danger. Adapta el filtro a los campos que necesite tu aplicación:

```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" }
```

## Referencia de la puntuación de riesgo

| Rango de puntuación | Nivel de riesgo | Qué significa |
| - | - | - |
| 1–3 | Bajo | Puntuación baja; revisa los factores individuales |
| 4–6 | Medio | Algunas advertencias, revísalo manualmente |
| 7–8 | Alto | Uno o más factores danger — procede con precaución |
| 9–10 | Crítico | Puntuación alta; revisa los factores y la marca rugged |

Para la lista completa de factores de riesgo y sus pesos, consulta la [referencia de puntuación de riesgo](/es/data-api/risk).

## Monitorización de seguridad en tiempo real

Las puntuaciones de riesgo reflejan una instantánea en un momento concreto. Para alertas en vivo — movimientos de wallets sniper, ventas del dev, actividad de bundlers en directo — usa los Safety Streams vía WebSocket de Datastream. Consulta la guía de [Safety Streams](/es/guides/datastream-safety).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.