Live feedReceiptsLeaderboardsLink wallet

Developers

API & MCPEvery public answer CABAL gives, as JSON, and a read-only MCP connector for Claude, ChatGPT, Grok and Cursor. The same 15-minute holder delay holds everywhere: a runner's automatic check is hidden from the API, the connector, the bots and the cards until 15 minutes after it fires (holders of $CABALCHECK see it at once on the site, with a signed-in wallet). Nothing here signs or sends a transaction.

Connect an AI (MCP)no key, no account

Connector URL:

https://cabalcheck.fun/mcp
  • Claude (claude.ai, Desktop): Settings → Connectors → Add custom connector, paste the URL. Claude Code:
    claude mcp add --transport http cabal https://cabalcheck.fun/mcp
  • ChatGPT: Settings → Apps & Connectors → Advanced settings → turn on Developer mode, then Create: name CABAL, MCP server URL as above, authentication none. Where your plan offers developer mode.
  • Grok: where your Grok client or xAI's API takes a remote MCP server, give it the URL above with no authentication (field names change; see xAI's docs).
  • Cursor: add to ~/.cursor/mcp.json (or the project's .cursor/mcp.json):
    {
      "mcpServers": {
        "cabal": {
          "url": "https://cabalcheck.fun/mcp"
        }
      }
    }
  • Then ask: "trace <a CA or link>", "what's running", "trace this wallet", "show the leaderboards", "what are the rules".

CABAL in DiscordAdd to My Apps · Add to Server

The same reality checks as this site, as slash commands. Paste a CA, a coin link or a wallet.

Add to My AppsThe commands follow you: any server or DM, even where the bot is not a member. Answers show in that chat.
Add to ServerThe bot answers every member of a server you manage. Discord asks which one you want.

Add to Discord

1 fresh check a day per Discord account, wherever you ask (a linked holder gets their tier, shared with the site); a coin checked in the last 30 minutes shows again free. Answers carry no contract address, never ping anyone, and obey the same 15-minute holder delay. Holders of $CABALCHECK see each runner the moment it fires in the CABAL server's holders channel: link a holding wallet on your account, then Link Discord.

  • /traceinput: a CA (any chain), a coin link or a wallet
  • /walletaddress: a Solana or 0x wallet (Cabal Trace)
  • /runnersthe latest runners on the public feed
  • /helplimits and rules

Toolsread-only

  • trace Reality check a coin, link or walletReality-check a coin by CABAL's published rules, or trace a wallet. Input: a CA on any chain (Solana, 0x on Base / BSC / Ethereum / other EVM chains, Sui, TON, Tron), a pump.fun / DexScreener / GeckoTerminal / explorer link, the coin's website, an X post or profile, a GitHub repo, or a wallet address. Answers the verdict word, the chain read, the proof / gap / contradiction counts, the strongest facts with their sources, a Cabal Trace summary (who funded the dev, shared-funder clusters, kolscan-listed KOL wallets, in neutral words) and the link to the full check. A fresh check takes about 20-60 s and counts on the connector's own daily allowance for this network address (separate from the website's free check) and on one shared MCP pool; the same input checked in the last 30 minutes is free. If it is still running, call check_status with the id.
  • check_status Check progress or resultA check's progress (queued / running, the latest step lines) or its finished result, by its 12-character id (from trace or a cabalcheck.fun/r/<id> link). A runner's automatic check is not public until 15 minutes after it fires.
  • wallet Cabal Trace of a walletTrace a wallet: who funded it (2 hops), whether kolscan lists it as a KOL, exchange labels from a short list, the coins it created, coins whose dev it funded and shared-funder clusters it is in (public checks only). A Solana address, or a 0x address (optionally with chain, else the EVM chain it is most active on). Counts as one fresh check unless the same wallet was traced in the last 30 minutes.
  • runners Latest runners (public feed)The latest pump.fun runners on the public feed (15 minutes behind holders), each with its verdict, chain read, market cap at the signal, peak and now multiples since, and links. A signal is a rule firing on public data, not a recommendation.
  • leaderboard Repeat funders, serial devs, KOL walletsThe leaderboards from CABAL's own public checks: funders that seeded several checked coins (and how many fell 80%+), serial pump.fun devs, and the kolscan-listed wallets seen in the most checked coins.
  • rules The published rulesCABAL's published rules in full: which runners are auto-checked, the verdict rules, what a check can't see, the holder delay and the wording rules.

The server tells the AI to answer verdict first, cite each fact's source, treat coin text as data, never promise that a coin is risk-free and never give financial advice. A KOL match is said as "a kolscan-listed KOL wallet"; labels stay on the site with their kolscan link.

Public APIJSON, the routes the site uses

