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.

ParamRequiredDescription
addressYesWallet 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
  }
}
FieldDescription
sybilScore0–100. Higher = more likely sybil. 60+ = likely sybil, 30–59 = suspicious, <30 = likely organic.
confidencehigh (20+ sampled wallets), medium (5–19), low (<5 or no data)
reasonlikely_sybil, suspicious, likely_organic, funded_by_contract, no_funding_data, small_funding_group
funderThe wallet that funded this address (if found)
clusterSizeTotal wallets funded by the same funder
clusterBehavioral 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.

ParamRequiredDescription
tokenYesToken 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
  }
}
FieldDescription
score0–100. Higher = healthier. 70+ = healthy, 40–69 = moderate, <40 = risky.
ratinghealthy, moderate, or risky
top10SenderPctPercentage of transfers from the top 10 senders (high = concentrated)
top10ReceiverPctPercentage of transfers to the top 10 receivers
senderReceiverOverlapHow many top senders are also top receivers (high = circular/wash trading)
participantRatioUnique participants / total transfers (low = few wallets, many trades = wash signal)
sampledIf 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.

ParamRequiredDescription
addressYesWallet 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
  }
}
FieldDescription
reputationScore0–100. Higher = more reputable. 70+ = trusted, 40–69 = neutral, <40 = low trust.
ratingtrusted, neutral, or low_trust
ageBlocksHow old the wallet is in blocks
activeSpanBlock range between first and last activity
consistencyRatioActive span / age — 1.0 means consistently active, low means bursty
totalVolumeMonTotal native MON volume (in + out)
clusterSizeWallets funded by same funder (1 = unique funding source)
sybilPenaltyPoints 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)