xca문서
엔드포인트

토큰 리포트

토큰의 시장 데이터, 보안 정보, Holder Score, 홀더 지표, 클러스터, 개발자 이력, 거래 활동.

GET/api/v1/tokens/{chain}/{address}

XCA에 있는 해당 토큰의 최신 리포트를 반환해요. 리포트를 조회해도 스캔은 시작되지 않아요. 상태가 NONE이면 아직 스캔되지 않은 토큰이니 먼저 POST /scans 요청을 보내세요.

파라미터#

chainpath필수
체인 ID. 현재는 solana만 지원해요."solana"
addresspath필수
토큰 민트 주소.string

요청#

curl -s "https://app.xca.fun/api/v1/tokens/solana/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" \
  -H "Authorization: Bearer $XCA_API_KEY"
직접 실행
실제 요청을 보내려면 API 키를 붙여넣으세요.

응답#

chain
체인 ID.string
address
토큰 민트 주소.string
status
리포트 상태. NONE이면 한 번도 스캔된 적 없는 토큰이에요."NONE" | "QUEUED" | "RUNNING" | "DONE" | "ERROR"
depth
신규 페어 자동 스캔은 LIGHT, 전체 분석은 FULL이에요."LIGHT" | "FULL" | null
upgrading
LIGHT 리포트를 FULL로 업그레이드하는 중이에요.boolean
step
스캔이 진행되는 동안의 현재 스캔 단계.string | null
progress
0~100 사이의 스캔 진행률.number
errorMessage
status 값이 ERROR일 때 마지막 스캔이 실패한 이유.string | null
symbol
토큰 티커.string | null
name
토큰 이름.string | null
imageUrl
토큰 로고 URL.string | null
market
DexScreener에서 가져온 주요 거래 페어.object | null
pairAddress
유동성이 가장 풍부한 페어의 주소.string | null
dexId
해당 페어의 DEX.string | null
url
해당 페어의 DexScreener 페이지.string | null
name
페어 정보에 있는 토큰 이름.string | null
symbol
페어 정보에 있는 토큰 티커.string | null
quoteSymbol
페어의 상대 자산(예: SOL).string | null
imageUrl
DexScreener의 토큰 로고.string | null
priceUsd
USD 기준 가격.number | null
liquidityUsd
전체 풀의 유동성(USD).number | null
fdvUsd
완전 희석 가치(FDV, USD).number | null
marketCapUsd
시가총액(USD).number | null
volume24hUsd
24시간 거래량(USD).number | null
txns24h
24시간 동안의 매수 및 매도 거래 건수.{ buys, sells } | null
change
5분, 1시간, 6시간, 24시간 가격 변동률(%).{ m5, h1, h6, h24 }
pairCreatedAt
페어 생성 시각.string | null
poolAddresses
이 토큰의 알려진 모든 풀 주소.string[]
websites
프로젝트 웹사이트.{ url, label }[]
socials
프로젝트 소셜 링크.{ type, url }[]
fetchedAt
시장 데이터를 가져온 시각.string
security
민트에 대한 온체인 정보.object | null
mintAuthority
토큰을 추가 발행할 수 있는 주소. 권한이 해제되면 null이에요.string | null
freezeAuthority
홀더 계정을 동결할 수 있는 주소. 권한이 해제되면 null이에요.string | null
program
민트가 사용하는 토큰 프로그램."spl-token" | "spl-token-2022" | "unknown"
supply
총 공급량(최소 단위가 아닌 토큰 단위).number
decimals
토큰의 소수점 자릿수.number
creator
토큰을 생성한 지갑(알려진 경우).string | null
createdAt
민트 생성 시각.string | null
computedAt
리포트 계산 시각.string | null
stale
리포트가 캐시 유효 기간보다 오래됐어요.boolean
holderScore
0(위험)부터 100(깨끗함)까지의 Holder Score.number | null
riskLevel
점수로 정해지는 위험 등급."low" | "medium" | "high" | null
metrics
보유 분포 지표. 포함되는 키는 플랜에 따라 달라요.object | null
limited
홀더 데이터가 일부만 수집됐어요(데이터 제공업체 제한).boolean
holdersTotal
전체 홀더 수.number
holdersAnalyzed
분석에 포함된 홀더 수.number
profiled
전체 지갑 프로필이 있는 홀더 수.number
top10Pct
실제 홀더 상위 10명의 보유 비중(풀, 소각 주소, 거래소 제외).number
topHolderPct
실제 홀더 중 최대 홀더의 보유 비중.number
floatPct
유통 공급량: 풀과 소각 주소 밖에 있는 물량의 비중.number
devPct
생성자의 보유 비중.number
devBundlePct
생성자와 번들로 묶인 지갑의 보유 비중.number
sniperCount
스나이퍼 지갑 수.number
sniperPct
스나이퍼의 보유 비중.number
freshCount
신규 지갑 수.number
freshPct
신규 지갑의 보유 비중.number
clusterPct
같은 자금 제공자를 둔 지갑 클러스터의 보유 비중.number
smartCount
스마트 머니 홀더 수.number
smartPct
스마트 머니의 보유 비중.number
poolPct
유동성 풀의 보유 비중.number
burnPct
소각 주소로 보내진 물량의 비중.number
avgPnlUsd
프로필이 있는 홀더의 30일 평균 손익(USD).number | null
launchAt
거래 시작 시각.string | null
launchSlot
첫 거래가 이루어진 Solana 슬롯.number | null
scoreVersion
리포트 채점에 사용된 Holder Score 모델 버전.number
breakdown
모든 Holder Score 요소와 각 요소의 점수, 측정값.{ key, points, value, total?, cap? }[]
mainReason
가장 많은 점수를 깎은 요소.{ key, points, value, total?, cap? } | null
clusters
같은 지갑에서 자금을 받은 홀더 그룹.object[] | null
id
클러스터 ID. 홀더의 clusterId 값이 이 ID를 가리켜요.string
funder
멤버에게 자금을 보낸 지갑.string
funderLabel
자금 제공자의 알려진 라벨(예: 거래소).string | null
members
멤버 지갑.string[]
sharePct
클러스터의 보유 비중.number
clustersCount
클러스터 수. 클러스터 목록이 잠겨 있어도 제공돼요.number
devHistory
생성자의 이전 발행 이력.object | null
creator
생성자 지갑.string | null
launches
생성자가 발행한 토큰 수.number
rugs
유동성을 잃은 토큰 수.number
avgLifespanSec
생성자가 발행한 토큰의 평균 수명(알려진 경우).number | null
tokens
발행한 토큰 목록(최신순).{ address, symbol, name, createdAt, liquidityUsd, fdvUsd, rugged }[]
approximate
생성자의 가장 이른 매수 기록에서 추론한 값이라 추정치로 봐야 해요.true
devTeaser
발행 수와 러그 수. 개발자 이력이 잠겨 있어도 제공돼요.{ launches, rugs } | null
activity
주요 페어의 최근 거래.object | null
recent
최근 스왑 내역. time 값은 밀리초 단위 Unix 타임스탬프예요.{ signature, time, wallet, side, amount, valueUsd }[]
topTraders
이 토큰에서 수익을 가장 많이 낸 트레이더.{ wallet, boughtUsd, soldUsd, pnlUsd, trades }[]
locked
플랜에 포함되지 않은 기능. 해당 필드는 null이거나 생략돼요.string[]

