接口
代币报告
代币的市场数据、安全信息、Holder Score、持有人指标、集群、开发者历史和交易活动。
GET
/api/v1/tokens/{chain}/{address}返回 XCA 为某个代币生成的最新报告。读取报告永远不会触发扫描:如果状态为 NONE,说明该代币尚未被扫描,请先调用 POST /scans。
参数#
chainpath必填链 ID。目前仅支持 solana。"solana"
addresspath必填代币的 mint 地址。string
请求#
curl -s "https://app.xca.fun/api/v1/tokens/solana/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" \
-H "Authorization: Bearer $XCA_API_KEY"在线调试
粘贴你的 API 密钥即可发送真实请求。
响应#
chain链 ID。string
address代币的 mint 地址。string
status报告状态。NONE 表示该代币从未被扫描过。"NONE" | "QUEUED" | "RUNNING" | "DONE" | "ERROR"
depthLIGHT 表示新交易对的自动扫描,FULL 表示完整分析。"LIGHT" | "FULL" | null
upgradingLIGHT 报告正在升级为 FULL。boolean
step扫描运行期间的当前步骤。string | null
progress扫描进度,取值 0 到 100。number
errorMessage状态为 ERROR 时,上次扫描失败的原因。string | null
symbol代币符号。string | null
name代币名称。string | null
imageUrl代币 Logo 的 URL。string | null
market来自 DexScreener 的主交易对。object | 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 的代币 Logo。string | null
priceUsd价格(美元)。number | null
liquidityUsd所有池子的流动性(美元)。number | null
fdvUsd完全稀释估值(美元)。number | null
marketCapUsd市值(美元)。number | null
volume24hUsd24 小时交易量(美元)。number | null
txns24h24 小时内的买入和卖出交易数。{ buys, sells } | null
change5 分钟、1 小时、6 小时和 24 小时的价格变化(百分比)。{ m5, h1, h6, h24 }
pairCreatedAt交易对的创建时间。string | null
poolAddresses该代币所有已知池子的地址。string[]
websites项目网站。{ url, label }[]
socials项目的社交媒体链接。{ type, url }[]
fetchedAt市场数据的获取时间。string
security关于该 mint 的链上信息。object | null
security关于该 mint 的链上信息。object | null
mintAuthority有权铸造新代币的地址;已撤销时为 null。string | null
freezeAuthority有权冻结持有人账户的地址;已撤销时为 null。string | null
program该 mint 所属的代币程序。"spl-token" | "spl-token-2022" | "unknown"
supply以整枚代币计的总供应量。number
decimals代币的小数位数。number
creator创建该代币的钱包(如已知)。string | null
createdAtmint 的创建时间。string | null
computedAt报告的计算时间。string | null
stale报告已超过缓存有效期。boolean
holderScoreHolder Score,从 0(危险)到 100(干净)。number | null
riskLevel根据评分得出的风险等级。"low" | "medium" | "high" | null
metrics持仓分布指标;包含哪些键取决于你的套餐。object | 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 天的平均盈亏(美元)。number | null
launchAt开始交易的时间。string | null
launchSlot首笔交易所在的 Solana slot。number | null
scoreVersion为该报告评分时所用的 Holder Score 模型版本。number
breakdown每个 Holder Score 因子及其分数和实测值。{ key, points, value, total?, cap? }[]
mainReason扣分最多的因子。{ key, points, value, total?, cap? } | null
clusters由同一钱包注资的持有人分组。object[] | null
clusters由同一钱包注资的持有人分组。object[] | null
id集群 ID,由持有人的 clusterId 引用。string
funder为成员注资的钱包。string
funderLabel出资方的已知标签,例如某个交易所。string | null
members成员钱包。string[]
sharePct该集群的持仓占比。number
clustersCount集群数量,即使集群列表被锁定也会返回。number
devHistory创建者此前的发币记录。object | null
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
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 密钥缺失、格式错误或已被吊销。
402
planRequired — 你的套餐不包含 API 访问权限或该功能。429
rateLimited — 每分钟请求过多,或月度配额已用完。报告状态#
NONE | 从未扫描过。请使用 POST /scans 发起扫描。 |
QUEUED | 等待空闲的 worker。 |
RUNNING | 正在分析中;参见 step 和 progress。 |
DONE | 已完成;报告已完整。 |
ERROR | 上次扫描失败;请查看 errorMessage 后重试。 |
注意事项#
- 你的套餐未包含的功能,其字段为 null 或被省略,对应的键会列在 locked 中。
- 当报告超过缓存有效期时,stale 为 true;再次调用
POST /scans即可刷新。 LIGHT报告来自对新交易对的自动扫描,在有人打开之前不含钱包盈亏;打开后会进行升级,升级期间 upgrading 为 true。- 占比均为占总供应量的百分比,包括池子持有的代币。