# Solana Rug Check - on-chain token safety for Solana SPL tokens Give a mint address, get a GO / CAUTION / DANGER verdict with reasons, read directly from Solana RPC. Built for agents that trade or evaluate new tokens. Pay-per-call via MPP on Tempo. No API key, no signup. ## Why this exists Market-data APIs tell you a token's price, not whether it is a trap. On Solana the two things traders check first are: is the MINT authority revoked (can they print more) and is the FREEZE authority revoked (can they freeze your account so you cannot sell). Solana Rug Check reads these and more straight from chain. ## What it checks (Solana RPC) - Freeze authority revoked or active (active = can freeze holders = serious red flag) - Mint authority revoked or active (active = supply can be inflated) - Token program (standard SPL vs Token-2022) - Metadata update authority revoked or active - Top-holder concentration (top accounts share of supply) ## What it does NOT check (be honest with the user) - Liquidity pool / LP lock on Raydium or Pump.fun (not parsed in this version) - Honeypot / sellability simulation - Whether the largest holder is a liquidity pool or a whale - Token-2022 transfer fees / hooks detail - Team intent or future actions A GO means mint and freeze authorities are revoked and no other on-chain red flags were found, NOT "safe". ## Verdict logic - Freeze authority active -> DANGER (can freeze holders) - Mint authority active -> CAUTION (supply inflatable) - Both revoked, nothing else -> GO - Not a valid SPL mint -> DANGER ## Endpoint POST https://sol-rugcheck.vercel.app/api/rugcheck (price: 0.020000 USD per call, paid via MPP on Tempo) Request body (JSON): { "token": "So11111111111111111111111111111111111111112" } - token : Solana SPL token mint address (required) Response (200, JSON): { "type": "rugcheck", "chain": "solana", "token": "...", "tokenInfo": { "decimals": 6, "supply": "...", "tokenProgram": "spl-token" }, "verdict": "GO | CAUTION | DANGER", "reasons": ["..."], "checks": [ { "id": "freeze", "status": "ok|warn|danger|info", "detail": "..." } ], "topHolders": { "topCount": 10, "concentrationPct": 42.1, "note": "..." }, "notChecked": ["..."], "explorer": "https://solscan.io/token/...", "disclaimer": "..." } ## Payment Unpaid requests return HTTP 402 with a WWW-Authenticate: Payment challenge (method="tempo", intent="charge"). Pay with mppx, then retry. Use: npx mppx https://sol-rugcheck.vercel.app/api/rugcheck --method POST -J '{"token":""}' ## Notes - Source: direct Solana RPC reads. Public RPC is rate limited; a dedicated RPC is recommended for volume. - Informational only, never the sole basis for a trade. - Discovery document: https://sol-rugcheck.vercel.app/openapi.json