응답 예시#

{
  "chain": "solana",
  "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  "status": "DONE",
  "depth": "FULL",
  "upgrading": false,
  "step": "done",
  "progress": 100,
  "errorMessage": null,
  "symbol": "Bonk",
  "name": "Bonk",
  "imageUrl": "https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I",
  "market": {
    "pairAddress": "6oFWm7KPLfxnwMb3z5xwBoXNSPP3JJyirAPqPSiVcnsp",
    "dexId": "raydium",
    "url": "https://dexscreener.com/solana/6ofwm7kplfxnwmb3z5xwboxnspp3jjyirapqpsivcnsp",
    "name": "Bonk",
    "symbol": "Bonk",
    "quoteSymbol": "SOL",
    "imageUrl": "https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I",
    "priceUsd": 0.00002134,
    "liquidityUsd": 2864210.4,
    "fdvUsd": 1897000000,
    "marketCapUsd": 1652000000,
    "volume24hUsd": 18450000,
    "txns24h": {
      "buys": 18210,
      "sells": 16930
    },
    "change": {
      "m5": 0.4,
      "h1": -1.2,
      "h6": 3.8,
      "h24": 5.1
    },
    "pairCreatedAt": "2022-12-25T11:04:12.000Z",
    "poolAddresses": [
      "6oFWm7KPLfxnwMb3z5xwBoXNSPP3JJyirAPqPSiVcnsp"
    ],
    "websites": [
      {
        "url": "https://bonkcoin.com",
        "label": "Website"
      }
    ],
    "socials": [
      {
        "type": "twitter",
        "url": "https://x.com/bonk_inu"
      }
    ],
    "fetchedAt": "2026-10-02T09:12:40.000Z"
  },
  "security": {
    "mintAuthority": null,
    "freezeAuthority": null,
    "program": "spl-token",
    "supply": 88870000000000,
    "decimals": 5,
    "creator": "9AhKqLR67hwapvG8SA2JFXaCshXc9nALJjpKaHZrsbkw",
    "createdAt": "2022-12-25T10:52:01.000Z"
  },
  "computedAt": "2026-10-02T09:12:44.000Z",
  "stale": false,
  "holderScore": 84,
  "riskLevel": "low",
  "metrics": {
    "limited": false,
    "holdersTotal": 912345,
    "holdersAnalyzed": 4000,
    "profiled": 100,
    "top10Pct": 64.2,
    "topHolderPct": 31.7,
    "floatPct": 96.6,
    "devPct": 0,
    "devBundlePct": 0.3,
    "sniperCount": 2,
    "sniperPct": 6.6,
    "freshCount": 41,
    "freshPct": 17.6,
    "clusterPct": 8.8,
    "smartCount": 7,
    "smartPct": 2.1,
    "poolPct": 3.4,
    "burnPct": 0,
    "avgPnlUsd": 1840.5,
    "launchAt": "2022-12-25T11:04:12.000Z",
    "launchSlot": 168410720,
    "scoreVersion": 2,
    "breakdown": [
      {
        "key": "top10",
        "points": -17.2,
        "value": 66.5
      },
      {
        "key": "topHolder",
        "points": -5.9,
        "value": 32.8
      },
      {
        "key": "devBundle",
        "points": 0,
        "value": 0.3
      },
      {
        "key": "snipers",
        "points": -0.6,
        "value": 6.8
      },
      {
        "key": "clusters",
        "points": -1.8,
        "value": 9.1
      },
      {
        "key": "fresh",
        "points": -0.6,
        "value": 18.2
      },
      {
        "key": "holders",
        "points": 0,
        "value": 912345
      },
      {
        "key": "authorities",
        "points": 0,
        "value": 0
      },
      {
        "key": "devRugs",
        "points": 0,
        "value": 0,
        "total": 1
      },
      {
        "key": "liquidity",
        "points": 0,
        "value": 2864210.4
      },
      {
        "key": "smartMoneyBonus",
        "points": 10,
        "value": 7
      }
    ],
    "mainReason": {
      "key": "top10",
      "points": -17.2,
      "value": 66.5
    }
  },
  "clusters": [
    {
      "id": "c1",
      "funder": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
      "funderLabel": null,
      "members": [
        "3Kv1…",
        "8Zq4…",
        "Fh2T…"
      ],
      "sharePct": 1.8
    }
  ],
  "clustersCount": 3,
  "devHistory": {
    "creator": "9AhKqLR67hwapvG8SA2JFXaCshXc9nALJjpKaHZrsbkw",
    "launches": 1,
    "rugs": 0,
    "avgLifespanSec": null,
    "tokens": [],
    "approximate": true
  },
  "devTeaser": {
    "launches": 1,
    "rugs": 0
  },
  "activity": {
    "recent": [
      {
        "signature": "4Vt2…",
        "time": 1790932360000,
        "wallet": "7xKX…",
        "side": "buy",
        "amount": 152000000,
        "valueUsd": 3244.1
      }
    ],
    "topTraders": [
      {
        "wallet": "2bQm…",
        "boughtUsd": 41200,
        "soldUsd": 78900,
        "pnlUsd": 37700,
        "trades": 18
      }
    ]
  },
  "locked": []
}

