看清代币背后的风险。
从持仓分布、流动性与合约权限出发,让每个风险结论都有来源,让每处数据缺口都清晰可见。
报告覆盖不完整。权限能力需要结合治理背景判断,不能仅凭单个标记认定诈骗;未发现风险也不代表安全。
风险线索
持有人分布 等待数据
按余额取前20名;保留精确原始余额,不根据缺失标签猜测地址身份。
| 地址 | 持仓占比 | 来源标签 |
|---|
流动性变化
服务器成功获取数据时保存快照;浏览器回退不保存历史。美元估值变化不能直接等同撤池。
大额交易与转账 10万美元门槛
DEX 大额成交
| 时间 | 交易 | 方向 | 成交价值 | 池子 |
|---|
近期大额转账
按当前价格粗略估值,与上面的成交可能属于同一交易,不合并统计。
| 时间 | 交易 | 转出 | 转入 | 估值 |
|---|
资金流观察
近期转账样本的地址净变化
| 地址 | 净流入代币 | 当前美元估值 | 流入/流出次数 |
|---|
已覆盖的流动性池
| 池子 | DEX | 当前美元流动性 | 24h成交量 |
|---|
合约权限检查明细
数据来源与完整度
从一个合约开始
不连接钱包,不需要交易密钥。多来源查询通常需要 15–40 秒。
机构资金,流向哪里?
观察美国现货 ETF 的净申购与赎回,按最新披露日、近5日和近20个交易日,查看 BTC 与 ETH 的资金方向。
近20个交易日 · 每日净流向
绿色:净流入 红色:净流出 空缺:未披露每日净流向与累计净流向不同。近5/20日均包含最新披露日;缺失日期不当作零,也不跳过。
逐日数据
| 美国交易日 | 净资金流(USD) | 方向 | 披露状态 |
|---|
来源与统计口径
看净流向,也看数据日期
正数代表净申购,负数代表净赎回。ETF 资金流不是成交量,近20个交易日也不是近20个自然日。
市场情绪,处在什么位置?
通过 BTC 恐惧与贪婪指数观察情绪变化。指数从 0 到 100,越低越恐惧,越高越贪婪。
BTC 恐惧与贪婪指数
情绪等级采用来源原始分类。指数变化不是价格涨跌幅,也不是上涨或下跌的概率。
近31日 · 情绪变化
纵轴固定 0–100,按 UTC 自然日排列,日期缺失时折线断开。
每日指数
| 日期(UTC) | 指数 | 情绪等级 |
|---|
来源与统计口径
本工具展示 Alternative.me 发布的指数,未自行重算其因子权重。它衡量 BTC 市场情绪,不代表单一代币的风险或价格预测。
先看情绪,再看变化
查询最新披露值、昨日及7/30日前对比,查看历史情绪位置。
一个入口,连接更多 Agent。
统一命名、输入、结果与数据完整度。API v1 · token-risk 0.2.0 · 2026-10-21
OpenAPI 3.1 JSON ↗ · 完整接入规范与规划 ↗ · Agent 目录 JSON ↗ · JavaScript SDK ↗
当前开放:token-risk
Agent ID 使用稳定的 kebab-case。其下六个POST功能共享采集与60秒缓存,只缩小返回范围。后续Agent独立加入统一目录。
| 方法 | 路径 | 功能 |
|---|---|---|
POST | /api/v1/agents/token-risk/analyze | 代币综合风险分析 |
POST | /api/v1/agents/token-risk/holders | 前20持有人 |
POST | /api/v1/agents/token-risk/liquidity | 流动性与历史变化 |
POST | /api/v1/agents/token-risk/large-transactions | 大额成交与转账 |
POST | /api/v1/agents/token-risk/contract-permissions | 合约权限检查 |
POST | /api/v1/agents/token-risk/fund-flows | 资金流观察 |
共用输入参数
| 参数 | 类型 | 要求 |
|---|---|---|
| chain | string | 必填,ethereum 或 bsc,均为主网 |
| token_address | string | 必填,0x开头40位十六进制合约地址 |
Content-Type: application/json;请求体最多4096字节;未知参数拒绝。门槛10万美元、前20、近期100条转账、2个成交池固定,不支持自定义。原生ETH/BNB不适用。
curl -X POST 'https://agent.vestpivot.com/api/v1/agents/token-risk/analyze' \
-H 'Content-Type: application/json' \
--data '{"chain":"ethereum","token_address":"0xdac17f958d2ee523a2206206994597c13d831ec7"}'统一返回 Envelope
{
"request_id": "UUID",
"api_version": "1",
"agent": {
"id": "token-risk",
"version": "0.2.0"
},
"status": "partial",
"data": "完整报告或{token,module,result,sources}",
"meta": {
"generated_at": "Unix秒",
"cache": {
"hit": false,
"ttl_seconds": 60
},
"data_path": "server",
"coverage": {
"holders_top20": "observed",
"liquidity": "partial"
}
},
"warnings": [
{
"code": "PARTIAL_COVERAGE",
"message": "实际缺失范围"
}
],
"error": null
}completed / partial / error 是请求结果;observed / partial / insufficient 是模块覆盖状态。两者均不能代替代币的风险等级。金额与数量通常是字符串,null表示未知,百分比50表示50%。合约权限字符串0不代表JavaScript false。
所请求模块全部数据不足时返回503,并保留data里的诊断信息。非2xx使用error.code,不按中文message判断。每个请求都有X-Request-ID。
代币综合风险分析 · analyze
返回五个风险维度、权限线索、来源和完整度。采集范围受免费供应商限制。
data是综合报告:token、assessment、五个modules、findings、sources、notice、precision_note;不返回内部_inputs。
前20持有人 · holders
按供应商余额排名返回最多20个持有人、持仓占比与精确原始余额。
data.result包含status、reason、returned、required、returned_holders_pct、items[]。每项是address、raw_balance或回退balance、supply_pct、tag;部分来源还有source、is_locked。
流动性与历史变化 · liquidity
返回去重后的池子、当前美元流动性和已积累快照的1h/6h/24h变化。
data.result包含current_usd、pool_count、pools[]、changes、provider_pool_counts、status、reason。每个池子返回pair、dex、liquidity_usd、volume_24h_usd;changes按1h/6h/24h返回基准、同池比较与集合变化。
大额成交与转账 · large-transactions
返回10万美元以上的大额DEX成交、近期转账样本和覆盖窗口;不能视为全链完整24小时。
data.result包含threshold_usd、dex_trades[]、transfers[]、recent_transfers[]、scanned_transfers、transfer_sample_from/to、trade_pools_requested/succeeded、large_dex_trades_found、large_transfers_found、complete_24h=false、status、reason。
合约权限检查 · contract-permissions
返回蜜罐、增发、暂停、黑名单、代理等第三方检测标记,未知保留null。
data.result包含flags、tax_pct、owner_address、status、reason。flags有is_honeypot、cannot_sell_all、is_blacklisted、is_mintable、transfer_pausable、owner_change_balance、slippage_modifiable、hidden_owner、is_proxy。
资金流观察 · fund-flows
返回转账样本中的地址净变化、增发/销毁和管理员大额转出线索,以及已覆盖的大额DEX买卖差。
data.result包含address_net_flows[]、items[]线索、sample_transfers、large_dex_buy_usd、large_dex_sell_usd、large_dex_net_buy_usd、status、reason。净变化按地址返回数量、当前美元估值、流入/流出次数和标签。
平台接口与调用限制
GET /api/v1/health:仅检查API进程。GET /api/v1/agents:列出可用及规划中的Agent。GET /api/v1/agents/{agent_id}:查看功能、版本和限制。GET /api/v1/openapi.json:原始OpenAPI文档。
当前为无API Key公共预览,约15次/分钟/IP;429按Retry-After等待60秒。允许浏览器CORS,不使用Cookie凭据。建议60秒超时,有限并发。正式应用鉴权、租户与配额仍在规划中。
服务器API不执行网页浏览器回退。网页能显示的数据不保证API同样取得;本机历史不属于服务器历史。旧GET /api/analyze保留兼容,新应用使用/api/v1。接口不是完整24h索引,无SLA。
已上线:etf-flows · 现货ETF资金流
POST /api/v1/agents/etf-flows/analyze
Content-Type: application/json
{"asset":"btc"}asset必填,支持btc/eth及大写。返回最新披露日、包含该日的近5/20个美股交易日净资金流,附起止日期、正负方向、日明细、缺失状态和署名。
data.latest_trading_day是最近已收盘交易日;reference_date是采用来源的最新记录;latest_available_date是最新非空金额日期。periods.latest / last_5 / last_20含net_flow_usd、observed_net_flow_usd、requested_trading_days、observed_trading_days、start_date、end_date、direction、status、missing_dates与daily。
金额单位USD,十进制字符串,正数流入、负数流出;缺失任一天则窗口净额null,仅显示已知部分。近5/20日是美股交易日而非自然日;不把AUM变化或成交量当作净申赎。不跨来源混拼。缓存与后台预更新间隔15分钟;上游失败明确标注,完全无数据时503。SDK:getEtfFlows({asset:"eth"})。
来源为Farside公开表、CryptoETF免注册MCP、BTC的TFTC公开JSON(CC BY 4.0)。完整口径、限制与参数见完整文档,下方EtfInput / EtfPeriod / EtfReport可展开。
已上线:fear-greed · BTC恐惧与贪婪指数
POST /api/v1/agents/fear-greed/analyze
Content-Type: application/json
{"asset":"btc"}| 参数 | 类型 | 要求 |
|---|---|---|
| asset | string | 必填,仅btc / BTC,返回统一小写;未知参数拒绝。 |
data.latest返回date(UTC)、timestamp(Unix秒)、value(0–100整数)、classification(原始情绪等级)、classification_zh。comparisons.yesterday / last_week / last_month为最新披露日回溯1/7/30个自然日,返回date、value、classification、classification_zh、change_points(最新值减当日值,单位点,非百分比)。缺失保留null,不以邻近日期替代。
history按新到旧返回最近31个自然日内最多31条记录,history_days为条数。source包含name、url、api_url、attribution、fetched_at;stale表示最新指数超过48小时,warnings明确缺失或过期。generated_at是本次服务生成时间,不是指数更新时间。cache.hit / ttl_seconds表示15分钟缓存;全部来源失败时HTTP503 / UPSTREAM_UNAVAILABLE。SDK:getFearGreed({asset:"btc"})。
数据来源:Alternative.me ↗。引用其指数时须在数值旁清晰署名;本工具展示官方指数,不自行重算因子。完整字段见FearGreedInput / FearGreedReport。
后续Agent路线图
以下是草案,callable=false,不在可用OpenAPI路径里;调用规划中的Agent返回501。先完善鉴权与索引,再开放持续监控与组合数据。
阶段2 · wallet-flow · 钱包资金流 Agent 规划中,不可调用
针对单个钱包分析代币流入流出、主要交易对手和地址集中度。
POST /api/v1/agents/wallet-flow/analyze
| 参数 | 草案含义、范围与默认值 |
|---|---|
| chain | ethereum | bsc |
| wallet_address | 0x开头40位EVM地址 |
| lookback_hours | 整数1–168,默认24 |
| token_address | 可选,限制分析的代币 |
建议返回:wallet、window、net_flows[]、counterparties[]、large_transfers[]、coverage、sources[]。
依赖:可分页转账索引、历史估值或明确的当前价估值、地址标签。
阶段2 · liquidity-watch · 流动性监控 Agent 规划中,不可调用
持续采集指定代币的池子,区分估值变化与增减流动性事件,生成告警。
POST /api/v1/agents/liquidity-watch/monitors
| 参数 | 草案含义、范围与默认值 |
|---|---|
| chain | ethereum | bsc |
| token_address | 代币合约地址 |
| interval_minutes | 枚举5/15/60,默认15 |
| drop_threshold_pct | 大于0且小于100,默认30 |
| duration_hours | 整数1–168,默认24 |
建议返回:monitor_id、status、next_run_at、expires_at、snapshot_count、alerts[]。
依赖:调度器、持久化历史、池子事件索引、租户鉴权与监控额度。
阶段3 · market-pulse · 市场状态 Agent 规划中,不可调用
分析指定交易市场的价格、成交量、波动率和交易深度。
POST /api/v1/agents/market-pulse/analyze
| 参数 | 草案含义、范围与默认值 |
|---|---|
| exchange | binance | okx |
| market_type | spot,首版仅现货 |
| symbol | 统一格式BASE/QUOTE,例如BTC/USDT |
| lookback_hours | 枚举1/4/24/168,默认24 |
建议返回:instrument、price、volume、volatility、order_book_depth、signals[]、coverage、sources[]。
依赖:交易所公共行情、K线与深度缓存、统一交易对映射。
阶段3 · portfolio-risk · 组合风险 Agent 规划中,不可调用
汇总代币风险敞口、资产集中度和相关性,分析用户提供的持仓组合。
POST /api/v1/agents/portfolio-risk/analyze
| 参数 | 草案含义、范围与默认值 |
|---|---|
| positions | 数组1–50项,每项{chain,token_address,quantity};quantity为非负十进制字符串 |
| valuation_currency | USD,首版固定 |
建议返回:valuation、weights[]、concentration、token_risks[]、correlation、unpriced_positions[]、coverage、sources[]。
依赖:token-risk、历史价格、缺失估值处理、持仓隐私与授权。
阶段4 · event-risk · 项目事件风险 Agent 规划中,不可调用
汇总代币解锁、治理、升级和安全事件,并保留事件原始来源。
POST /api/v1/agents/event-risk/analyze
| 参数 | 草案含义、范围与默认值 |
|---|---|
| chain | ethereum | bsc |
| token_address | 代币合约地址 |
| lookahead_days | 整数1–90,默认30 |
| event_types | 可选数组:unlock/governance/upgrade/security;默认全部 |
建议返回:events[]、timeline、risk_notes[]、coverage、sources[]。
依赖:可信事件与解锁数据、项目官方来源、事实去重与时间验证。
机器可读字段词典
字段类型、必填项、枚举与nullable定义与线上OpenAPI一致。点击展开。
AgentDescriptor 字段定义
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "全局唯一小写kebab-case标识,如token-risk"
},
"name": {
"type": "string",
"description": "中文显示名"
},
"version": {
"type": [
"string",
"null"
],
"description": "Agent实现的语义版本;规划中为null"
},
"status": {
"enum": [
"live",
"planned"
]
},
"callable": {
"type": "boolean",
"description": "只有true才可以调用;planned元数据不承诺路径已上线"
},
"chains": {
"type": "array",
"items": {
"type": "string"
}
},
"authentication": {
"type": "string",
"description": "当前public_preview表示无API Key的公共预览"
},
"operations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"operation_id": {
"type": "string",
"description": "OpenAPI operationId"
},
"name": {
"type": "string",
"description": "功能名"
},
"method": {
"const": "POST"
},
"path": {
"type": "string",
"description": "请求路径"
},
"description": {
"type": "string",
"description": "功能说明"
},
"module": {
"type": [
"string",
"null"
]
}
},
"required": [
"operation_id",
"name",
"method",
"path",
"description",
"module"
]
}
},
"input": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"phase": {
"type": "integer"
},
"purpose": {
"type": "string",
"description": "未来Agent用途"
},
"proposed_operation": {
"type": "string",
"description": "草案路径,不可调用"
},
"proposed_input": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"proposed_output": {
"type": "array",
"items": {
"type": "string"
}
},
"dependencies": {
"type": "array",
"items": {
"type": "string"
}
},
"proposed_followups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"name",
"version",
"status",
"callable"
]
}TokenInput 字段定义
{
"type": "object",
"properties": {
"chain": {
"enum": [
"ethereum",
"bsc"
],
"description": "必填。ethereum=Ethereum主网;bsc=BNB Smart Chain主网。不支持测试网。"
},
"token_address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
}
},
"required": [
"chain",
"token_address"
],
"additionalProperties": false
}Token 字段定义
{
"type": "object",
"properties": {
"chain": {
"enum": [
"ethereum",
"bsc"
]
},
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"name": {
"type": [
"string",
"null"
],
"description": "代币名称"
},
"symbol": {
"type": [
"string",
"null"
],
"description": "代币符号"
},
"price_usd": {
"type": [
"string",
"null"
],
"description": "来自池子报价的当前美元价格,未知为null"
}
},
"required": [
"chain",
"address",
"name",
"symbol",
"price_usd"
]
}Holder 字段定义
{
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"raw_balance": {
"type": "string",
"description": "最小单位的精确非负整数,不转为JavaScript Number"
},
"balance": {
"type": [
"string",
"null"
],
"description": "GoPlus回退时可能返回的代币余额字符串,不能假定与raw_balance同单位"
},
"supply_pct": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"tag": {
"type": "string",
"description": "供应商标签,空字符串表示未标注,不能推断地址身份"
},
"source": {
"type": "string",
"description": "供应商域名,可能仅存在于主数据源结果"
},
"is_locked": {
"description": "原样保留供应商锁定标记;缺失表示未知",
"type": [
"string",
"integer",
"null"
]
}
},
"required": [
"address",
"supply_pct",
"tag"
]
}Source 字段定义
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "来源用途:security/market/holders/transfers/gecko1/gecko2/trades:<pool>等"
},
"url": {
"type": "string",
"format": "uri"
},
"fetched_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"status": {
"enum": [
"ok",
"error"
]
},
"error": {
"type": "string",
"description": "失败时存在的上游错误摘要"
}
},
"required": [
"url",
"fetched_at",
"status"
]
}Pool 字段定义
{
"type": "object",
"properties": {
"pair": {
"type": "string",
"description": "池地址或协议池ID,可能为40或64位十六进制"
},
"dex": {
"type": [
"string",
"null"
],
"description": "DEX标识"
},
"liquidity_usd": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"volume_24h_usd": {
"type": [
"number",
"string",
"null"
],
"description": "供应商报告的24h美元成交量;null为未知"
}
},
"required": [
"pair",
"dex",
"liquidity_usd",
"volume_24h_usd"
]
}HistoryPoint 字段定义
{
"type": "object",
"properties": {
"status": {
"enum": [
"observed",
"insufficient"
]
},
"reason": {
"type": "string",
"description": "无基准时的原因"
},
"baseline_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"change_pct": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"compared_pools": {
"type": "integer"
},
"pool_set_changed": {
"type": "boolean"
},
"note": {
"type": "string",
"description": "美元变化不等于撤池"
}
},
"required": [
"status"
]
}DexTrade 字段定义
{
"type": "object",
"properties": {
"kind": {
"const": "dex_trade"
},
"hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
},
"timestamp": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"pool": {
"type": "string",
"description": "池地址或ID"
},
"wallet": {
"type": [
"string",
"null"
],
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"direction": {
"enum": [
"buy",
"sell"
],
"description": "相对于本次目标代币:买入/卖出,不是相对于池子的任意base资产"
},
"quantity": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"usd": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"valuation": {
"const": "provider_trade_value"
},
"event_id": {
"type": "string",
"description": "成交事件身份;同一交易可包含多个真实事件"
},
"source": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind",
"hash",
"timestamp",
"pool",
"wallet",
"direction",
"quantity",
"usd",
"valuation",
"event_id",
"source"
]
}Transfer 字段定义
{
"type": "object",
"properties": {
"kind": {
"const": "transfer"
},
"hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
},
"timestamp": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"from": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"to": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"quantity": {
"type": "string",
"description": "依据代币decimals转换的数量字符串,原始数据未以浮点转换后再拼接"
},
"usd_estimate": {
"type": [
"string",
"null"
],
"description": "按当前价格估算的美元金额;不是交易时点价值"
},
"valuation": {
"enum": [
"current_price_estimate",
"unavailable"
]
},
"event_index": {
"type": [
"integer",
"string",
"null"
]
},
"source": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind",
"hash",
"timestamp",
"from",
"to",
"quantity",
"usd_estimate",
"valuation",
"event_index",
"source"
]
}HoldersModule 字段定义
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
},
"reason": {
"type": "string",
"description": "覆盖范围、缺口与解释"
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"required": {
"const": 20
},
"returned_holders_pct": {
"type": [
"string",
"null"
],
"description": "返回地址持仓百分数之和;供应商占比可能已四舍五入,50表示50%"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Holder"
}
},
"source": {
"type": "string",
"description": "主来源域名"
}
},
"required": [
"status",
"reason",
"returned",
"required",
"returned_holders_pct",
"items"
]
}LiquidityModule 字段定义
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
},
"reason": {
"type": "string",
"description": "覆盖范围、缺口与解释"
},
"current_usd": {
"type": [
"string",
"null"
],
"description": "已覆盖池子美元流动性之和;null为未知,不是零"
},
"pool_count": {
"type": "integer"
},
"pools": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Pool"
}
},
"changes": {
"type": "object",
"properties": {
"1h": {
"$ref": "#/components/schemas/HistoryPoint"
},
"6h": {
"$ref": "#/components/schemas/HistoryPoint"
},
"24h": {
"$ref": "#/components/schemas/HistoryPoint"
}
},
"required": [
"1h",
"6h",
"24h"
]
},
"provider_pool_counts": {
"type": "object",
"properties": {
"dexscreener": {
"type": "integer"
},
"geckoterminal": {
"type": "integer"
},
"added_from_gecko": {
"type": "integer"
}
},
"required": [
"dexscreener",
"geckoterminal",
"added_from_gecko"
]
}
},
"required": [
"status",
"reason",
"current_usd",
"pool_count",
"pools",
"changes"
]
}LargeTransactionsModule 字段定义
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
},
"reason": {
"type": "string",
"description": "覆盖范围、缺口与解释"
},
"threshold_usd": {
"const": "100000",
"description": "当前固定10万美元,不支持自定义参数"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/DexTrade"
},
{
"$ref": "#/components/schemas/Transfer"
}
]
}
},
"dex_trades": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DexTrade"
}
},
"transfers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Transfer"
}
},
"recent_transfers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Transfer"
}
},
"scanned_transfers": {
"type": "integer"
},
"transfer_sample_from": {
"type": [
"integer",
"null"
],
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"transfer_sample_to": {
"type": [
"integer",
"null"
],
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"trade_pools_requested": {
"type": "integer"
},
"trade_pools_succeeded": {
"type": "integer"
},
"large_dex_trades_found": {
"type": "integer"
},
"large_transfers_found": {
"type": "integer"
},
"complete_24h": {
"const": false,
"description": "本版本始终false。items最多150条,两分类数组分别最多100条,found为截断前计数。"
}
},
"required": [
"status",
"reason",
"threshold_usd",
"items",
"dex_trades",
"transfers",
"recent_transfers",
"scanned_transfers",
"transfer_sample_from",
"transfer_sample_to",
"trade_pools_requested",
"trade_pools_succeeded",
"large_dex_trades_found",
"large_transfers_found",
"complete_24h"
]
}ContractPermissionsModule 字段定义
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
},
"reason": {
"type": "string",
"description": "覆盖范围、缺口与解释"
},
"flags": {
"type": "object",
"properties": {
"is_honeypot": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"cannot_sell_all": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"is_blacklisted": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"is_mintable": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"transfer_pausable": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"owner_change_balance": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"slippage_modifiable": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"hidden_owner": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
},
"is_proxy": {
"type": [
"string",
"null"
],
"enum": [
"0",
"1",
null
],
"description": "1=检测到该能力/标记,0=供应商未检测到,null=未知,不能将null当作0"
}
},
"required": [
"is_honeypot",
"cannot_sell_all",
"is_blacklisted",
"is_mintable",
"transfer_pausable",
"owner_change_balance",
"slippage_modifiable",
"hidden_owner",
"is_proxy"
]
},
"tax_pct": {
"type": "object",
"properties": {
"buy_tax": {
"type": [
"string",
"null"
],
"description": "买税百分数,10表示10%"
},
"sell_tax": {
"type": [
"string",
"null"
],
"description": "卖税百分数,10表示10%"
}
},
"required": [
"buy_tax",
"sell_tax"
]
},
"owner_address": {
"type": [
"string",
"null"
],
"description": "GoPlus返回的owner地址,可能空字符串/null,未知不推断"
}
},
"required": [
"status",
"reason",
"flags",
"tax_pct",
"owner_address"
]
}FundFlowsModule 字段定义
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
},
"reason": {
"type": "string",
"description": "覆盖范围、缺口与解释"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"mint",
"burn",
"admin_outflow"
]
},
"message": {
"type": "string",
"description": "需核实的观察线索,不是恶意行为定论"
},
"transaction": {
"$ref": "#/components/schemas/Transfer"
}
},
"required": [
"type",
"message",
"transaction"
]
}
},
"address_net_flows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM地址;按chain区分网络,不能仅用币名识别"
},
"net_quantity": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"net_usd_estimate": {
"type": [
"string",
"null"
],
"description": "当前价格估计净变化,正数流入负数流出"
},
"in_count": {
"type": "integer"
},
"out_count": {
"type": "integer"
},
"tag": {
"type": "string",
"description": "供应商标签"
}
},
"required": [
"address",
"net_quantity",
"net_usd_estimate",
"in_count",
"out_count",
"tag"
]
}
},
"sample_transfers": {
"type": "integer"
},
"large_dex_buy_usd": {
"type": [
"string",
"null"
],
"description": "覆盖范围内10万美元以上买入成交之和"
},
"large_dex_sell_usd": {
"type": [
"string",
"null"
],
"description": "覆盖范围内10万美元以上卖出成交之和"
},
"large_dex_net_buy_usd": {
"type": [
"string",
"null"
],
"description": "覆盖范围内大额买入减卖出;不是全链净流入,不与普通转账相加"
}
},
"required": [
"status",
"reason",
"items",
"address_net_flows",
"sample_transfers",
"large_dex_buy_usd",
"large_dex_sell_usd",
"large_dex_net_buy_usd"
]
}Finding 字段定义
{
"type": "object",
"properties": {
"severity": {
"enum": [
"medium",
"high",
"critical"
]
},
"message": {
"type": "string",
"description": "风险线索"
},
"evidence": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"severity",
"message",
"evidence"
]
}Report 字段定义
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"description": "数据结构版本,目前0.2"
},
"rules_version": {
"type": "string",
"description": "风控规则版本,目前0.2"
},
"generated_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"runtime": {
"type": "string",
"description": "服务运行位置"
},
"token": {
"$ref": "#/components/schemas/Token"
},
"assessment": {
"type": "object",
"properties": {
"status": {
"const": "incomplete"
},
"observed_risk_level": {
"enum": [
"undetermined",
"medium",
"high",
"critical"
]
},
"findings_count": {
"type": "integer"
},
"summary": {
"type": "string",
"description": "风险等级仅代表已发现风险,不代表整体安全结论"
}
},
"required": [
"status",
"observed_risk_level",
"findings_count",
"summary"
]
},
"modules": {
"type": "object",
"properties": {
"holders_top20": {
"$ref": "#/components/schemas/HoldersModule"
},
"liquidity": {
"$ref": "#/components/schemas/LiquidityModule"
},
"large_transactions_24h": {
"$ref": "#/components/schemas/LargeTransactionsModule"
},
"contract_permissions": {
"$ref": "#/components/schemas/ContractPermissionsModule"
},
"abnormal_flows": {
"$ref": "#/components/schemas/FundFlowsModule"
}
},
"required": [
"holders_top20",
"liquidity",
"large_transactions_24h",
"contract_permissions",
"abnormal_flows"
]
},
"findings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Finding"
}
},
"sources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Source"
}
},
"notice": {
"type": "string",
"description": "分析局限说明"
},
"precision_note": {
"type": "string",
"description": "余额和估值精度说明"
},
"cache": {
"$ref": "#/components/schemas/Cache"
}
},
"required": [
"schema_version",
"rules_version",
"generated_at",
"runtime",
"token",
"assessment",
"modules",
"findings",
"sources",
"notice",
"precision_note",
"cache"
]
}Cache 字段定义
{
"type": "object",
"properties": {
"hit": {
"type": "boolean"
},
"ttl_seconds": {
"type": "integer",
"enum": [
60,
900
],
"description": "token-risk为60秒;etf-flows为900秒"
}
},
"required": [
"hit",
"ttl_seconds"
]
}Error 字段定义
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "稳定的机器错误码,调用方不要依赖中文message判断分支"
},
"message": {
"type": "string",
"description": "中文错误说明"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "错误字段"
},
"message": {
"type": "string",
"description": "字段问题"
}
},
"required": [
"field",
"message"
]
}
},
"retryable": {
"type": "boolean"
}
},
"required": [
"code",
"message",
"details",
"retryable"
]
}Envelope 字段定义
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"format": "uuid"
},
"api_version": {
"const": "1"
},
"agent": {
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Agent ID"
},
"version": {
"type": "string",
"description": "Agent实现版本"
}
},
"required": [
"id",
"version"
]
}
]
},
"status": {
"enum": [
"completed",
"partial",
"error"
],
"description": "请求处理结果,与合约是否安全无关"
},
"data": {},
"meta": {
"type": "object",
"properties": {
"generated_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"cache": {
"$ref": "#/components/schemas/Cache"
},
"data_path": {
"const": "server"
},
"schema_version": {
"type": "string"
},
"rules_version": {
"type": "string"
},
"coverage": {
"type": "object",
"additionalProperties": {
"type": "string",
"enum": [
"observed",
"partial",
"insufficient"
],
"description": "observed=该模块声明范围已获取;partial=部分覆盖;insufficient=没有足够数据。observed不代表资产安全。"
}
}
}
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "DATA_UNAVAILABLE / PARTIAL_COVERAGE / NOT_FULL_24H"
},
"module": {
"type": "string",
"description": "可选,报告模块名"
},
"message": {
"type": "string",
"description": "覆盖警告"
}
},
"required": [
"code",
"message"
]
}
},
"error": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/Error"
}
]
}
},
"required": [
"request_id",
"api_version",
"agent",
"status",
"data",
"meta",
"warnings",
"error"
]
}EtfInput 字段定义
{
"type": "object",
"properties": {
"asset": {
"type": "string",
"enum": [
"btc",
"eth",
"BTC",
"ETH"
],
"description": "必填,支持美国现货BTC/ETH ETF,输出统一小写"
}
},
"required": [
"asset"
],
"additionalProperties": false
}EtfDay 字段定义
{
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "美国交易日YYYY-MM-DD,不按UTC时间戳换日"
},
"net_flow_usd": {
"type": [
"string",
"null"
],
"description": "有符号美元金额,保留两位小数;null表示尚未披露/缺失,不是零"
},
"reporting_status": {
"enum": [
"reported",
"pending",
"provisional",
"missing"
]
}
},
"required": [
"date",
"net_flow_usd",
"reporting_status"
]
}EtfPeriod 字段定义
{
"type": "object",
"properties": {
"requested_trading_days": {
"type": "integer",
"enum": [
1,
5,
20
]
},
"observed_trading_days": {
"type": "integer"
},
"start_date": {
"type": "string",
"format": "date"
},
"end_date": {
"type": "string",
"format": "date"
},
"net_flow_usd": {
"type": [
"string",
"null"
],
"description": "窗口全部日期有值时的累计净流;任一天缺失则为null"
},
"observed_net_flow_usd": {
"type": "string",
"description": "十进制数值字符串,可包含负号;用于展示的估值可能近似。精确原始余额见raw_balance。"
},
"direction": {
"enum": [
"inflow",
"outflow",
"flat",
"unknown"
]
},
"status": {
"enum": [
"complete",
"partial",
"provisional"
]
},
"inflow_days": {
"type": "integer"
},
"outflow_days": {
"type": "integer"
},
"flat_days": {
"type": "integer"
},
"missing_dates": {
"type": "array",
"items": {
"type": "string",
"format": "date"
}
},
"daily": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EtfDay"
}
}
},
"required": [
"requested_trading_days",
"observed_trading_days",
"start_date",
"end_date",
"net_flow_usd",
"observed_net_flow_usd",
"direction",
"status",
"inflow_days",
"outflow_days",
"flat_days",
"missing_dates",
"daily"
]
}EtfReport 字段定义
{
"type": "object",
"properties": {
"asset": {
"enum": [
"btc",
"eth"
]
},
"market": {
"const": "us_spot"
},
"currency": {
"const": "USD"
},
"latest_trading_day": {
"type": "string",
"format": "date",
"description": "按纽约时间计算的最近已收盘美股交易日,不保证数据已发布"
},
"latest_available_date": {
"type": [
"string",
"null"
],
"format": "date",
"description": "已取到非空金额的最近日期"
},
"reference_date": {
"type": [
"string",
"null"
],
"format": "date",
"description": "选定来源的最新记录日期,三组窗口均以该日为结束日期"
},
"periods": {
"type": "object",
"properties": {
"latest": {
"oneOf": [
{
"$ref": "#/components/schemas/EtfPeriod"
},
{
"type": "null"
}
]
},
"last_5": {
"oneOf": [
{
"$ref": "#/components/schemas/EtfPeriod"
},
{
"type": "null"
}
]
},
"last_20": {
"oneOf": [
{
"$ref": "#/components/schemas/EtfPeriod"
},
{
"type": "null"
}
]
}
},
"required": [
"latest",
"last_5",
"last_20"
]
},
"daily": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EtfDay"
}
},
"selected_source": {
"type": [
"object",
"null"
],
"properties": {
"provider": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"attribution": {
"type": "string"
},
"fetched_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"updated_at": {
"type": [
"string",
"null"
]
}
}
},
"sources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Source"
}
},
"status": {
"enum": [
"completed",
"partial",
"unavailable"
]
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
]
}
},
"generated_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"cache": {
"$ref": "#/components/schemas/Cache"
},
"methodology": {
"type": "string"
}
},
"required": [
"asset",
"market",
"currency",
"latest_trading_day",
"latest_available_date",
"reference_date",
"periods",
"daily",
"selected_source",
"sources",
"status",
"warnings",
"generated_at"
]
}FearGreedInput 字段定义
{
"type": "object",
"properties": {
"asset": {
"type": "string",
"enum": [
"btc",
"BTC"
],
"description": "必填,仅支持BTC"
}
},
"required": [
"asset"
],
"additionalProperties": false
}FearGreedPoint 字段定义
{
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "UTC自然日"
},
"timestamp": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"value": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"classification": {
"enum": [
"Extreme Fear",
"Fear",
"Neutral",
"Greed",
"Extreme Greed"
]
},
"classification_zh": {
"type": "string",
"description": "来源分类的中文翻译"
}
},
"required": [
"date",
"timestamp",
"value",
"classification",
"classification_zh"
]
}FearGreedComparison 字段定义
{
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date"
},
"value": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 100
},
"classification": {
"type": [
"string",
"null"
],
"description": "原始分类,缺失为null"
},
"classification_zh": {
"type": [
"string",
"null"
],
"description": "中文分类"
},
"change_points": {
"type": [
"integer",
"null"
],
"description": "最新指数减该日指数,单位点,非百分比"
}
},
"required": [
"date",
"value",
"classification",
"classification_zh",
"change_points"
]
}FearGreedReport 字段定义
{
"type": "object",
"properties": {
"asset": {
"const": "btc"
},
"index_name": {
"type": "string",
"description": "指数名称"
},
"scale": {
"type": "object",
"properties": {
"min": {
"const": 0
},
"max": {
"const": 100
}
},
"required": [
"min",
"max"
]
},
"latest": {
"$ref": "#/components/schemas/FearGreedPoint"
},
"comparisons": {
"type": "object",
"properties": {
"yesterday": {
"$ref": "#/components/schemas/FearGreedComparison"
},
"last_week": {
"$ref": "#/components/schemas/FearGreedComparison"
},
"last_month": {
"$ref": "#/components/schemas/FearGreedComparison"
}
},
"required": [
"yesterday",
"last_week",
"last_month"
]
},
"history": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FearGreedPoint"
}
},
"history_days": {
"type": "integer",
"maximum": 31
},
"stale": {
"type": "boolean",
"description": "最新指数超过48小时"
},
"source": {
"type": "object",
"properties": {
"name": {
"const": "Alternative.me"
},
"url": {
"type": "string",
"format": "uri"
},
"api_url": {
"type": "string",
"format": "uri"
},
"attribution": {
"type": "string",
"description": "展示数值时须邻近保留的来源署名"
},
"fetched_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
}
},
"required": [
"name",
"url",
"api_url",
"attribution",
"fetched_at"
]
},
"methodology": {
"type": "string",
"description": "数据口径"
},
"generated_at": {
"type": "integer",
"description": "Unix秒,UTC绝对时间;显示时自行转换时区"
},
"status": {
"enum": [
"completed",
"partial"
]
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "警告码"
},
"message": {
"type": "string",
"description": "说明"
}
},
"required": [
"code",
"message"
]
}
},
"cache": {
"$ref": "#/components/schemas/Cache"
}
},
"required": [
"asset",
"index_name",
"scale",
"latest",
"comparisons",
"history",
"history_days",
"stale",
"source",
"methodology",
"generated_at",
"status",
"warnings",
"cache"
]
}