Documentación

Obtén un veredicto en menos de un minuto.

Todo aquí funciona sin registro — tus primeros 5 escaneos cada mes son gratis, sin clave API — y 250 al mes con una clave gratuita. Elige tu camino abajo.

Obtén una clave API gratis

250 escaneos al mes, gratis para siempre. Sin tarjeta, sin cargos.

Tu email se usa para tu clave y avisos del servicio. Nada más.

Why we ask. 98.5% of the addresses that scan here use exactly one scan and never come back — and 1,656 of them share a single identical browser fingerprint, one request each. Limits counted per address cannot see a pattern like that, because every request looks like a different person. One email keeps the free tier genuinely free for people actually using the tool.

Para todos · sin código

Comprueba un token desde tu navegador

No necesitas ser desarrollador para usar Cabal-Hunter. El diamond map es gratis y te muestra el grafo de wallets visualmente.

  1. Copia el mint address del token — la cadena larga de DexScreener, GMGN, pump.fun o tu wallet (se ve como Ad3w…pump).
  2. Abre cabal-hunter.com/map y pégalo en la caja de búsqueda.
  3. Lee el mapa. Cada diamond es una wallet (tamaño = tenencia). Las líneas son enlaces de funding — los diamonds conectados fueron financiados desde la misma fuente. Los clusters rojos son la cabal. Haz clic en cualquier diamond para verificarlo en Solscan.
Regla general: un token sano se ve como diamonds dispersos y sin conexión. Un rug en espera se ve como una telaraña — muchos holders cableados a una sola fuente de funding, a menudo creados en el mismo bloque.
Para bot builders

API REST

Un solo GET, cualquier lenguaje. Sin auth para tus 250/mes gratis — el contador es por IP.

cURL — pruébalo ahora mismo

curl "https://api.cabal-hunter.com/api/scan-cabal?mintAddress=<MINT>"

Python

import requests

r = requests.get(
    "https://api.cabal-hunter.com/api/scan-cabal",
    params={"mintAddress": mint},
    timeout=30,
).json()

if r["recommendation"] == "AVOID" or r["cabal_score"] >= 65:
    abort_buy()

JavaScript / TypeScript

const r = await (await fetch(
  `https://api.cabal-hunter.com/api/scan-cabal?mintAddress=${mint}`
)).json()

if (r.recommendation === "AVOID" || r.cabal_score >= 65) {
  abortBuy()
}

Muchos tokens a la vez — /api/scan-batch

¿Filtrando un feed? Envía hasta 25 mints en una sola petición en vez de iterar. Una fila por mint, en el orden enviado. Un mint que no se pueda analizar devuelve una fila de error sin romper el lote. Un escaneo por mint; requiere clave (una gratuita sirve).

curl -X POST "https://api.cabal-hunter.com/api/scan-batch" \
  -H "X-API-Key: <YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"mints":["<MINT>","<MINT>"]}'

Telegram — sin instalar nada

Pega un mint a @TheCabalHunter_Bot y responde en el chat con el mismo veredicto, historial del deployer y análisis de holders. /watch <mint> te avisa en cuanto empieza un volcado coordinado. t.me/TheCabalHunter_Bot

Headers de respuesta útiles

HeaderSignificado
X-Free-Queries-RemainingEscaneos gratis que quedan este mes para tu IP — vigílalo en tu bot y recarga antes de que llegue a cero.
X-Cabal-Risk-LevelHIGH / ELEVATED / LOW_SIGNAL — léelo sin parsear el body.
X-Cabal-RecommendationSAFE / REVIEW / AVOID — obsoleto. Usa X-Cabal-Risk-Level.
X-Cabal-ScoreEl score de 0–100.
X-Key-Credits-RemainingSaldo restante en tu clave prepagada (al enviar X-API-Key).
También gratis: GET /api/cex-funding?mint= (qué exchanges financiaron a los holders), GET /api/trade-analysis?mint= (PnL por cohorte + score de wash-trade) y POST /api/watch (push por webhook en cuanto empieza un dump coordinado en un token que tienes). Spec legible por máquina: openapi.json.
Para agent developers

MCP — Claude, Cursor, VS Code

Cabal-Hunter es un servidor MCP alojado en https://api.cabal-hunter.com/mcp que expone una herramienta: check_cabal_risk(mintAddress). Tu agente la llama antes de cualquier swap — automáticamente.

Instalaciones en un clic

⚡ Instalar en VS Code ⚡ Instalar en Cursor

Claude Code (CLI)

claude mcp add --transport http cabal-hunter https://api.cabal-hunter.com/mcp

Claude Desktop claude_desktop_config.json

{
  "mcpServers": {
    "cabal-hunter": {
      "command": "npx",
      "args": ["mcp-remote", "https://api.cabal-hunter.com/mcp"]
    }
  }
}

Luego solo pregunta

