Documentation

Obtenez un verdict en moins d'une minute.

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.

Obtenez une clé API gratuite

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.

Pour tous · sans code

Vérifiez un token depuis votre navigateur

Pas besoin d'être développeur pour utiliser Cabal-Hunter. La diamond map est gratuite et vous montre le graphe des wallets visuellement.

  1. Copiez le mint address du token — la longue chaîne de DexScreener, GMGN, pump.fun ou votre wallet (ça ressemble à Ad3w…pump).
  2. Ouvrez cabal-hunter.com/map et collez-le dans la barre de recherche.
  3. Lisez la map. Chaque diamond est une wallet (taille = détention). Les lignes sont des liens de funding — les diamonds connectées ont été financées par la même source. Les clusters rouges sont la cabal. Cliquez sur n'importe quelle diamond pour la vérifier sur Solscan.
Règle générale : un token sain ressemble à des diamonds dispersées et non connectées. Un rug en attente ressemble à une toile d'araignée — beaucoup de holders câblés à une seule source de funding, souvent créés dans le même bloc.
Pour les bot builders

API REST

Une requête GET, n'importe quel langage. Pas d'auth pour vos 250/mois gratuits — le compteur est par IP.

cURL — essayez tout de suite

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()
}

一次扫描多个代币 — /api/scan-batch

在筛选新币列表?一次请求最多可发送 25 个代币地址,无需循环调用。每个地址返回一行结果,顺序与请求一致。无法分析的地址会返回错误行,而不会导致整批失败。每个地址计一次扫描;需要密钥(免费密钥即可)。

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 — 无需安装

把代币地址粘贴给 @TheCabalHunter_Bot,它会在聊天里给出同样的结论、开发者记录和持有人分析。/watch <mint> 会在协同抛售或撤池开始时立刻通知你。 t.me/TheCabalHunter_Bot

Headers de réponse utiles

HeaderSignification
X-Free-Queries-RemainingScans gratuits restants ce mois pour votre IP — surveillez-le dans votre bot et rechargez avant qu'il n'atteigne zéro.
X-Cabal-Risk-LevelHIGH / ELEVATED / LOW_SIGNAL — lisez-le sans parser le body.
X-Cabal-RecommendationSAFE / REVIEW / AVOID — obsolète. Préférez X-Cabal-Risk-Level.
X-Cabal-ScoreLe score de 0–100.
X-Key-Credits-RemainingSolde restant sur votre clé prépayée (en envoyant X-API-Key).
Aussi gratuit : GET /api/cex-funding?mint= (quels exchanges ont financé les holders), GET /api/trade-analysis?mint= (PnL par cohorte + score de wash-trade) et POST /api/watch (push webhook dès qu'un dump coordonné démarre sur un token que vous détenez). Spec lisible par machine : openapi.json.
Pour les agent developers

MCP — Claude, Cursor, VS Code

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.

Installations en un clic

⚡ Installer dans VS Code ⚡ Installer dans 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"]
    }
  }
}

Ensuite, demandez simplement

"Check the cabal risk on Ad3wM19jfM6DGbGaoswz3orJ5WHXWEjBGKpRZ2ggpump before I buy."
Astuce system-prompt pour agents de trading : ajoutez "Appelle check_cabal_risk avant tout achat Solana. N'achète pas si risk_level est HIGH ou cabal_score ≥ 65." — cette ligne rend le gate automatique.
Pour les ElizaOS builders

Plugin ElizaOS

Un plugin npm publié ajoute l'action CHECK_CABAL_RISK à n'importe quel agent Eliza.

npm install elizaos-plugin-cabal-hunter

Enregistrez-le dans votre character

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

export const character = {
  ...
  plugins: [cabalHunterPlugin],
}
Pour votre dashboard

Widget badge en direct

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>

Options

AttributCe que ça fait
data-mintRequis. 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é.
Référence

Champs de réponse

Les champs que votre code utilisera vraiment. Schéma complet : openapi.json.

ChampSignification
cabal_score0–100. ≥65 = risque ÉLEVÉ, ≥35 = CAUTION, en dessous = signal faible.
risk_levelHIGH / 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é.
recommendationSAFE / REVIEW / AVOID — obsolète, conservé pour que les bots existants continuent de fonctionner. Préférez risk_level.
riskHIGH / MEDIUM / CLEAN.
verdictRésumé en langage clair de tout ce qui a été trouvé — lisible par un humain, à logger.
time_synctrue = les holders ont acheté dans le même bloc exact (lancement bundled).
coordinated_exittrue = plusieurs holders qui dumpent dans le même bloc, en ce moment.
top_holder_pctPart du plus gros holder individuel non-LP sur le supply.
deployer.verdictFIRST_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_riskSignaux honeypot natifs Solana : freeze authority active, pièges Token-2022.
liquidity_usd · market_capEn direct depuis DexScreener au moment du scan.
free_queries_remainingScans gratuits restants ce mois pour votre IP.
Tarifs et clés

Gratuit pour la plupart. 9 $/mois si votre bot ne s'arrête jamais.

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.

Tier gratuit — la plupart y restent

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.

Au-delà du gratuit — deux options

9 $/mois Illimité (usage équitable, 50k/mois) pour bots 24/7 — ou à l'usage à 0,001 $/scan, tout montant à partir de 1 $. Dans les deux cas, un paiement USDC depuis n'importe quelle wallet Solana.

Obtenir une clé (60 secondes, sans compte)

  1. Envoyez de l'USDC sur Solana à la wallet affichée sur /pricing — 9 $ pour l'Illimité, ou tout montant ≥ 1 $ pour des crédits à l'usage.
  2. Validez la transaction : collez la signature de la tx sur /pricing, ou depuis le code : POST /api/buy-key {"tx_signature": "…"}
  3. Utilisez la clé renvoyée comme header à chaque scan : X-API-Key: ch_live_… — vérifiez le solde à tout moment sur GET /api/key-balance.
Pour les agents autonomes : le flux x402 pay-per-call est aussi supporté — le body de la réponse 402 contient des instructions de paiement complètes et lisibles par machine (destinataire, montant, memo), donc un agent peut payer et réessayer sans humain.
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.
OPTION PAYANTE

Votre propre liste privée de portefeuilles

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. 9 $/mois en plus de n'importe quelle clé, y compris gratuite. Annulable à tout moment.

Activer

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"

Ajouter un portefeuille

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"

Ce que vous recevez

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 liste est privée, liée à votre clé. Nous ne publions aucune liste de portefeuilles et n'affirmons rien sur le propriétaire d'une adresse — une correspondance est une observation on-chain, jamais une affirmation sur une personne.
Dépannage

Réponses rapides

J'obtiens un HTTP 402

Votre IP a utilisé ses 250 scans gratuits ce mois. Le body de la réponse liste les deux façons de continuer (9 $ Illimité ou 0,001 $/scan). Les compteurs se réinitialisent le 1er.

Le scan prend quelques secondes

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.

Le score dit CLEAN mais le token a rug

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.

Autre chose ?

Utilisez la boîte de feedback sur la homepage — ça nous arrive directement — ou pinguez @CabalhunterAPI.