Standard report
The full risk verdict, plus a section-by-section breakdown: contract verification, owner privileges, holder concentration, liquidity, trading patterns, and tokenomics — each with its own sub-score and evidence.
POST
/api/v1/standard-report
Auth: account balance or x402. See Authentication.
Request
| Field | Type | Required | Description |
|---|---|---|---|
| project_address | string | Required | Contract/mint address. |
| chain | string | Required | A supported chain. |
| include_sections | string[] | Optional | Subset to return. Default ["contract","tokenomics","team","social"]. |
curl -X POST https://csds.blockchainrangers.com/api/v1/standard-report \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_address": "0x…",
"chain": "ethereum",
"include_sections": ["contract", "tokenomics"]
}'
$headers = @{ Authorization = "Bearer YOUR_API_KEY" }
$body = @{ project_address = "0x…"; chain = "ethereum"; include_sections = @("contract","tokenomics") } | ConvertTo-Json
Invoke-RestMethod "https://csds.blockchainrangers.com/api/v1/standard-report" `
-Method Post -Headers $headers -Body $body -ContentType "application/json"
import httpx
r = httpx.post(
"https://csds.blockchainrangers.com/api/v1/standard-report",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"project_address": "0x…", "chain": "ethereum"},
)
report = r.json()
csds check 0x… --chain ethereum --full --format json
Response
The top level carries the headline verdict (risk_score, risk_level, confidence, recommendation) and adds a sub-object per dimension, each with its own risk_score:
| Section | Highlights |
|---|---|
| verification | Source-code verified, audit status, honeypot detection. |
| owner_privileges | Mint/freeze authority, dangerous admin functions. |
| holder_concentration | Top-10/top-100 %, Gini, largest holder. |
| liquidity | Total liquidity, pools, lock status. |
| trading_patterns | Volume/price spikes vs. historical baseline. |
| red_flags / green_flags | Categorized signals with severity. |
{
"risk_score": 64,
"risk_level": "HIGH",
"recommendation": { "verdict": "AVOID", "reasoning": "…" },
"confidence": 0.9,
"verification": { "contract_verified": false, "honeypot_detected": false, "risk_score": 80 },
"owner_privileges": { "has_dangerous_functions": true, "detected_functions": ["mint", "pause"], "risk_score": 75 },
"holder_concentration": { "top_10_percentage": 71.4, "gini_coefficient": 0.88, "risk_score": 70 },
"liquidity": { "total_liquidity_usd": 18400, "pools": [ { "dex": "Uniswap", "locked": false } ], "risk_score": 60 },
"trading_patterns": { "volume_spike_detected": true, "risk_score": 55 },
"red_flags": [ { "severity": "HIGH", "category": "ownership", "description": "Mint authority active" } ],
"green_flags": []
}
Reported scam tokens
If the token has been reported by the community and confirmed as a scam by our review team, the request is hard-blocked: no analysis runs, and a flat $0.10 lookup fee is charged (not the full price). The response is
200 with "blocked": true — check that flag first, before reading the risk fields (they are absent). Same behavior on Deep dive, the web app, and the CLI.{
"blocked": true,
"code": "reported_scam",
"risk_score": 100,
"risk_level": "CRITICAL",
"recommendation": "AVOID",
"message": "This token has been reported by the community and confirmed as a scam by our review team.",
"charged_cents": 10,
"charged_display": "$0.10"
}
Errors
See the error reference. Unfunded requests return 402.