"Check the cabal risk on Ad3wM19jfM6DGbGaoswz3orJ5WHXWEjBGKpRZ2ggpump before I buy."
Tip de system-prompt para agentes de trading: añade "Llama a check_cabal_risk antes de cualquier compra en Solana. No compres si risk_level es HIGH o cabal_score ≥ 65." — esa línea hace el gate automático.
Para ElizaOS builders

Plugin de ElizaOS

Un plugin de npm publicado añade la acción CHECK_CABAL_RISK a cualquier agente Eliza.

npm install elizaos-plugin-cabal-hunter

Regístralo en tu character

import { cabalHunterPlugin } from "elizaos-plugin-cabal-hunter"

export const character = {
  ...
  plugins: [cabalHunterPlugin],
}
Para tu dashboard

Widget de badge en vivo

Dos líneas de HTML renderizan una tarjeta de veredicto en vivo — círculo de score, señales, enlace al mapa en vivo — para cualquier token, en cualquier sitio. Funciona en HTML plano, React, donde sea.

<div class="cabal-hunter-badge" data-mint="YOUR_TOKEN_MINT"></div>
<script src="https://api.cabal-hunter.com/widget.js" defer></script>

Opciones

AtributoQué hace
data-mintObligatorio. El mint de Solana a escanear y mostrar.
data-refresh="120"Re-escanea cada N segundos (mín 60) — veredictos en vivo mientras operas.
data-api-key="ch_live_…"Usa tu clave prepagada una vez que pasas el tier gratis.
Referencia

Campos de la respuesta

Los campos que tu código realmente usará. Schema completo: openapi.json.

CampoSignificado
cabal_score0–100. ≥65 = riesgo ALTO, ≥35 = CAUTION, por debajo = señal baja.
risk_levelHIGH / ELEVATED / LOW_SIGNAL — lo que observamos. LOW_SIGNAL significa que nuestras comprobaciones no saltaron; no es una calificación de seguridad.
recommendationSAFE / REVIEW / AVOID — obsoleto, se mantiene para que los bots existentes sigan funcionando. Usa risk_level.
riskHIGH / MEDIUM / CLEAN.
verdictResumen en lenguaje claro de todo lo encontrado — legible por humanos, guárdalo en logs.
time_synctrue = los holders compraron en el mismo bloque exacto (lanzamiento bundled).
coordinated_exittrue = varios holders dumpeando en el mismo bloque, ahora mismo.
top_holder_pctParticipación del mayor holder individual no-LP sobre el supply.
deployer.verdictFIRST_LAUNCH / NORMAL / POOR_TRACK_RECORD / SERIAL_LAUNCHER — más su historial de lanzamientos.
coordinated_clusters[]Cada cluster: type (funding / time_sync / coordinated_exit), % combinado del supply, y evidence_txs[] — las transacciones de prueba.
filtered_clusters[]Clusters que excluimos como ruido CEX (p. ej. funding compartido de Binance) — mostrados para que verifiques que no ocultamos nada.
honeypot_riskSeñales de honeypot nativas de Solana: freeze authority activa, trampas de Token-2022.
liquidity_usd · market_capEn vivo desde DexScreener al momento del escaneo.
free_queries_remainingEscaneos gratis que quedan este mes para tu IP.
Precios y claves

Gratis para la mayoría. $9/mes si tu bot no para.

Un token trazado en las últimas 8 horas se responde desde ese rastreo (computed_at indica cuándo); cualquier otro ejecuta un rastreo on-chain en vivo. Nunca se cobra automáticamente: los pagos cripto son push-only, así que siempre mantienes el control.

Tier gratis — la mayoría se queda aquí

5 escaneos al mes sin registro alguno, luego 250 con una clave gratuita. Un email, sin tarjeta. El campo free_queries_remaining y el header X-Free-Queries-Remaining muestran tu saldo en cada respuesta, y aparece un campo warning cuando quedan 20.

Más allá del gratis — dos opciones

$9/mes Ilimitado (uso justo, 50k/mes) para bots 24/7 — o pago por uso a $0.001/escaneo, cualquier monto desde $1. En ambos casos es un pago en USDC desde cualquier wallet de Solana.

Obtener una clave (60 segundos, sin cuenta)

  1. Envía USDC en Solana a la wallet mostrada en /pricing — $9 para Ilimitado, o cualquier monto ≥ $1 para créditos de pago por uso.
  2. Canjea la transacción: pega la firma de la tx en /pricing, o desde código: POST /api/buy-key {"tx_signature": "…"}
  3. Usa la clave devuelta como header en cada escaneo: X-API-Key: ch_live_… — consulta el saldo cuando quieras en GET /api/key-balance.
Para agentes autónomos: también se soporta el flujo x402 pay-per-call — el body de la respuesta 402 contiene instrucciones de pago completas legibles por máquina (destinatario, monto, memo), así que un agente puede pagar y reintentar sin un humano.
LIVE MONITORING

Watch a token you already hold