상태 코드#

200성공
400validation — 파라미터나 요청 본문이 유효하지 않아요. error.issues 값을 확인하세요.
401unauthorized — API 키가 없거나, 형식이 잘못됐거나, 폐기됐어요.
402planRequired — 플랜에 API 접근 권한이나 이 기능이 포함되어 있지 않아요.
429rateLimited — 분당 요청이 너무 많거나 월간 할당량을 모두 사용했어요.

리포트 상태#

NONE아직 스캔된 적이 없어요. POST /scans 요청으로 스캔을 시작하세요.
QUEUED워커를 기다리는 중이에요.
RUNNING분석 중이에요. step, progress 값을 확인하세요.
DONE완료됐어요. 리포트의 모든 데이터가 준비됐어요.
ERROR마지막 스캔이 실패했어요. errorMessage 값을 확인하고 다시 시도하세요.

참고 사항#

  • 플랜에 포함되지 않은 기능의 필드는 null이거나 생략되며, 해당 키는 locked 목록에 들어가요.
  • 리포트가 캐시 유효 기간보다 오래되면 stale 값이 true가 되고, POST /scans 요청을 다시 보내면 갱신돼요.
  • LIGHT 리포트는 신규 페어 자동 스캔으로 만들어지며, 누군가 열어 보기 전까지는 지갑 손익이 없어요. 리포트를 열면 FULL로 업그레이드되고, 그동안 upgrading 값은 true예요.
  • 비중은 풀이 보유한 토큰을 포함한 총 공급량 대비 퍼센트예요.