Token Sniffer 分数怎么看?查 pending、测试方向和卖出未知
链小知 · 进阶 · 核验 · 依官方文档整理
请求完整测试结果后逐项读risk字段,避免把true、100分或null当作安全保证。
开始前准备
- 准备支持链的chain_id与完整代币合约;本例限定Ethereum主网。
- 适用APIv2;metrics/tests仅部分链提供,卖出模拟当前文档只列Ethereum、Base、BNB Chain、Blast且需要池。
- API需本人已有Pro/Enterprise访问与X-API-Key;只读不支付gas,服务费用查询当前套餐。
1. 请求需要的测试内容
GET https://tokensniffer.com/api/v2/tokens/1/完整合约?include_metrics=true&include_tests=true,使用X-API-Key头。不要只查默认响应后因为没有tests就写“没有风险”。
保存chain_id、合约和两个开关。其他链先看支持范围,不把所有链可返回基本信息理解成全部链都有卖出模拟。
检查结果:请求目标正确,额外指标与tests明确开启。
2. 等待ready并核对刷新时间
读取status:pending表示正在分析/刷新,官方建议5秒后重查,或使用block_until_ready=true长轮询;设置合理次数和超时,避免无限请求。
status=ready后核对chainId/address与refreshed_at。没有更新时间或仍pending时不拿旧分数作为当前检查完成,也不把HTTP200直接当ready。
检查结果:保存ready/pending、刷新时间及请求范围。
3. 先读恶意与可疑标记
查看is_flagged、is_suspect、is_pending、is_rugpull和exploits实际字段。人工待审与已经恶意标记不是同一个状态;保存检测到的具体类型原文。
score是Smell Test汇总估计,0最危险、100风险估计最低,不意味着100分能排除所有攻击或保证价格。先读标记再看分数。
检查结果:记录具体标记,不只复制分数。
4. 按测试ID解释布尔值
查看tests.id、description和result。官方提示描述可能写成测试ID的反义,例如testForMissingSource的描述是Verified contract source,result=true反而表示缺源码。
遇到任何测试先读ID含义和对应文档,再解释true/false;有value、valuePct或data时一起记录,不能把所有true渲染成“通过”。
检查结果:至少解释目标测试的ID、方向、结果及附加数据。
5. 区分卖出模拟与真实操作
读取swap_simulation.is_sellable、buy_fee、sell_fee,字段null表示无法确定;当前模拟需要支持链和流动性池。未知不能转成可卖出或0税。
最终保留ready状态、合约、刷新时间、标记、测试方向与模拟覆盖。查询不执行授权或交易;日后真实卖出仍须核对路由、报价和钱包请求。
检查结果:完成字段级风险记录,缺失/过期/模拟未知项明确。
怎样确认完成
- 取得ready结果或明确pending,并正确解释测试方向及未知模拟。
- 依据官方文档整理,真实账户/API返回与资金操作尚待实际验证。
常见错误与边界
- 测试描述与result可能反向,必须看ID。
- 100分不能代替当前资产和交易权限核对。