One call tells your bot whether a Solana token looks like a rug pull. Pay $0.01 USDC per call with x402. No account, no API key.
GET https://token-risk-api-vy9u.onrender.com/risk/{mint}
{mint} is the token mint address. Without payment the endpoint answers 402 Payment Required with x402 payment instructions. Any x402 client pays and retries automatically.
{
"mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
"mint_authority_revoked": true,
"freeze_authority_revoked": true,
"top10_holders_pct": 40.9,
"largest_holder_pct": 10.4,
"liquidity_usd": 275049.67,
"volume_24h_usd": 107305.62,
"market_cap_usd": 249668890,
"pair_age_hours": 34009.8,
"dex": "orca",
"risk_score": 10,
"flags": [
"top10_over_30pct"
],
"data_complete": true,
"checked_at": 1794415601
}
risk_score runs from 0 (no warning signs found) to 100 (many). data_complete is false when a data source did not answer, in which case the score is partial. Free static sample: /sample.
| Flag | Points | Meaning |
|---|---|---|
mint_authority_active | +30 | Creator can still mint new supply |
freeze_authority_active | +25 | Creator can freeze holder accounts |
top10_over_50pct | +20 | Top 10 accounts hold more than 50% of supply |
top10_over_30pct | +10 | Top 10 accounts hold more than 30% of supply |
no_trading_pair | +30 | No DEX pair found |
liquidity_under_5k | +25 | Best pair has under $5k liquidity |
liquidity_under_20k | +15 | Best pair has under $20k liquidity |
liquidity_under_50k | +5 | Best pair has under $50k liquidity |
pair_under_1h_old | +10 | Trading pair created less than 1 hour ago |
pair_under_24h_old | +5 | Trading pair created less than 24 hours ago |
pip install "x402[requests,evm]" eth_account
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
client = x402ClientSync()
register_exact_evm_client(client, EthAccountSigner(Account.from_key(PRIVATE_KEY)))
with x402_requests(client) as session:
r = session.get("https://token-risk-api-vy9u.onrender.com/risk/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263")
print(r.json())
The paying wallet needs USDC on Base, Solana, Polygon, Arbitrum or Monad. It does not need a gas token. This example pays from an EVM wallet; Solana wallets work with the x402 SVM client.
Mint and holder data come from Solana RPC, market data from DexScreener. Results are cached for 60 seconds. The top-holder figure can include liquidity pools or bonding curves.
This is an automated heuristic, not financial advice. A low score does not mean a token is safe.
/llms.txt · /openapi.json · /docs · /health