Etherscan 查我的所有 Token Approvals|Approval Checker 完整教程
Etherscan 内置 Token Approval Checker 工具,能列出你钱包给所有合约授权过的 Token 与额度。本文按 6 步教你打开它、读懂它、识别危险授权、决定哪些要立刻撤销。
Etherscan 怎么查我的所有 Token Approvals?直接答:打开 etherscan.io/tokenapprovalchecker → 输入你的钱包地址或连接 MetaMask → Etherscan 自动扫描该地址所有 ERC20 / ERC721 / ERC1155 历史授权 → 按 Token 与 Spender 分组列出当前有效授权与限额 → 对每条授权可一键调用 approve(spender, 0) 撤销。整套流程 30 秒打开,关键点是要分清「无限授权」(unlimited)与「有限额度」——它们的风险等级完全不同。
如果你撤销可疑授权后想把 USDT 暂存到交易所避免再次风险,可顺路准备 币安官网 的实名账号,并用 币安官方App 看 USDT 充币地址。下载入口在 下载页。
什么是 Token Approval
A:ERC20 标准里有一个 approve(spender, amount) 方法——它授权某个第三方地址(spender)从你账户里转走最多 amount 数量的代币。这是 DEX 交易的前置必经步骤——你不能直接让 Uniswap Router 转你账户里的 USDT,必须先 approve 一次给它。
| 概念 | 解释 |
|---|---|
| approve | 你给 spender 一个「最多能从我这转走多少」的额度 |
| transferFrom | spender 后续按这个额度从你账户里实际转 |
| allowance | 当前剩余的可转额度(approve - 已 transferFrom) |
A:核心风险:approve 一次终身有效,直到你主动 set 为 0 或 spender 用完额度。如果合约升级出现漏洞、或者你授权的合约本身是钓鱼合约——授权额度内的资产可被随时转走。
第 1 步:打开 Approval Checker
地址栏手敲 etherscan.io/tokenapprovalchecker,回车。也可以从 etherscan.io 顶部 More → Tools → Token Approvals 进入。
第 2 步:输入地址或连接钱包
页面有两种用法:
| 方式 | 操作 | 隐私 |
|---|---|---|
| 输入地址 | 粘贴 0x 开头 42 位地址 | 不连钱包,只查 |
| 连接 Web3 | 点 Connect to Web3 | 连 MetaMask 后能直接撤销 |
A:只想查不想撤——选输入地址;想查后立刻撤——连钱包。第一次接触建议先用「输入地址」方式纯查看,避免误触发签名。
第 3 步:读懂列表字段
| 列 | 含义 |
|---|---|
| Asset | 哪种 Token(带 logo、符号、合约地址) |
| Type | ERC20 / ERC721 / ERC1155 |
| Approved Spender | 你授权给谁(合约或地址) |
| Allowance | 已授权额度(数字或 Unlimited) |
| Last Updated | 最近一次 approve 的时间 |
| Action | 撤销按钮(连钱包后可用) |
第 4 步:识别 Unlimited Approval
Allowance 列里如果显示「Unlimited」(实际值是 2^256-1,约 1.16e77),说明这是无限授权。
| 风险等级 | Allowance 类型 | 例 |
|---|---|---|
| 低 | 100-1000 USDT 限额 | DEX 一次性兑换 |
| 中 | 10000-50000 USDT | 多次兑换默认 |
| 高 | Unlimited | DEX 默认勾选「Unlimited」 |
| 极高 | NFT setApprovalForAll | NFT 市场对整个 collection 的全权 |
A:Unlimited 不等于会被偷走,但意味着「只要 spender 合约出事,你这个币就出事」——所以原则是用完即撤。
第 5 步:识别危险 Spender
| Spender 类型 | 信任等级 |
|---|---|
| Uniswap V3: Router | 较高(开源、审计、大量用户) |
| Uniswap Universal Router | 较高 |
| 1inch Router | 较高 |
| OpenSea Conduit | 中(NFT 市场标准) |
| 不知名合约 | 低 |
| 钱包地址(EOA) | 极高风险(必为钓鱼) |
A:最重要的红旗:Spender 是 EOA(普通钱包地址)而不是合约——这是 100% 钓鱼。正常 DEX、NFT 市场全是合约,不可能是钱包。
第 6 步:撤销授权
连接 MetaMask 后,点对应行的「Revoke」按钮——
- Etherscan 调起 MetaMask 弹窗
- 弹窗显示:调用代币合约的
approve(spender, 0)方法 - 你确认 Gas(ETH 主网约 0.0005-0.002 ETH)
- 签名
- 等 12 个区块确认(约 2-3 分钟)
- 重新刷新 Approval Checker 页面,该条授权消失或显示 Allowance=0
A:一次撤销 = 一笔交易 = 一次 Gas 花费——批量撤销要一笔笔签。省 Gas 的做法:在 ETH Gas 低谷期(凌晨 UTC 0-6 点)批量做。
ETH 主网撤销 Gas 太贵的替代方案
| 方案 | 成本 | 说明 |
|---|---|---|
| 等 ETH Gas 低谷 | 0.0005 ETH/笔 | 凌晨等 |
| L2(Arbitrum/Optimism) | 0.0001 ETH/笔 | 仅当授权也在 L2 |
| BSC | 0.00005 BNB/笔 | 仅当授权也在 BSC |
| Polygon | 0.001 MATIC/笔 | 极低 |
| Revoke.cash 批量 UI | 同主网 | 仅 UI 更好,Gas 不变 |
注意:每条链的授权各自独立。ETH 主网上的授权要在 ETH 主网撤;BSC 上的要在 BSC 撤。详见 Token approval 分类。
实战:紧急清理可疑授权
| 步骤 | 操作 |
|---|---|
| 1 | 打开 etherscan.io/tokenapprovalchecker |
| 2 | 输入钱包地址(不连接,先查) |
| 3 | 看到任何 Spender 是 EOA → 立即清理 |
| 4 | 看到 Unlimited 给陌生合约 → 立即清理 |
| 5 | 切到「Web3」连 MetaMask |
| 6 | 一笔笔点 Revoke 签名 |
| 7 | 紧急情况:剩余资产先转到新干净钱包 |
A:如果你不确定是否被钓——把代币转到新钱包是「最终保险」——新钱包没有任何历史授权,资产 100% 安全。授权撤销只是清理旧风险面,转走是釜底抽薪。
第 7 步:定期审计建议
| 频率 | 动作 |
|---|---|
| 每月 | 看一遍 Approval Checker,撤超过 30 天没用的 |
| 每季度 | 把 Unlimited 全部 set 回限额 |
| 每年 | 整理钱包,把不活跃账户的资产合并 |
风险提示
撤销授权本身不会丢资产,但撤销时如果不慎签了别的合约调起的钓鱼弹窗(如 Permit、setApprovalForAll),反而授出新风险。一定看清 MetaMask 弹窗里的目标合约——应该是代币合约(如 USDT 合约),不是别的地址。
如果想把链上资产转去交易所暂存,可借助 币安官网 的 USDT 充币地址。
实操核对清单
- [ ] 已打开 etherscan.io/tokenapprovalchecker
- [ ] 已用「输入地址」方式纯查(不连钱包)
- [ ] 已分辨 Unlimited / 限额 / setApprovalForAll
- [ ] 已识别 EOA Spender(钓鱼)
- [ ] 已批量撤销可疑授权
- [ ] 已定 monthly 提醒做下次审计
一站式回顾
A:Etherscan Token Approval Checker 是最权威的「我授权过谁」入口。核心 4 个动作:开 Checker、输地址查、识别 Unlimited 与 EOA、批量 Revoke。核心 1 个心法:用完即撤,不留 Unlimited 给非紧凑使用的合约。
如果想了解 Revoke.cash 这个第三方 UI 工具的批量撤销玩法,可看 Token approval 分类。
常见问题
Approval Checker 能查 BSC、Polygon 上的授权吗?
A:不能。etherscan.io/tokenapprovalchecker 只查 ETH 主网授权。BSC 要用 bscscan.com/tokenapprovalchecker,Polygon 要用 polygonscan.com/tokenapprovalchecker——每条链各自独立。
我能不能在不花 Gas 的情况下「软撤销」授权?
A:不能。撤销授权 = 在链上调用 approve(spender, 0) = 必然花 Gas。链下撤销不存在——授权数据在链上,必须发交易修改。省钱的做法是 batch(一次签多笔)或选低 Gas 时段。
我撤销的授权 spender 又能再让我授权吗?
A:能。撤销只清理「已授权额度」,不阻止未来再授权——下次你在 DEX 兑换时会再弹一次 approve。这是 ERC20 标准的设计。如果想永久阻止,需要用「黑名单 spender」之类的非标准合约。
Approval Checker 显示的 Unlimited 实际是什么数字?
A:2^256 - 1,即 ~1.157920892373162e77。这是 uint256 的最大值,被很多 DEX 默认作为「无限」的实现方式。单笔交易转走不可能超过你账户余额,但理论上额度无限。
我连接钱包查授权会泄漏什么信息?
A:泄漏「你拥有这个地址的私钥」。单纯输入地址不连钱包不会泄漏——但点 Revoke 时连了钱包,Etherscan 知道你是这个地址的所有者(之前是匿名查)。对隐私要求高的可以用「输入地址 + 单独在 MetaMask 里手动撤」的组合。
Permit 签名(EIP-2612)能在 Approval Checker 里看到吗?
A:能但不直接。Permit 是离线签名 + 链上 transferFrom,本身不立即生成 approve 事件——直到 spender 用 Permit 链上调 transferFrom 时才生成 Approval Event。这就是 Permit 钓鱼骗局的隐蔽性来源。详见 Token approval 分类的 Permit 漏洞篇。
撤销 setApprovalForAll 跟撤 approve 一样吗?
A:方法不同但流程一样。ERC20 撤销调 approve(spender, 0);ERC721/ERC1155 撤销调 setApprovalForAll(operator, false)。Etherscan Approval Checker 自动识别 Token 类型并调用对应方法。
文档发布于 2026-05-08,下次复测计划 2026-08-08(约每 90 天回访一次,确认 Etherscan Approval Checker 路径与字段未变)。