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.
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.
No necesitas ser desarrollador para usar Cabal-Hunter. El diamond map es gratis y te muestra el grafo de wallets visualmente.
Un solo GET, cualquier lenguaje. Sin auth para tus 250/mes gratis — el contador es por IP.
curl "https://api.cabal-hunter.com/api/scan-cabal?mintAddress=<MINT>"
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()
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() }
¿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>"]}'
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
| Header | Significado |
|---|---|
| X-Free-Queries-Remaining | Escaneos gratis que quedan este mes para tu IP — vigílalo en tu bot y recarga antes de que llegue a cero. |
| X-Cabal-Risk-Level | HIGH / ELEVATED / LOW_SIGNAL — léelo sin parsear el body. |
| X-Cabal-Recommendation | SAFE / REVIEW / AVOID — obsoleto. Usa X-Cabal-Risk-Level. |
| X-Cabal-Score | El score de 0–100. |
| X-Key-Credits-Remaining | Saldo restante en tu clave prepagada (al enviar X-API-Key). |
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.
claude mcp add --transport http cabal-hunter https://api.cabal-hunter.com/mcp
{
"mcpServers": {
"cabal-hunter": {
"command": "npx",
"args": ["mcp-remote", "https://api.cabal-hunter.com/mcp"]
}
}
}
"Check the cabal risk on Ad3wM19jfM6DGbGaoswz3orJ5WHXWEjBGKpRZ2ggpump before I buy."
Un plugin de npm publicado añade la acción CHECK_CABAL_RISK a cualquier agente Eliza.
npm install elizaos-plugin-cabal-hunter
import { cabalHunterPlugin } from "elizaos-plugin-cabal-hunter" export const character = { ... plugins: [cabalHunterPlugin], }
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>
| Atributo | Qué hace |
|---|---|
| data-mint | Obligatorio. 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. |
Los campos que tu código realmente usará. Schema completo: openapi.json.
| Campo | Significado |
|---|---|
| cabal_score | 0–100. ≥65 = riesgo ALTO, ≥35 = CAUTION, por debajo = señal baja. |
| risk_level | HIGH / ELEVATED / LOW_SIGNAL — lo que observamos. LOW_SIGNAL significa que nuestras comprobaciones no saltaron; no es una calificación de seguridad. |
| recommendation | SAFE / REVIEW / AVOID — obsoleto, se mantiene para que los bots existentes sigan funcionando. Usa risk_level. |
| risk | HIGH / MEDIUM / CLEAN. |
| verdict | Resumen en lenguaje claro de todo lo encontrado — legible por humanos, guárdalo en logs. |
| time_sync | true = los holders compraron en el mismo bloque exacto (lanzamiento bundled). |
| coordinated_exit | true = varios holders dumpeando en el mismo bloque, ahora mismo. |
| top_holder_pct | Participación del mayor holder individual no-LP sobre el supply. |
| deployer.verdict | FIRST_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_risk | Señales de honeypot nativas de Solana: freeze authority activa, trampas de Token-2022. |
| liquidity_usd · market_cap | En vivo desde DexScreener al momento del escaneo. |
| free_queries_remaining | Escaneos gratis que quedan este mes para tu IP. |
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.
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.
$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.
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.
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.
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.
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"
}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.
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"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"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 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.
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.
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.
Usa la caja de feedback en la homepage — nos llega directo — o escribe a @CabalhunterAPI.