DEV Community

TateLyman
TateLyman

Posted on

I Built a Token Safety API for Solana — Scan Any Token in One HTTP Call

The Problem

Before buying any Solana token, you need to check: mint authority, freeze authority, liquidity, volume, and rug pull risk. Doing this manually means checking multiple sites every time.

I built an API that does all of it in one call.

The API

GET /api/scan?mint=TOKEN_ADDRESS&apiKey=YOUR_KEY
Enter fullscreen mode Exit fullscreen mode

Returns comprehensive token safety data:

{
  "data": {
    "name": "Bonk",
    "symbol": "BONK",
    "mintAuthority": { "status": "RENOUNCED" },
    "freezeAuthority": { "status": "RENOUNCED" },
    "price": { "usd": 0.00001847 },
    "market": { "liquidityUsd": 18459233, "volume24hUsd": 89234521 },
    "risk": { "score": 5, "level": "LOW", "reasons": ["Moderate volume"] }
  }
}
Enter fullscreen mode Exit fullscreen mode

Risk Scoring (0-100)

Check Points Condition
Mint Authority +30 Active (can inflate supply)
Freeze Authority +25 Active (can freeze tokens)
Liquidity +5-25 Low = risky
Volume +5-15 Low = risky

JavaScript Example

const res = await fetch(
  `https://devtools-site-delta.vercel.app/api/scan?mint=${mint}&apiKey=${key}`
);
const { data } = await res.json();

if (data.risk.level === 'HIGH') {
  console.log('WARNING:', data.risk.reasons.join(', '));
}
Enter fullscreen mode Exit fullscreen mode

Python Example

import requests

res = requests.get('https://devtools-site-delta.vercel.app/api/scan', params={
    'mint': token_address,
    'apiKey': api_key
})
data = res.json()['data']
print(f"Risk: {data['risk']['level']} ({data['risk']['score']}/100)")
Enter fullscreen mode Exit fullscreen mode

Data Sources

The API aggregates from three sources in parallel:

  1. Solana RPC (Helius) — mint/freeze authority, supply
  2. Jupiter Price API — current USD price
  3. DexScreener — liquidity, volume, pair data

Pricing

0.5 SOL for an API key (1000 requests/month, 10/min rate limit).

Get your key: devtools-site-delta.vercel.app/api-access

Who Is This For?

  • Bot developers checking tokens before trades
  • Trading dashboards showing risk indicators
  • Portfolio trackers flagging risky holdings

I use this same logic in my Telegram trading bot for the /scan command.

Free web version (no API key): devtools-site-delta.vercel.app/sol-scan

Top comments (0)