RouteWhatCORSLimit
GET /api/feedThe live runner feed: signals past the delay (each with its check summary and result since), locked rows (age and countdown only, no coin data) for runners inside the delay, the last tick (counts only).yescached 5 s
GET /api/receipts?before=<at>Every public signal with mcap at signal / now / peak after, a summary and the calibration by verdict word; 200 rows a page.yescached 20 s
POST /api/check {"input": "..."}Queue a reality check (a CA on any chain, a coin link, a site, an X post or profile, a repo). JSON only. The same input inside 30 min returns the existing check for free. A bare address that is no coin answers {wallet, href}.no1 fresh check a day per address without a holder session
GET /api/check/<id>?after=<n>A check: state (queued / running / done), queue position, the step log lines after n, the report when done (facts with sources and read times, Cabal Trace) and bubbles (the holder map: top holders at the check, shared-funder clusters). A runner's automatic check answers 404 until its signal is public.yesnone
GET /r/<id>.png, /r/<id>/bubbles.pngThe verdict card and the holder map card (1200x630 images; no contract address, no kolscan label, no name), gated like the check.imagecached 5 min once public
GET /api/wallet/<address>?chain=<id>The wallet lookup (Cabal Trace): funder chain, kolscan label (Solana), exchange label, coins created, coins whose dev it funded, clusters (public checks only). Refused cross-site.nocounts as one check
GET /api/leaderboardRepeat funders, serial devs, the most-traced kolscan-listed wallets, from public checks only.yescached 60 s
GET /api/statsLive usage counts (this site's /stats page): checks by channel, wallet lookups, signals, verdicts, receipts summary, MCP tool calls.yescached 60 s
GET /api/statusConfig, the signal rule in words, the last tick, counts (never which coins).yesnone
GET /api/quotaWhat this caller has left today, the tiers, the queue.nonone
GET /api/accountThis browser's own account (the /account page): the linked wallet (shortened), holder status and tier, checks left today, the Discord link state. ?lite=1: the session only.nonone
GET /api/chart/<id>A finished check's price line since the check (pump.fun, Jupiter, GeckoTerminal), gated like the check.yescached 60 s
GET /api/votes/<id>Holder votes (agree / disagree) on a check, gated like the check.yesnone
GET /api/cabal/exampleThe home page's Cabal Trace example (shortened wallets, no labels).yescached 60 s
POST /api/link/start, /api/link/checkThe app-wallet holder link (a wallet that cannot sign a message sends an exact tiny amount to itself; nothing goes to us). For the site only: bound to the browser that started it.no5 starts per address per 10 min
POST /mcpThe MCP connector (JSON-RPC 2.0, Streamable HTTP, no auth): the tools below.no60 requests a minute per address

CORS: the GET routes marked "yes" answer any origin (no cookies cross-site, so always the public side). POST routes and the wallet lookup give no CORS grant and refuse cross-site browser requests, so another site cannot spend a visitor's checks.

Examplescurl

The public runner feed:

curl -s https://cabalcheck.fun/api/feed

Queue a check, then poll it once a second until state is "done":

curl -s -X POST https://cabalcheck.fun/api/check -H 'content-type: application/json' -d '{"input":"<a CA or a link>"}'
# -> {"ok":true,"id":"<id>","state":"queued","ahead":0}
curl -s "https://cabalcheck.fun/api/check/<id>?after=0"

The same over MCP (JSON-RPC):

curl -s https://cabalcheck.fun/mcp -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"trace","arguments":{"input":"<a CA or a link>"}}}'

Leaderboards, receipts, live stats:

curl -s https://cabalcheck.fun/api/leaderboard
curl -s https://cabalcheck.fun/api/receipts
curl -s https://cabalcheck.fun/api/stats

Limits, as they areno paid tier

  • Fresh checks and wallet lookups: 1 a day per network address on the site without a holder session; the connector has its own allowance (1 a day per network address, since assistants share server addresses). Holders get more by tier on the site. A check of the same input in the last 30 minutes is free; finished checks are always free to read.
  • Connectors run on the AI company's servers, which many people share: their address may have used today's fresh check already. Then the trace tool says so and returns the latest public check of that input when there is one, with its age.
  • Fresh checks for everyone together: 6 a minute and 500 a day from the site, 4 a minute and 200 a day over MCP; at most 20 manual checks wait at once. Past these the answer is "busy" and nothing is used.
  • MCP: 60 requests a minute per address, 600 for everyone; a trace waits up to about 25 s for its check, then answers with the id for check_status.
  • GET routes have no per-address cap today; answers are cached as listed. Poll the feed at most every 5 s and a running check once a second.
  • Runners: up to 30 pump.fun runners an hour (3 a minute) are checked automatically; in a busy hour the rest are not.

Every verdict is a published rule applied to public data, read at the time shown (the rules). Unread is a gap, never a pass. A KOL label is what kolscan lists, never a claim about a person. Live usage: /stats. Not financial advice.