Solana token due-diligence brief
POST /v1/token-briefHand over a Solana SPL mint address and get one cited due-diligence brief: what the token is, whether the mint and freeze authorities are still live, how deep and how locked the liquidity is (pools, lockers, unlock dates, DEX pairs, 24h volume and buy/sell balance), who holds it (top holders with pool and locker accounts told apart from wallets, concentration with and without pools), and every named risk flag the public feeds carry, plus what this data cannot see. Send POST /v1/token-brief with the required field mint and pay $0.60 per call over x402 with USDC on an EVM chain. It returns a JSON object with report, mint, sources, tables, evidence and 2 more.
Holders, pairs, pools and risks appendix included. Evidence from RugCheck, DexScreener and Jupiter, never a verdict and not investment advice. USDC (x402/MPP) or card (Stripe). Not cached.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
mint | string | yes | Base58 Solana SPL token mint address (32-44 chars). Also accepted as token, mintAddress, address, contract, tokenAddress. |
format | string (one of: markdown, json) | no | Response shape (default markdown report plus structured evidence). |
Example request
curl -i -X POST https://agent402.tools/v1/token-brief \
-H "Content-Type: application/json" \
-d '{"mint":"JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"}'
Without payment this returns HTTP 402 Payment Required with the exact price for token-brief; any x402 v2 or MPP client pays it and retries.
Example response
{
"report": "# Solana Token Due-Diligence Brief: Jupiter (JUP)\n\n**Mint** `JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN` · **Mint authority** revoked · **Freeze authority** revoked · **LP locked** partial-low · **Top-10 holders** very-high · **RugCheck band** danger\n\n## Snapshot\n...\n\n## What would change this brief\n...\n\nThis brief is evidence from public Solana data sources, not investment advice.\n\n## Sources\n[1] RugCheck full report for JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN - https://api.rugcheck.xyz/v1/tokens/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN/report",
"mint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"sources": [
{
"n": 1,
"title": "RugCheck full report for JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"url": "https://api.rugcheck.xyz/v1/tokens/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN/report"
}
],
"tables": [
{
"name": "holders",
"label": "Top holders",
"columns": [
"Rank",
"Owner",
"Token account",
"Share of supply",
"Type",
"Insider flag"
],
"rows": [
[
"1",
"EXJH...",
"6G4X...",
"24.77%",
"unlabelled wallet",
"no"
]
]
}
],
"evidence": {
"identity": {
"mint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"name": "Jupiter",
"symbol": "JUP",
"decimals": 6,
"supply": 6862431164.93,
"circulatingSupply": 3320312968.08,
"holderCount": 2873512,
"isVerified": true,
"organicScore": 99.31,
"organicScoreLabel": "high",
"launchpad": null,
"detectedAt": "2024-05-29T00:40:51Z",
"firstPool": {
"id": "2psp...",
"createdAt": "2024-01-29T17:33:29Z"
}
},
"price": {
"usd": 0.2027,
"change24hPct": -2.4,
"blockId": 440919030,
"marketCapUsd": 675335464.98,
"fdvUsd": 1395785031.78
},
"authorities": {
"mintAuthorityDisabled": true,
"freezeAuthorityDisabled": true,
"mintAuthority": null,
"freezeAuthority": null,
"metadataMutable": true,
"updateAuthority": "61aq...",
"transferFee": {
"pct": 0,
"maxAmount": 0
},
"creator": null,
"creatorBalance": 0,
"dev": "JUPh...",
"devBalancePct": null,
"devMints": 1
},
"liquidity": {
"totalMarketLiquidityUsd": 3585833.66,
"totalStableLiquidityUsd": 900000,
"totalLpProviders": 173,
"lpLockedPct": 8.98,
"marketsTotal": 1409,
"markets": [],
"lockers": [],
"pairsTotal": 30,
"pairTotals": {
"liquidityUsd": 95000000,
"volume24hUsd": 160000000,
"txns24h": 40000
},
"pairs": [],
"stats24h": null
},
"holders": {
"totalHolders": 2873512,
"concentration": {
"top1Pct": 24.77,
"top5Pct": 57.67,
"top10Pct": 66.1,
"top20Pct": 75.2,
"top10PctExcludingPools": 46.1,
"insiderHolders": 0,
"labeledPoolOrLockerAccounts": 2
},
"jupiterTopHoldersPct": 15.28,
"rows": []
},
"risk": {
"score": 3550201,
"scoreNormalised": 97,
"riskLevel": "danger",
"riskCounts": {
"danger": 1,
"warn": 1,
"info": 0
},
"rugged": false,
"insiderNetworks": 0,
"risks": []
},
"buckets": {
"mint": "revoked",
"freeze": "revoked",
"lpLocked": "partial-low",
"topHolders": "very-high",
"riskLevel": "danger"
},
"probes": {
"report": true,
"safety": true,
"pairs": true,
"lookup": true,
"price": true
}
},
"meta": {
"tier": "token-brief",
"mint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"name": "Jupiter",
"symbol": "JUP",
"mint_authority": "revoked",
"freeze_authority": "revoked",
"lp_locked_bucket": "partial-low",
"top10_bucket": "very-high",
"risk_level": "danger",
"top10_pct": 66.1,
"lp_locked_pct": 8.98,
"price_usd": 0.2027,
"holders_listed": 15,
"pairs_listed": 8,
"risk_flags": 2,
"probes": {
"report": true,
"safety": true,
"pairs": true,
"lookup": true,
"price": true
},
"sources_cited": 5,
"synthesis_model": "anthropic/claude-opus-5",
"fingerprint": "{\"mintAuthority\":\"revoked\",\"freezeAuthority\":\"revoked\",\"lpLocked\":\"partial-low\",\"topHolders\":\"very-high\",\"riskLevel\":\"danger\",\"dangerRisks\":1,\"risks\":[\"LP Vault unlocked\",\"Mutable metadata\"]}",
"disclaimer": "Evidence from public Solana data sources (RugCheck, DexScreener, Jupiter) at the time of the request. Not investment advice, not a verdict, not exhaustive."
},
"untrustedContent": true
}
| Field | Type | Always present | In the example |
|---|---|---|---|
report | string | yes | # Solana Token Due-Diligence Brief: Jupiter (JUP) **Mint** `JUPyiwrYJFskUPiH... |
mint | string | yes | JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN |
sources | array of objects | yes | 1 item in the example |
tables | array of objects | yes | 1 item in the example |
evidence | object | yes | 8 fields: identity, price, authorities, liquidity, holders, risk |
meta | object | yes | 20 fields: tier, mint, name, symbol, mint_authority, freeze_authority |
untrustedContent | boolean | yes | true |
From an MCP client
catalog.call {
"slug": "token-brief",
"params": {
"mint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"
}
}
The hosted connector at https://agent402.tools/mcp needs a payment for token-brief; the stdio package pays it from a wallet or from AGENT402_CREDITS_KEY. Local install: npx -y agent402-mcp.
Errors and behavior
mintis required. An input the tool rejects returns an HTTP 4xx whose body carrieserror,tool,expected,requiredandexample, so the caller can correct it.- A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails.
- Wallet-only: this tool runs a model, so it has no proof-of-work tier. A prepaid card-credits key issued earlier (
Authorization: Bearer a402_...) also pays it. - Model-backed: the answer is generated by a model, so the same input can produce different wording.
- Long-running: payment settles after the work finishes, so only EVM exact payments are offered.
- A
GETorHEADto /v1/token-brief returns the same 402 quote, so the price can be read without a body. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB and a streamed response are not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/v1/token-brief", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"mint": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"
}),
});
Related tools
Solana token risk report (full)
POST /api/sol-token-reportFull RugCheck report for a Solana token mint, trimmed to what an agent acts on: score and risks, mint/freeze authority s…
SEC filing report (what the company just filed)
POST /v1/filing-reportName a US ticker and get one cited report on what the company just filed with the SEC: every filing in EDGAR's index for…
Insider flow report (Form 4 transactions)
POST /v1/insider-reportName a US ticker and get one cited insider-flow report: every Form 4 against the company in the window with the actual t…
LinkedIn article, ready to publish (research + copy + sized images)
POST /v1/linkedin-articleHand over a topic and get a publish-ready LinkedIn article back: grounded web research with cited sources, three headlin…
FDA recall report (drug, food, device)
POST /v1/recall-reportName a drug, food, ingredient, brand or medical device and get one cited FDA recall report: every matching enforcement r…
Solana token holder concentration
POST /api/sol-token-holdersTop-holder concentration for a Solana token mint: the 20 largest holders with token account, owner wallet, balance, perc…