A new token has no history.
The wallets in it do.
We indexed every pump.fun and letsbonk migration since 9 May 2026: 31,786 tokens and the 625,769 wallets that traded them. A launch is covered within a minute of migrating, and the verdict is calibrated against the ones that already finished. The hit rate is published below.
A REST API over that record.
Plain HTTP, JSON both ways, and every response says what it cost. One POST mints a key; USDC funds it.
Pick a plan
A monthly allowance of credits against every endpoint. It arrives on the 1st and resets at the end of the month; pay a multiple of the price and it buys that many months. No card on file and nothing renews by itself — a month lapses into silence, never into a charge.
- 150,000 credits every month
- ≈ 1,071 full dossiers, or 75,000 screens
- Every endpoint, the same data agents get
- Runs out? Calls fall back to your balance
- 400,000 credits every month
- ≈ 2,857 full dossiers, or 200,000 screens
- Every endpoint, the same data agents get
- Runs out? Calls fall back to your balance
- 1,000,000 credits every month
- ≈ 7,142 full dossiers, or 500,000 screens
- Every endpoint, the same data agents get
- Runs out? Calls fall back to your balance
- A month of our output, or more
- Priced by conversation, not a list
The wallet shows the exact amount and recipient before anything moves,
and the page claims the payment for you. Prefer the raw flow?
POST /v1/plans takes a plan name and a transaction
signature. There is no free plan — /v1/sample answers
one real token in full, free and without a key.
Three calls to your first paid answer
Mint a key
No signup required. It is returned once and starts empty, so save it. Sign in first and it lands in Your keys below instead.
curl -X POST https://api.mindjack.xyz/v1/keys \
-H 'content-type: application/json' \
-d '{"label":"my-bot"}'
Fund it
Send USDC on Solana to the address GET /v1/credits/deposit
returns, then post the signature. A signature credits exactly once.
curl -X POST https://api.mindjack.xyz/v1/credits/deposit \
-H 'X-API-Key: mj_live_...' \
-d '{"tx_signature":"..."}'
Call it
Every response carries _meta.billing with what that call
actually cost and what is left.
curl https://api.mindjack.xyz/v1/screen/<mint> \
-H 'X-API-Key: mj_live_...'
Or stop asking
Hold one connection open and every token arrives on it the moment its
analysis finishes, with the same fields /v1/discover returns.
Billing is per token delivered, never per connection or per minute, so a
stream that matches nothing all night costs nothing.
curl -N 'https://api.mindjack.xyz/v1/stream/migrations?max_rug_pct=40' \
-H 'X-API-Key: mj_live_...'
event: token
data: {"mint":"...","verdict":"low","rug_probability_pct":34.8,
"market_cap_at_analysis":38400,"holders":212,"as_of":"..."}
max_rug_pct, min_mcap and platform
are applied before anything is charged, so you pay for the tokens you
asked for and not the ones you were going to throw away. Connecting
costs nothing: the last hour is history rather than news, so a fresh
stream starts silent and bills from the next token onward. Drop the
connection and reconnect with Last-Event-ID to resume
without a gap.
Two more feeds ride the same contract — per event delivered,
filters applied before billing, Last-Event-ID resume.
curl -N 'https://api.mindjack.xyz/v1/stream/wallets?watch=<wallet1>,<wallet2>' \
-H 'X-API-Key: mj_live_...'
event: wallet
data: {"mint":"...","matches":[{"wallet":"...","roles":["insider","fresh"]}],
"platform":"pumpfun","facts":{"insider_supply_pct":25.4,...}}
curl -N 'https://api.mindjack.xyz/v1/stream/kols?min_sol=0.5&side=buy' \
-H 'X-API-Key: mj_live_...'
event: trade
data: {"kol":{"wallet":"...","name":"Crypto Pirate"},"mint":"...",
"side":"BUY","sol":1.02,"realized_sol":null,"roi_pct":null,"at":"..."}
watch
narrows to up to 50 KOL wallets, min_sol drops dust,
side keeps one direction — all applied before
billing, so a filtered-out trade is free. Events arrive on the
record within seconds — and the record lands a median twelve
seconds after the chain, with confirmation tails to a few minutes.
The event
id is the trade id: reconnect with Last-Event-ID and
nothing is billed twice.
Beyond the feeds, the newest depth calls: the KOL ledger
(/v1/kols, /v1/kol), index-wide funder
networks, archive search and the token web — every endpoint,
priced and with a working example, in the guide at
api.mindjack.xyz/llms.txt.
Your keys
A key minted here belongs to your account, so you can find it again, see
what it has spent and turn it off. It is an ordinary key otherwise —
the same one POST /v1/keys hands out, and nothing about your
account changes what a call costs.
No account needed. This mints a key right now:
curl -s -X POST 'https://api.mindjack.xyz/v1/keys' \
-H 'Content-Type: application/json' -d '{}'
The key is shown once, so save it. Send it as
X-API-Key. Sign in instead if you would rather manage
keys from this page and see what each one spent.
| Key | Label | Plan | Credits | Calls | Spent |
|---|
Keys are a plan feature: developer holds 1 active key, growth 3, business 5. A key's unused balance never expires and catches calls when its plan runs out.
What a call costs
| Endpoint | Price | Answers |
|---|---|---|
/v1/sample | free | One real token, in full |
/v1/coverage | free | What is in the index right now |
/v1/scorecard | free | Our measured hit rate, per band, with sample sizes |
/v1/screen/{mint} | $0.001 | Calibrated verdict and concentration facts |
/v1/stream/migrations | $0.001 | New launches pushed as they land, per token delivered |
/v1/stream/wallets | $0.005 | A wallet you watch resurfaces in a new analysis — pushed with its role, per event |
/v1/stream/kols | $0.002 | A tracked KOL trades — pushed with side, size and settled PnL, per trade delivered |
/v1/discover | $0.005 | Recent launches with a verdict on each |
/v1/search | $0.005 | Find any token we ever analysed, by symbol, name or mint |
/v1/inspect/{mint} | $0.005 | Who is in it: holders, wallet classes, groups |
/v1/wallets/{mint} | $0.005 | Who exactly, and tied to whom in this coin: insider, sniper, early, fresh, wash and KOL wallets with funders, links and groups |
/v1/web/{mint} | $0.04 | The token's web: connected launches with the shared wallets named, each one's outcome and recorded peak |
/v1/price/{mint} | $0.005 | What it did after we called it |
/v1/exit/{mint} | $0.005 | Whether you could sell right now, and at what loss |
/v1/wallet/{address} | $0.006 | What this wallet has done across every token |
/v1/wallet/{address}/network | $0.025 | Who a wallet moves with: counterparts with direction and volume, plus the second hop |
/v1/report/{mint} | $0.025 | Everything on one token in one call — verdict, who is in it, who is behind it |
/v1/report/{mint}?depth=full | $0.07 | The same, plus the outcome path, live sellability and the graph |
/v1/identity/{mint} | $0.025 | Who is behind it and what their last tokens did |
/v1/changes/{mint} | $0.025 | What moved since we analysed it (one live chain read) |
/v1/cohort | $0.025 | A hypothesis tested against measured outcomes |
/v1/serial-insiders | $0.025 | Wallets that turn up early in token after token |
/v1/funder-networks | $0.025 | Funders seeding fresh wallets across the index, exchanges named |
/v1/kols | $0.02 | Every tracked KOL ranked — realized SOL, win rate and a recent window, from the recorded trades |
/v1/kol/{address} | $0.02 | One KOL's record: per-token history and the latest trades |
/v1/compare | $0.025 | Two to four mints side by side |
/v1/graph/{mint} | $0.04 | The relationship edges themselves |
/v1/analyze/{mint} | $5 | Analyse a pre-migration token on demand — the only call that runs the pipeline |
A failed call, a timeout, and a token we have never seen all cost nothing. Bulk endpoints price per page, so a large page is not a way to buy the index at a discount. Every endpoint with its parameters and a copyable example: /api.
The full reference.
Every endpoint with its parameters, response fields and price.
Your agent can read the token, not the last 31,000.
The same data as an MCP server, so a model asks for it directly. It mints its own key on first use and pays per call.
{
"mcpServers": {
"mindjack": {
"command": "npx",
"args": ["-y", "@mindjack/mcp"]
}
}
}
api.mindjack.xyz/llms.txt.
What your agent can ask
Scan cheaply, pay for depth only at the decision point. Unknown tokens, failed calls and empty results are never billed.
get_samplefreeOne fixed token, answered in full — the complete check_token, inspect_token and token_identity responses for it, no key and no payment. Served by the same handlers as the paid tools, so it is what you would actually get.
get_coveragefreeWhat we hold, how fresh, and a mint guaranteed to have data. Call this first.
get_balancefreeWhat is left on your key, and what the last calls cost. Checking never costs anything.
get_scorecardfreeOur measured accuracy per risk band. Read it to decide how much weight to give a verdict.
check_token$0.001Is this one dangerous? Calibrated verdict, the concentration facts behind it, and the exit window. Cheap enough to call on everything you see.
find_tokens$0.005Recently analysed tokens, each already carrying a verdict, so you can rank locally before paying for depth.
inspect_token$0.005Who is holding it: top holders, the sniper / fresh / insider split, connected-group topology, tracked-trader activity.
check_wallet$0.006What a wallet did across every token we indexed. Vet a large holder, or one you are thinking of copying.
token_price_path$0.005What it did after we called it: peak, drawdown, and where it stands now.
token_identity$0.025Who is behind it. What its largest holders did in earlier launches, which sibling tokens the same wallets ran, and how those ended. The decision-point call.
token_report$0.025Everything we hold on one token in a single call: the verdict, who is in it and who is behind it. depth: "full" is $0.07 and adds the outcome path, live sellability and the wallet graph. Cheaper than the parts, and one round trip instead of three.
can_i_exit$0.005Can it be sold right now. A real Jupiter round trip at $100 and $1000: does a sell route exist, and what fraction of your money comes back. Every other call here tells you what happened to tokens like this one. This one tells you whether you can get out of this one.
token_changes$0.025Who sold since we analysed it. Reads the chain right now and diffs the large positions.
test_hypothesis$0.025Research, not screening. Describe the shape of token you care about and get what measurably happened to that cohort.
find_serial_insiders$0.025Who keeps turning up as an insider across the whole index. Each row carries the wallet's full cross-token footprint, so you can tell a serial insider from a bot that buys everything early.
compare_tokens$0.025Were these tokens run by the same people? Give 2-4 mints and get the wallets appearing in more than one, with the role each played in each.
token_graph$0.04How the holders are connected: edges with strength and confidence, cluster membership, wash-trading wallets. Come here when the concentration numbers look wrong and you need the shape, not the list.
search_tokens$0.005Find any token we ever analysed by symbol, name or exact mint, newest first. The finding aid for every other call: it turns a half-remembered ticker into the mint the rest of the API wants.
token_wallets$0.005The named wallets behind one token: insiders, snipers, early buyers, fresh wallets, wash traders and KOLs, with funders and cluster membership. The list the summary numbers are counting.
kol_leaderboard$0.02Every tracked KOL ranked by realized SOL, win rate or recent form, a page at a time. Lifetime record beside the last-days window, so a hot streak cannot pose as a career.
kol_record$0.02One KOL's full record: per-token history, entries and exits, and the latest trades as they settled. Come here after the leaderboard names someone.
wallet_network$0.025Who a wallet moves with: counterparts by volume and direction, then the second hop. The shape of a crew around one address.
funder_networks$0.025The funders seeding fresh wallets across the whole index, exchanges named, page by page. Where disposable wallets get their gas.
token_web$0.04Launches tied to this one through shared wallets, with outcomes and peak sizes. The serial-operator view: what else this crew has shipped, and how those ended.
What a credit costs an agent
Credits are prepaid and never expire, and these are rate bands, not packages: any amount works, and a deposit earns the rate of the highest band it reaches. There is no account tier to qualify for and no subscription attached to any of this — larger is simply better per dollar, so splitting a transfer never pays.
| Deposit | Credits per $100 | Per 1,000 credits | Bonus |
|---|---|---|---|
| any amount | 200,000 | $0.50 | — |
| $100 and up | 260,000 | $0.38 | +30% |
| $500 and up | 320,000 | $0.31 | +60% |
| $2,000 and up | 400,000 | $0.25 | +100% |
Your first deposit also carries a one-time 10,000 credit welcome on deposits of $10 or more.
The guide a model reads first.
Plain text, no parsing required, kept in step with the live route table.
Our measured hit rate
Re-measured weekly against ground truth. This table is what
get_scorecard returns, and it is public because a score you
cannot audit is a score you should discount.
| Score | Verdict | Collapsed | Median time to collapse | Sample |
|---|---|---|---|---|
| 70+ | extreme | 78.3% | 19s | 1,122 |
| 58-69 | critical | 60.3% | 52s | 970 |
| 42-57 | elevated | 43.5% | 3m 23s | 2,951 |
| 22-41 | elevated | 42.6% | 7m 4s | 1,978 |
| 8-21 | low | 38.6% | 9m 51s | 1,695 |
| 0-7 | low | 34.8% | 11m 12s | 1,349 |
The base rate across the whole index is 45.0%, so the bands are doing real work at both ends. Read them as ranking, not as certainty. The score range is what identifies a row; the verdict is a label derived from the measured collapse rate, which is why it can repeat. Two adjacent score bands that really did collapse at the same rate get the same name rather than an invented gap between them.
Verdicts are served from cache, never from the live pipeline, so they come back at tool-call speed: p95 was 41ms across 50 distinct tokens when last measured on 7 August 2026.
What we will not pretend
An agent that gets burned once by a confident wrong answer does not come back. These are the edges of what we know.
Solana only, and only from our start date
Every pump.fun and letsbonk migration since 9 May 2026 — complete inside that window, nothing before it. The record is point-in-time and cannot be rebuilt later, so testing with an older token you already know returns nothing and tells you nothing about us.
We do not predict price
Where upside appears it is a measured historical frequency for a cohort, not a forecast, and not adjusted for fees or slippage.
A gap is reported as a gap
Every response carries _meta.coverage and
_meta.billing. A token we have never seen comes back as
coverage: "none" and costs nothing. We would rather say
“we do not know” than dress absence up as a clean result.