Tout ici fonctionne sans inscription — vos 5 premiers scans chaque mois sont gratuits, sans clé API — et 250 par mois avec une clé gratuite. Choisissez votre voie ci-dessous.
250 scans par mois, gratuit pour toujours. Sans carte, sans frais.
Votre email sert à votre clé et aux avis de service. Rien d'autre.
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.
Pas besoin d'être développeur pour utiliser Cabal-Hunter. La diamond map est gratuite et vous montre le graphe des wallets visuellement.
Une requête GET, n’importe quel langage. Pas d’auth pour vos 5 scans gratuits par mois ; une clé gratuite les porte à 250.
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["risk_level"] == "HIGH" 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.risk_level === "HIGH" || r.cabal_score >= 65) { abortBuy() }
Vous filtrez un flux ? Envoyez jusqu'à 25 mints en une requête au lieu de boucler. Une ligne par mint, dans l'ordre envoyé. Un mint impossible à analyser renvoie une ligne d'erreur sans faire échouer le lot. Un scan par mint ; une clé de l’offre Pro est requise.
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>"]}'
Collez un mint à @TheCabalHunter_Bot : il répond dans la conversation avec le même verdict, l'historique du déployeur et l'analyse des détenteurs. /watch <mint> vous alerte dès qu'un dump coordonné commence. t.me/TheCabalHunter_Bot
| Header | Signification |
|---|---|
| X-Free-Queries-Remaining | Scans gratuits restants ce mois pour votre IP — surveillez-le dans votre bot et rechargez avant qu'il n'atteigne zéro. |
| X-Cabal-Risk-Level | HIGH / ELEVATED / LOW_SIGNAL — lisez-le sans parser le body. |
| X-Cabal-Recommendation | SAFE / REVIEW / AVOID — obsolète. Préférez X-Cabal-Risk-Level. |
| X-Cabal-Score | Le score de 0–100. |
| X-Key-Credits-Remaining | Solde restant sur votre clé prépayée (en envoyant X-API-Key). |
Cabal-Hunter est un serveur MCP hébergé sur https://api.cabal-hunter.com/mcp exposant un outil : check_cabal_risk(mintAddress). Votre agent l'appelle avant chaque swap — automatiquement.
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 npm publié ajoute l'action CHECK_CABAL_RISK à n'importe quel agent Eliza.
npm install elizaos-plugin-cabal-hunter
import { cabalHunterPlugin } from "elizaos-plugin-cabal-hunter" export const character = { ... plugins: [cabalHunterPlugin], }
Deux lignes de HTML affichent une carte de verdict en direct — cercle de score, signaux, lien vers la map en direct — pour n'importe quel token, sur n'importe quel site. Fonctionne en HTML pur, React, partout.
<div class="cabal-hunter-badge" data-mint="YOUR_TOKEN_MINT"></div> <script src="https://api.cabal-hunter.com/widget.js" defer></script>
| Attribut | Ce que ça fait |
|---|---|
| data-mint | Requis. Le mint Solana à scanner et afficher. |
| data-refresh="120" | Re-scanne toutes les N secondes (min 60) — verdicts en direct pendant que vous tradez. |
| data-api-key="ch_live_…" | Utilisez votre clé prépayée une fois le tier gratuit dépassé. |
Les champs que votre code utilisera vraiment. Schéma complet : openapi.json.
| Champ | Signification |
|---|---|
| cabal_score | 0–100. ≥65 = risque ÉLEVÉ, ≥35 = CAUTION, en dessous = signal faible. |
| risk_level | HIGH / ELEVATED / LOW_SIGNAL — ce que nous avons observé. LOW_SIGNAL signifie que nos contrôles ne se sont pas déclenchés ; ce n'est pas une note de sécurité. |
| recommendation | SAFE / REVIEW / AVOID — obsolète, conservé pour que les bots existants continuent de fonctionner. Préférez risk_level. |
| risk | HIGH / MEDIUM / CLEAN. |
| verdict | Résumé en langage clair de tout ce qui a été trouvé — lisible par un humain, à logger. |
| time_sync | true = les holders ont acheté dans le même bloc exact (lancement bundled). |
| coordinated_exit | true = plusieurs holders qui dumpent dans le même bloc, en ce moment. |
| top_holder_pct | Part du plus gros holder individuel non-LP sur le supply. |
| deployer.verdict | FIRST_LAUNCH / NORMAL / POOR_TRACK_RECORD / SERIAL_LAUNCHER — plus leur historique de lancements. |
| coordinated_clusters[] | Chaque cluster : type (funding / time_sync / coordinated_exit), % combiné du supply, et evidence_txs[] — les transactions de preuve. |
| filtered_clusters[] | Clusters que nous excluons comme bruit CEX (ex. funding Binance partagé) — montrés pour que vous vérifiiez qu'on ne cache rien. |
| honeypot_risk | Signaux honeypot natifs Solana : freeze authority active, pièges Token-2022. |
| liquidity_usd · market_cap | En direct depuis DexScreener au moment du scan. |
| free_queries_remaining | Scans gratuits restants ce mois pour votre IP. |
Un token tracé dans les 8 dernières heures est servi depuis ce traçage (computed_at indique quand) ; tout autre token lance un traçage on-chain en direct. Rien n'est jamais débité automatiquement : les paiements crypto sont push-only, vous gardez toujours le contrôle.
5 scans par mois sans aucune inscription, puis 250 avec une clé gratuite. Un email, sans carte. Le champ free_queries_remaining et le header X-Free-Queries-Remaining affichent votre solde à chaque réponse, et un champ warning apparaît à 20 restants.
99 $/mois Illimité (usage équitable, 50k/mois) pour bots 24/7 — ou à l'usage à 0,01 $/scan, tout montant à partir de 1 $. Dans les deux cas, un paiement USDC depuis n'importe quelle wallet 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.
On the $9 plan (newest watch) and Pro (every watch), the same destination also receives insider events for 7 days.
The event field is one of: insider_dev_sold, insider_dev_sent (the dev sold,
or sent to other wallets, any amount); insider_exit (an insider sold everything it held);
insiders_selling, insiders_buying (3+ insiders sold, or added, within 90 s);
insiders_digest (several of these on one token within a minute, in one message). Each carries
mint; wallet or wallets; role (dev, first_seconds, sent_by_dev,
paid_by, minted, sent); amount_pct / group_pct (share of supply); left_pct;
full_exit; sig / sigs (Solscan-verifiable transactions); verify
(map link). Insiders are the dev, the first-seconds buyers, and holders whose first tokens did not come from buying.
Observation, not a prediction.
Needs a key so that only you can see or remove your own watches. Any key gets the alert by email (leave webhook_url out and it goes to the address on your key); delivery to a webhook, Discord or Slack is part of the Pro plan.
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"
}Gardez une liste de portefeuilles qui vous intéressent : chaque scan indique aussi lesquels sont réellement dans le token, via le champ screen_list du résultat. Inclus dans l'offre Pro (99 $/mois). Résiliable à tout moment.
Renvoie un lien de paiement pour la clé qui a fait l'appel. Rien de neuf n'est créé : l'option s'active sur la clé que vous avez déjà.
curl -X POST https://api.cabal-hunter.com/api/screen-list/checkout -H "X-API-Key: YOUR_KEY"Le libellé n'appartient qu'à vous et ne vous est montré qu'à vous. Une liste accepte jusqu'à 500 portefeuilles ; les adresses sont validées, donc une chaîne ressemblante est refusée avec la raison plutôt que stockée en silence.
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"Chaque scan gagne un objet screen_list : checked, matches et hits[], avec le portefeuille, votre libellé, son rôle (holder ou cluster_funder) et sa part de l'offre quand elle est connue.
"screen_list": {
"checked": true,
"matches": 1,
"hits": [
{ "wallet": "<WALLET>", "label": "for my eyes only",
"role": "holder", "pct": 4.1 }
]
}checked: true avec zéro correspondance signifie que le filtrage A EU LIEU et n'a rien trouvé — ce n'est pas la même chose que pas de filtrage du tout. L'absence de correspondance n'est jamais un certificat de bonne santé pour un portefeuille que vous n'avez pas listé.
Votre IP a utilisé ses 250 scans gratuits ce mois. Le body de la réponse liste les deux façons de continuer (99 $ Illimité ou 0,01 $/scan). Les compteurs se réinitialisent le 1er.
Les tokens à froid nécessitent un trace on-chain en direct (15–20s). Les déjà indexés reviennent en <100ms. Passez pairCreatedAt (timestamp en ms de DexScreener) pour accélérer les scans à froid.
CLEAN signifie pas de cabal coordonnée — ça ne peut pas prédire un dev solo qui retire la liquidité avec un graphe de wallets propre. Combinez avec top_holder_pct, deployer.verdict et la liquidité pour l'image complète — et regardez la démo en direct pour voir sa performance sur notre propre bot.
Utilisez la boîte de feedback sur la homepage — ça nous arrive directement — ou pinguez @CabalhunterAPI.