Analytics API
On-chain intelligence: sybil detection, token legitimacy, and wallet reputation scores. Computed on-demand from indexed data, no stale caches.
Base URL
https://api.monadatlas.com/api/
All analytics endpoints require an API key via X-API-Key header or api_key query param.
sybil_score
Detect whether a wallet is part of a sybil farming cluster. Traces the wallet's funder, counts how many wallets that funder created, and analyzes behavioral similarity across the cluster.
| Param | Required | Description |
|---|---|---|
address | Yes | Wallet address (0x + 40 hex) |
GET /api/sybil_score?address=0x...
Response:
{
"address": "0x0006388dcad9f3b6fc1064c3dd38ae379c10aee1",
"sybilScore": 77,
"confidence": "high",
"reason": "likely_sybil",
"funder": "0xb12854e17a5a047b64cc8e4c883eaa43dac2d978",
"clusterSize": 825,
"cluster": {
"sampledWallets": 50,
"medianTxCount": 4,
"medianTokens": 0,
"medianAgeBlocks": 333784,
"behavioralSimilarity": 0.33
}
}
| Field | Description |
|---|---|
sybilScore | 0–100. Higher = more likely sybil. 60+ = likely sybil, 30–59 = suspicious, <30 = likely organic. |
confidence | high (20+ sampled wallets), medium (5–19), low (<5 or no data) |
reason | likely_sybil, suspicious, likely_organic, funded_by_contract, no_funding_data, small_funding_group |
funder | The wallet that funded this address (if found) |
clusterSize | Total wallets funded by the same funder |
cluster | Behavioral stats of the cluster: median tx count, token usage, age, and similarity score |
How it works: The endpoint traces the wallet's first funder, then queries all wallets funded by that same address. It samples up to 50 wallets from the cluster and computes behavioral similarity (tx counts, token diversity, wallet age). Contract funders (DEX routers, bridges) are filtered out to avoid false positives.
token_score
Token legitimacy scoring. Analyzes recent transfer activity to detect wash trading, holder concentration, and circular trading patterns.
| Param | Required | Description |
|---|---|---|
token | Yes | Token contract address (0x + 40 hex) |
GET /api/token_score?token=0x...
Response:
{
"token": "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
"score": 55,
"rating": "moderate",
"metrics": {
"transfersSampled": 50000,
"totalEstimate": ">50000",
"uniqueSenders": 677,
"uniqueReceivers": 955,
"top10SenderPct": 42,
"top10ReceiverPct": 42,
"senderReceiverOverlap": 14,
"participantRatio": 0.033,
"blockWindow": 500000,
"sampled": true
}
}
| Field | Description |
|---|---|
score | 0–100. Higher = healthier. 70+ = healthy, 40–69 = moderate, <40 = risky. |
rating | healthy, moderate, or risky |
top10SenderPct | Percentage of transfers from the top 10 senders (high = concentrated) |
top10ReceiverPct | Percentage of transfers to the top 10 receivers |
senderReceiverOverlap | How many top senders are also top receivers (high = circular/wash trading) |
participantRatio | Unique participants / total transfers (low = few wallets, many trades = wash signal) |
sampled | If true, analysis was based on the most recent 50,000 transfers for speed |
How it works: Samples up to 50K recent ERC-20 transfers within the last ~500K blocks. Scores based on unique participant breadth, top-10 concentration, sender-receiver overlap (circular trading), and volume. High-volume tokens are sampled for speed; results are cached for 10 minutes.
wallet_reputation
Numeric trust score for any wallet. Combines age, activity volume, consistency, token diversity, economic activity, and sybil cluster penalty into a single 0–100 score.
| Param | Required | Description |
|---|---|---|
address | Yes | Wallet address (0x + 40 hex) |
GET /api/wallet_reputation?address=0x...
Response:
{
"address": "0xd32edf6642d917dbbe7b8bf8e5d6f5df6a9fff58",
"reputationScore": 85,
"confidence": "high",
"rating": "trusted",
"factors": {
"ageBlocks": 13575883,
"activeSpan": 13539321,
"txCount": 5312623,
"uniqueTokens": 1,
"totalVolumeMon": 22983424.32,
"clusterSize": 1,
"sybilPenalty": 0,
"consistencyRatio": 1.0
}
}
| Field | Description |
|---|---|
reputationScore | 0–100. Higher = more reputable. 70+ = trusted, 40–69 = neutral, <40 = low trust. |
rating | trusted, neutral, or low_trust |
ageBlocks | How old the wallet is in blocks |
activeSpan | Block range between first and last activity |
consistencyRatio | Active span / age — 1.0 means consistently active, low means bursty |
totalVolumeMon | Total native MON volume (in + out) |
clusterSize | Wallets funded by same funder (1 = unique funding source) |
sybilPenalty | Points deducted for sybil cluster association (0–30) |
Scoring factors:
- Age: Older wallets earn more trust (up to +20)
- Activity: More transactions = more trust (up to +15)
- Consistency: Long active span relative to age = not a burner (up to +10)
- Token diversity: Engaging with multiple protocols shows real usage (up to +10)
- Volume: Real economic activity in MON (up to +10)
- Sybil penalty: Deducted if funder created 10+ wallets (up to -30)