A scan answers what is behind a token right now — a question you ask once. A watch answers whether it is still safe to hold, which is a question that never stops being worth asking. We poll the token continuously and POST your webhook the moment a coordinated dump or a liquidity drain begins.

Register a watch

Needs a key so that only you can see or remove your own watches. A free key is enough.

curl -X POST https://api.cabal-hunter.com/api/watch -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" -d '{"mint":"<MINT>","webhook_url":"https://your-bot.example.com/hook"}'

Your webhook must resolve to a public address. Loopback, private ranges, link-local and cloud-metadata targets are refused — that field is a common way to attack the server receiving it, and we do not accept it on ours.

Manage them

GET /api/watch lists only your own watches, with used and limit so your client never has to guess its headroom. DELETE /api/watch removes one; omit webhook_url to remove every watch you hold on that mint.

Re-registering the same mint and URL is idempotent and does not consume another slot. If you reach your plan limit the API answers 429 and tells you the limit and how many you are using.

What arrives when it fires

Every claim comes with the transactions that prove it. evidence_txs are Solscan-verifiable signatures, so your bot can confirm the alert on-chain instead of trusting us — the same principle as the scanner.

{ "event": "dump_detected", "mint": "<MINT>", "reason": "price -34% since last check", "drop_pct": 34.2, "price_usd": 0.0000021, "previous_price_usd": 0.0000032, "liquidity_usd": 4200, "previous_liquidity_usd": 9100, "coordinated": true, "coordinated_detail": { "wallet_count": 7, "sold_pct": 41.2, "slot": "slot 298471123", "evidence_txs": ["...", "...", "..."] }, "verify": "https://cabal-hunter.com/map?mint=<MINT>", "action": "consider_immediate_exit" }
A watch reports what we observed on-chain. It is not a prediction, not financial advice and not a guarantee that you can still exit — liquidity may already be gone by the time anyone can act. Always do your own research.
COMPLEMENTO DE PAGO

Tu propia lista privada de monederos

Guarda una lista de monederos que te importan y cada escaneo te dirá también cuáles de ellos están realmente en el token, en el campo screen_list del resultado. $9 al mes sobre cualquier clave, también las gratuitas. Cancela cuando quieras.

Actívalo

Devuelve un enlace de pago para la clave que hizo la llamada. No se crea nada nuevo: el complemento se activa en la clave que ya tienes.

curl -X POST https://api.cabal-hunter.com/api/screen-list/checkout -H "X-API-Key: YOUR_KEY"

Añade un monedero

La etiqueta es solo tuya y únicamente se te muestra a ti. Una lista admite hasta 500 monederos; las direcciones se validan, así que una cadena parecida se rechaza indicando el motivo en vez de guardarse en silencio.

curl -X POST https://api.cabal-hunter.com/api/screen-list -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" -d '{"wallet":"<WALLET>","label":"for my eyes only"}' curl https://api.cabal-hunter.com/api/screen-list -H "X-API-Key: YOUR_KEY" curl -X DELETE https://api.cabal-hunter.com/api/screen-list/<WALLET> -H "X-API-Key: YOUR_KEY"

Qué recibes

Cada escaneo incluye un objeto screen_list: checked, matches y hits[], con el monedero, tu etiqueta, su rol (holder o cluster_funder) y su porcentaje del suministro cuando se conoce.

"screen_list": { "checked": true, "matches": 1, "hits": [ { "wallet": "<WALLET>", "label": "for my eyes only", "role": "holder", "pct": 4.1 } ] }

checked: true con cero coincidencias significa que la comprobación SE HIZO y no encontró ninguna, que es distinto de no haberla hecho. La ausencia de coincidencia nunca es un certificado de limpieza para un monedero que no incluiste.

Tu lista es privada de tu clave. No publicamos ninguna lista de monederos ni afirmamos a quién pertenece una dirección: una coincidencia es una observación on-chain, nunca una declaración sobre una persona.
Solución de problemas

Respuestas rápidas

Me sale HTTP 402

Tu IP usó sus 250 escaneos gratis este mes. El body de la respuesta lista las dos formas de seguir ($9 Ilimitado o $0.001/escaneo). Los contadores se reinician el día 1.

El escaneo tarda unos segundos

Los tokens en frío necesitan un rastreo on-chain en vivo (15–20s). Los ya indexados vuelven en <100ms. Pasa pairCreatedAt (timestamp en ms de DexScreener) para acelerar los escaneos en frío.

El score dice CLEAN pero el token hizo rug

CLEAN significa sin cabal coordinada — no puede predecir a un dev solitario retirando liquidez con un grafo de wallets limpio. Combínalo con top_holder_pct, deployer.verdict y liquidez para la imagen completa — y mira la demo en vivo para ver cómo rinde en nuestro propio bot.

¿Otra cosa?

Usa la caja de feedback en la homepage — nos llega directo — o escribe a @CabalhunterAPI.