智能合约体检
输入地址,读字节码、查验证状态、解析函数表、识别代理、跟随到实现合约,再对源码跑一遍风险模式扫描。每一句结论都指向具体的源码行号—— 没有证据支撑的判断,在这个页面上不会出现。
代理识别
支持 EIP-1167、EIP-1967、EIP-1822(UUPS) 与 ZeppelinOS 四种槽位, 含「不做减一」的老式变体。识别后会自动跟随一层到实现合约。
风险扫描
18 条规则,从「任何人都能 mint」到「存在 SELFDESTRUCT」。 先掩掉注释与字符串再匹配,所以文档里的示例代码不会造成误报。
验证来源
用 Sourcify 而不是只查区块浏览器,因为它能做字节码级别的比对, 而不只是相信一份上传的文件。
不开深度模式时,报告包含验证状态、代理识别、函数表、字节码特征与权限信息, 但不会跑源码级风险规则——要看「无限 mint」「可改税率」这类线索必须开它。 深度模式会多花几秒。
试试这些地址
- USDC(以太坊主网)
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48它用的是 ZeppelinOS 老式代理模板——实现地址不在 EIP-1967 槽里, 正好可以验证本站的代理识别有没有漏掉这一种。 - USDT(以太坊主网)
0xdAC17F958D2ee523a2206206994597C13D831ec7与 USDC 同为老式代理,但实现合约是未验证的,能看到「未验证」分支的呈现。 - OMG 代币(2017 年部署)
0xd26114cd6EE289AccF82350c8d8487fedB8A0C07非常老的合约,Sourcify 上没有源码。用来观察「未验证 + 有代码」的报告长什么样。
查询会依次做四件事:读字节码与余额 → 查 Sourcify 验证状态 → 解析函数选择器 → 识别代理并跟随到实现合约(如果只分析代理,等于什么都没分析)。
这份报告的能力边界
能做的
- · 确认链上是否真有代码,以及字节码的精确大小与函数选择器集合
- · 比对源码与链上字节码是否一致(含忽略元数据后的比对)
- · 识别代理并读出实现合约地址,避免「只分析了壳」
- · 命中有共识的危险写法,并给出声明处的源码行号
- · 区分「链上有但 ABI 里没有」的选择器,提示可能被隐藏的函数
做不到的
- · 抓不到逻辑漏洞:闪电贷操纵价格、签名重放、舍入套利,这些代码语法完全正常
- · 判不了经济模型:代币分配是否合理、流动性有没有锁定,这些在链上数据里不在源码里
- · 替代不了实际交易测试:蜜罐的判定条件可以藏在汇编或链下签名里,只有真的买卖一次才能确认
- · 不提供持仓分布数据(需要第三方 API Key,本站明确降级而非给猜测值)
- · 只跟随一层代理,多级代理需要手动继续点进去
把「做不到的」列出来比只列「能做的」更重要。一个工具的失效方式往往是 让人误以为它覆盖了某个范围——持仓分布那一条尤其: 本站宁可显示「需要 API Key」并给你浏览器链接,也不给一个看起来专业的错误名单。