RugCheck
RugCheck AI
Developer docs
Open scanner →

RugCheck AI — Developer docs

RugCheck reads a token's OKX Onchain OS security data and turns it into a plain-English safety report: a verdict, a 0–100 risk score, the risk flags found, and an optional AI explanation. The deterministic engine produces the facts and the verdict; the AI layer only explains them and never invents data.

Free to use, no API key required. RugCheck reports factual on-chain data — it is not investment advice.

Two ways to integrate:

  • REST — a simple GET /rugcheck JSON endpoint. Best for scripts, backends, and quick tests.
  • MCP (A2MCP) — an POST /mcp Model Context Protocol tool. Best for AI agents and the OKX.AI marketplace.

Base URL & authentication

https://rugcheck-asp.onrender.com

All endpoints are served from this host. There is no authentication — the service is public and free. CORS is open (Access-Control-Allow-Origin: *), so browser clients can call it directly.

Scan a token (REST)

GET/rugcheck

Returns the deterministic safety report for one token. Add ai=1 to attach the AI analyst section.

Query parameters
ParamRequiredDescription
addressrequiredToken contract address — an EVM 0x… address or a Solana base58 address.
chainoptionalChain name (default ethereum). See supported chains.
aioptionalSet to 1 to include the AI analysis (ai object). Omit for the deterministic report only.
modeoptionalAI lens: beginner (default), trader, or developer.
Example request
curl "https://rugcheck-asp.onrender.com/rugcheck?address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&chain=ethereum&ai=1&mode=beginner"
Example response (trimmed)
{
  "ok": true,
  "token": {
    "name": "USD Coin", "symbol": "USDC",
    "address": "0xa0b8…eb48", "chainIndex": "1",
    "logo": "https://…/usdc.png"
  },
  "market": {
    "priceUsd": 1, "liquidityUsd": 2118990968981.7,
    "marketCapUsd": 50285230401.6, "holders": 3222383,
    "priceChange24H": 0.04
  },
  "verdict": "OK",
  "score": 24,
  "headline": "Looks clean, minor notes.",
  "found": true,
  "riskLevel": "LOW",
  "chainSupported": true,
  "concerns": [ { "label": "Supply is mintable (owner can dilute)", "weight": "medium" } ],
  "positives": [ "No buy/sell tax", "Top 10 holders own 9.9%" ],
  "ai": {
    "executiveSummary": "USD Coin shows a strong security posture …",
    "verdictReason": "…",
    "confidence": 88,
    "risks": [ { "title": "Mintable supply", "tier": "minor",
                 "whatItMeans": "…", "whyItMatters": "…", "consequence": "…" } ],
    "scamPattern": "",
    "keyTakeaway": "…",
    "model": "anthropic/claude-opus-4.8"
  },
  "aiError": null,
  "aiAvailable": true,
  "disclaimer": "RugCheck reports factual on-chain data from OKX Onchain OS. It is not investment advice."
}

Without ai=1, the ai field is null and the deterministic report is returned in full — the AI layer is additive and never blocks a scan.

MCP tool (A2MCP)

POST/mcp

RugCheck is also a Model Context Protocol server, so AI agents can call it as a tool. The transport is Streamable HTTP, operated statelessly: send a JSON-RPC 2.0 request with Content-Type: application/json and read the JSON-RPC response. This is the endpoint registered on the OKX.AI marketplace (A2MCP).

Methods

  • initialize — handshake; returns protocol version + capabilities.
  • tools/list — lists the available tools.
  • tools/call — runs a tool.
  • ping — health check.

Tool: rugcheck

ArgumentTypeDescription
addressstring requiredToken contract address (EVM or Solana).
chainstringDefault ethereum.
include_aibooleanInclude the AI explanation (default true).
modestringbeginner | trader | developer.

The result carries the report both as a text block (content[0].text, JSON) and as structuredContent for clients that support it.

1 · initialize
curl -X POST https://rugcheck-asp.onrender.com/mcp \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"my-agent","version":"1.0"}}}'
2 · tools/call
curl -X POST https://rugcheck-asp.onrender.com/mcp \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"rugcheck",
                 "arguments":{"address":"0x6982508145454Ce325dDbE47a25d4ec3d2311933",
                              "chain":"ethereum","include_ai":true,"mode":"trader"}}}'
Result shape
{
  "jsonrpc": "2.0", "id": 2,
  "result": {
    "content": [ { "type": "text", "text": "{ …the full report as JSON… }" } ],
    "structuredContent": { "verdict": "…", "score": 0, "token": { }, "ai": { } },
    "isError": false
  }
}
Point any MCP client at https://rugcheck-asp.onrender.com/mcp. A bad address or unreachable token returns a tool result with isError: true and a plain message rather than a protocol error.

Utility endpoints

GET/health
{ "ok": true, "service": "rugcheck" }
GET/ai-status

Reports whether the AI layer is enabled and which model backs it.

{ "enabled": true, "model": "anthropic/claude-opus-4.8" }
POST/chat

Conversational follow-up grounded in a report. Body: { report, messages, mode }, where messages is an array of { role, content }. Used by the web UI's chat and Explain features.

Response fields

FieldMeaning
verdictOK · CAUTION · AVOID · UNKNOWN. The overall call.
score0–100 risk score (higher = riskier). null when indeterminate.
riskLevelOKX's authoritative risk level (LOW/MEDIUM/HIGH/CRITICAL).
foundfalse when the token has no data on that chain (wrong chain / bad address) — treat as "check the address and chain".
concerns[]Risk flags, each { label, weight } where weight is critical · high · medium.
positives[]Reassuring signals confirmed in the data.
aiAI analysis (only when ai=1 / include_ai): executiveSummary, verdictReason, confidence, risks[] (tiered critical/important/minor), scamPattern, keyTakeaway, model.

Supported chains & modes

Chains

ethereumbscbase arbitrumpolygonoptimism avalanchesolana

Modes

  • beginner — simple language and analogies.
  • trader — liquidity, whale concentration, market/exit risk.
  • developer — ownership, mint authority, verification, freeze authorities.

Deep link into the web UI to auto-run a scan: /?address=0x…&chain=bsc&mode=trader

Errors

Errors return { "ok": false, "error": "…" } with an appropriate status:

StatusWhen
400Missing or malformed address.
502Upstream OKX lookup failed.
503/chat called while the AI layer is not configured.

A valid token with no on-chain data is not an error — it returns 200 with found: false and an UNKNOWN verdict.