# Risk-Data API – Solana token risk scoring for AI trading agents

> Source: <https://www.tnt-audit.com/risk-api>
> Published: 2026-07-28 09:16:46+00:00

# Know what a token is hiding before your bot buys it.

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.
