每个新代币都是一场赌博——不是因为市场波动,而是因为你无法分辨合约背后到底是真正的项目还是精心包装的陷阱。代币安全检查的全部意义在于:用公开可见的链上数据,在购买前排除掉大部分风险。
这份检查清单覆盖 6 个关键维度。每个步骤都使用免费的公开工具。
核心要点: 购买代币前,检查 6 件事——(1)合约源码已验证、(2)流动性已锁定、(3)持有者足够分散、(4)无隐藏铸币功能、(5)买卖税合理、(6)交易记录中买卖正常。任何一项不合格,不要买。
第一步:验证合约源码
这是最重要的检查。源码验证意味着合约的 Solidity 代码已发布在区块链浏览器上,你可以逐行阅读它做了什么。
检查要点
| 检查项 | 安全 | 危险 |
|---|---|---|
| 源码状态 | 已验证(绿色对勾) | 未验证(仅字节码) |
| 标准 | ERC-20 标准实现 | 自定义 transfer 逻辑带额外条件 |
| 代理模式 | 透明的升级机制 | 隐藏的可替换逻辑地址 |
| 管理员权限 | 有限或已放弃 | 管理员可随时铸币、暂停、拉黑 |
如何检查
- 从项目官方渠道获取合约地址(不要从评论区或私信获取)
- 在 Etherscan 搜索该地址,确认源码验证标记
- 阅读 Contract 页——重点关注
transfer()、transferFrom()和approve()函数 - 检查管理员可调用的函数:
mint()、pause()、setBlacklist()、setFee()
未验证源码的合约一律不碰。你在向无法阅读的代码转账。
红旗:隐藏的代理合约
有些代币使用代理模式,真正的逻辑在另一个合约里,管理员可以随时替换。这意味着你今天验证过的安全合约明天可能被换成恶意的。检查合约是否包含 delegatecall 到可升级的实现地址——如果该地址由 EOA(外部账户)控制,管理员可以随时改写规则。
第二步:检查流动性锁定状态
流动性是让你能够买卖代币的前提。如果开发者持有流动性池代币(LP Token),他们可以随时撤出——这就是 rug pull(卷款跑路)。
检查要点
- 已锁定: LP 代币被时间锁合约持有至少 6 个月
- 已销毁: LP 代币发送到死地址(0x000…dEaD),永久不可撤回
- 未锁定: LP 代币由部署者或小团体持有——rug pull 风险极高
如何检查
- 在区块链浏览器上找到该代币的流动性池合约
- 找到 LP 代币合约地址
- 查看 LP 代币的前几大持有者
- 如果部署者地址持有 LP 代币且没有锁定记录,流动性未锁定
锁定不到 3 个月是警示。锁定不到 1 周等于没锁。
第三步:分析持有者分布
即使源码验证通过、流动性已锁定,如果代币集中在少数地址手中,仍然极度危险。一个地址控制 30% 以上的供应量,就能瞬间砸盘。
检查要点
| 指标 | 健康 | 可疑 |
|---|---|---|
| 前十名持有者(排除 LP/交易所) | < 25% | > 40% |
| 持有者总数 | 1,000+ | < 100 |
| 部署者余额 | < 5%(团队代币已锁仓) | > 20% |
| 知名交易所在前十名中 | 有(说明有真实交易量) | 无(无真实交易量) |
如何检查
- 进入 Etherscan 代币页面 → Token Holders 标签
- 识别 LP 池地址和交易所地址——这些是合理的大户
- 排除上述地址后查看前十名持有者
- 如果不明地址持有大量代币,用交易记录追溯——检查他们在上线前是否从部署者处获得代币(内部分配,准备砸盘)
第四步:检查铸币功能
铸币函数允许合约管理员凭空创造新代币。如果存在且无上限,供应量实际上无限——管理员可以铸造海量代币然后抛售。
如何检查
- 阅读 Etherscan 上的已验证合约(Contract → Read Contract)
- 对比
maxSupply和totalSupply - 在源码中搜索
mint(或_mint( - 检查谁可以调用铸币函数——如果仅限
onlyOwner,管理员拥有无限通胀权力
合法的固定供应量代币不应有铸币功能,或者该功能已被永久禁用。
第五步:验证买卖税
很多 DeFi 代币实施交易税——每笔买卖扣除一定比例。合法项目用这些税来做流动性、反射奖励或国库。但税收也可以被武器化。
税率风险等级
| 税率 | 评估 |
|---|---|
| 0–5% | DeFi 代币正常范围 |
| 5–15% | 可接受,需有明确用途说明 |
| 15–25% | 偏高,需验证用途 |
| 25–50% | 极高,很可能不可持续 |
| 50–100% | 实质上是蜜罐——你无法盈利卖出 |
如何检查
- 阅读已验证合约中的费用逻辑
- 查找
setFee()、setTaxRate()等函数——检查最大可设置值 - 如果管理员可以将费率随时改为 100%,代币可能瞬间变成蜜罐
- 用工具模拟一次卖出交易,查看实际到手金额
第六步:查看交易历史
最简单的检查:人们是否真的能卖出?查看代币最近交易记录。
- 买卖都有: 健康——市场正常运转
- 只有买入没有卖出: 重大红旗——很可能是蜜罐,卖出被合约拦截
- 卖出但到手金额极小: 隐藏的高税
- 同一地址反复大额卖出: 内幕抛售
30 秒速查清单
购买前确认:
- 合约源码已在 Etherscan 验证
- 流动性已锁定至少 6 个月(或已销毁)
- 无活跃的铸币功能(或管理员权限已放弃)
- 管理员无法将税率设为 10% 以上
- 管理员无法暂停交易或拉黑地址
- 前十名持有者(排除 LP/交易所)占比 < 30%
- 交易记录中买入和卖出都正常出现
- 部署者地址无诈骗历史
使用代币风险 API
对于需要在应用中集成安全检查的开发者,Onchain Diary 提供代币风险 API,返回一个代币地址的综合安全报告,涵盖合约安全(蜜罐检测、源码验证、代理检测)、交易安全(买卖税、交易冷却、滑点限制)、持有者分析和市场数据。详见代币安全 API 指南。
链上验证无法发现的风险
没有任何清单是万无一失的。即使所有链上检查都通过,以下风险仍然存在:
- 链下欺诈: 社交媒体炒作、虚假合作、社群诈骗不会留下链上痕迹
- 延迟型 rug pull: 合约可以安全运行数月,然后在流动性高峰时执行未锁定功能
- 跨链复杂性: 通过桥跨链的代币在不同链上可能有不同的合约行为
- MEV 利用: 即使代币本身合法,交易仍可能被三明治攻击
链上验证要和基本常识结合使用:如果项目承诺保证收益、创始人匿名且无业绩记录、社群纯靠炒作驱动,那合约再干净也是个骗局。