One GET request returns a safety score, live insider-cluster detection, and on-chain fundamentals for any Solana mint — the same engine behind TNT House audits, exposed as clean JSON for bots instead of a dashboard for humans.
curl "https://tnt-audit.com/api/v1/token-risk?mint=<MINT_ADDRESS>" \
-H "Authorization: Bearer tnt_sk_your_key_here"
{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"safety_score": 78,
"cluster_analysis": "complete",
"insider_clusters": [
{
"funder": "9xQe...k2Pd",
"wallets": [
"7uF3...aZ1",
"3mN8...qR2"
]
}
],
"mint_authority": {
"revoked": true,
"address": null
},
"freeze_authority": {
"revoked": true,
"address": null
},
"honeypot_risk": null,
"lp_locked": null,
"holder_distribution": {
"risk_level": "LOW",
"largest_holder_percent": 4.2,
"top10_percent": 22.7,
"holder_count": 20
},
"market": {
"price_usd": 0.0000412,
"liquidity_usd": 84210,
"volume_24h_usd": 512300,
"price_change_24h_percent": 12.4,
"age_days": 3
},
"note": "honeypot_risk and lp_locked detection are on the roadmap and not yet implemented.",
"checked_at": "2026-07-18T12:00:00.000Z"
}
Works out of the box with ChatGPT Custom GPT Actions (just paste the URL). For Claude, Gemini, or agent frameworks like LangChain/CrewAI, use this spec as the schema source for your own tool integration — most of those need a small adapter, LangChain's OpenAPISpec.from_url() being the one that imports it directly.
How it works #
Enter your email below. No credit card, no approval wait — the key is issued instantly.
GET /api/v1/token-risk?mint=<address> with your key in the Authorization header. Typical response time: well under a second.
First-ever check on a mint returns cluster_analysis: "pending" while the insider trace runs in the background — re-check in a minute or two for the full picture.
Response fields #
safety_score
0–100. Weighted from authorities, holder concentration, liquidity, volume, and real insider-cluster penalties.
insider_clusters
Wallets that share a first-funder — an on-chain-provable insider/sniper signal, not a guess.
cluster_analysis
"pending" on a token's first-ever check (cluster trace runs in the background), "complete" after ~1–2 minutes.
mint_authority / freeze_authority
Whether each authority is revoked, and its address if still active.
honeypot_risk / lp_locked
On the roadmap — currently always null.
holder_distribution
Largest holder %, top-10 %, risk level, and holder_count — the number of accounts in Solana’s top-20-largest-holders response (a real RPC limit, not a full holder count for widely-held tokens like BONK or USDC).
market
Live price, liquidity, 24h volume, 24h change, and token age from DexScreener.
Every response also includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers — plus X-Credit-Balance-Usd once you have a paid tier or credit balance — so your bot can track its quota without ever hitting a 429.
Webhooks for cluster_analysis completion are on the roadmap, not yet available — for now, re-check the same mint after 1-2 minutes.
Rate Limiting #
Every key gets 15 free requests per calendar day (UTC). Go over that with no call-credit balance and you get a 402, not a silent block — top up or subscribe and the same key keeps working immediately.
X-RateLimit-Limit
Your daily quota. Empty on unlimited/admin-issued keys.
X-RateLimit-Remaining
Requests left before the free quota runs out today.
X-RateLimit-Reset
ISO timestamp of the next quota reset (next UTC midnight, or your subscription renewal date).
X-Credit-Balance-Usd
Your current call-credit balance, once you have one.
You get an HTTP 402 with a JSON body — limit, used, reset_at, overage_rate_usd, and an upgrade_url. No retries needed: as soon as you top up credit or subscribe, the same key starts working again on the very next call.
HTTP/1.1 402 Payment Required
X-RateLimit-Limit: 15
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 2026-07-24T00:00:00.000Z
{
"error": "Daily free-tier limit reached and call-credit balance is empty",
"limit": 15,
"used": 16,
"reset_at": "2026-07-24T00:00:00.000Z",
"overage_rate_usd": 0.07,
"upgrade_url": "https://tnt-audit.com/risk-api#billing",
"note": "Top up call credits or subscribe on the upgrade_url page — overage is billed at $0.07/call once you have a balance."
}
Check X-RateLimit-Remaining before firing off a batch of calls — reading a header costs nothing, a wasted 402 does not.
Versioning & Changelog #
The API is versioned in the URL (/api/v1/...). Within v1, existing fields are never removed, renamed, or repurposed — only added. Integrations should ignore fields they don't recognize rather than fail on them. A genuinely breaking change ships as /api/v2/..., with v1 kept running for a reasonable overlap period — never a silent in-place break.
v1.8
2026-07-27- • Added GET /api/v1/token-risk/x402 — pay-per-call access via the x402 protocol (USDC on Solana), no API key required. Same price as the existing pay-per-call rate.
- • Published as an x402-discoverable resource on x402scan.com, with an OpenAPI x-payment-info schema for automated agent discovery.
v1.7
2026-07-26- • Published as an MCP server on Smithery.ai and Glama.ai, alongside the Official MCP Registry — usable directly as a tool by Claude, Cursor, and other MCP-compatible agents.
- • Published npm plugins for ElizaOS (eliza-plugin-tnt-risk-api) and Solana Agent Kit (solana-agent-kit-plugin-risk-api).
v1.6
2026-07-25- • Published to the Official MCP Registry, mcp.so, RapidAPI, and the Postman Public API Network — more ways to discover and integrate the API.
v1.5
2026-07-23- • Published a ready-to-import Postman collection.
v1.4
2026-07-21- • Published a formal OpenAPI 3.0 spec at /openapi.json.
- • Rebalanced upstream timeout budget for very large/liquid mints, further reducing false holder_distribution failures.
v1.3
2026-07-19- • Billing security hardening against invoice/payment-matching abuse — no response schema change.
v1.2
2026-07-18- • Fixed timeouts on upstream calls that could occasionally return a raw 502 on slower, less-major tokens.
- • Fixed holder_distribution occasionally reporting holder_count: 0 on high-volume tokens due to a swallowed RPC failure.
- • Fixed implausible price_change_24h_percent values passed through from upstream market data.
v1.1
2026-07-18- • Added X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset headers, later joined by X-Credit-Balance-Usd.
v1.0
2026-07-18- • Public launch: GET /api/v1/token-risk — safety_score, insider_clusters, mint/freeze authority, holder_distribution, market data.
- • API-key auth, free tier + pay-per-call + subscription billing via Solana Pay.
No mailing list or webhooks yet for update announcements — this page and the X / Telegram links in the footer are the way to stay current.
Limits & pricing #
-
Full response schema
-
Insider-cluster detection
-
No credit card
-
Top up any amount $5–$500
-
Only charged past the free 15/day
-
Drops to $0.03/call once subscribed
-
1000 calls included
-
$0.03/call overage after that
-
Manual renewal — no auto-charge
Paid in $MRDT / SOL / USDC via Solana Pay — same payment flow as the rest of TNT House. Solana Pay can't auto-charge, so the subscription is a manual 30-day top-up, not a recurring subscription in the traditional sense.
Manage billing #
Subscribe for 1000 calls/30 days, or top up pay-per-call credits. Paid in $MRDT / SOL / USDC via Solana Pay — same flow as the rest of TNT House.
Instant, free, no card required.