# Revoke.cash 查并撤销 ERC20 授权：断开钱包为什么不够？

整理：链小知（AI 辅助）
资料核对日期：2026-10-11
引用地址：https://lianxiaozhi.com/tools/guides/revoke-erc20-approval
难度：入门
核验方式：官方文档整理，未执行真实账户操作

先只读查 spender 与额度，再了解撤销交易的确认与结果复核。本教程未实际执行撤销。

## 使用工具
- [Revoke.cash](https://lianxiaozhi.com/tools/revoke-cash) · [官方入口](https://revoke.cash/)
- [Etherscan](https://lianxiaozhi.com/tools/etherscan) · [官方入口](https://etherscan.io/)

## 前置条件
- 准备完整 owner 地址、EVM 网络、代币合约和目标 spender；本篇处理普通 ERC-20 allowance，Permit/Permit2、NFT 与账户控制权限需另核对。
- 按 2026-10-11 Revoke.cash 网站教程/FAQ 整理。先只读查询；实际撤销需要对应账户的签名权限和该链手续费币。
- 核心查询及逐笔撤销工具免费，链上逐笔撤销仍付 gas；批量服务费用和 Premium 条件按当次页面核对。作者没有连接钱包或广播撤销。

## 1. 先查询公开地址和正确网络

打开 revoke.cash 输入完整公开地址，选择授权发生的网络，等待列表加载完成。同一 0x 地址在不同链上的 allowance 独立，不能用 Ethereum 空列表证明 Base 没有授权。

确认页面地址与网络匹配后筛选 ERC-20。加载超时、网络未支持或报错时记读取失败，不能写“无授权”。查询阶段无需连接钱包，不需签消息。

核对结果：保存地址、网络、查询 URL、时间及读取成功/失败状态。
依据：[Revoke.cash 官方撤销教程](https://revoke.cash/learn/approvals/how-to-revoke-token-approvals)
依据：[Revoke.cash FAQ](https://revoke.cash/learn/faq)

## 2. 锁定完整 token 和 spender

用 Newest to Oldest 找最近授权，或按 approved spender address 搜索。目标行保存代币合约、spender 全地址、额度及可见授权记录；符号和标签只帮助定位。

spender 身份应回查当初应用的官方合约资料。Unlimited 与具体额度分开记，同名代币和多个 spender 分行；没有可靠来源时写未知，不能把标签视作认证。

核对结果：目标由网络、owner、token contract、spender 四项定位，额度有可见值。
依据：[Revoke.cash 官方撤销教程](https://revoke.cash/learn/approvals/how-to-revoke-token-approvals)
依据：[ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)

## 3. 用只读 allowance 复核额度

在对应链浏览器的代币合约 Read Contract 找 allowance，输入 owner 和 spender 全地址。若是代理代币，在代币代理地址 Read as Proxy 读取，不转到实现地址读独立状态。

返回零表示该目标在读取时没有剩余额度；非零原始整数按已核明 decimals 理解。ABI 缺失、方法不存在或 RPC 失败保留未知，不能靠写入合约“修复查询”。

核对结果：保存两个参数、返回值、时间和读取对象；与目标列表差异明确记录。
依据：[ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)
依据：[Etherscan 只读合约与写入边界](https://info.etherscan.com/how-to-safely-interact-with-smart-contracts-on-the-explorer/)
依据：[Etherscan 代理合约读取范围](https://info.etherscan.com/what-is-proxy-contract/)

## 4. 理解撤销请求再考虑执行

读者实际决定执行时，连接控制该 owner 的钱包，在目标行点击 Revoke。核对网络、发起账户、代币合约、spender、网络费，以及请求是 approve(spender, 0) 的意图。手续费不足时停为待执行。

钱包可能写 give permission 或 approve，因为授权和撤销使用相同函数，ERC-20 撤销的区别是额度为零。出现非零额度、不同 spender、转账意图或密钥输入时拒绝。本篇作者没有签名或提交。

核对结果：目标地址与额度零均核明才能提交；作者执行状态仍为未执行。
依据：[Revoke.cash 官方撤销教程](https://revoke.cash/learn/approvals/how-to-revoke-token-approvals)
依据：[Revoke.cash FAQ](https://revoke.cash/learn/faq)
依据：[ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)

## 5. 用成功回执和新额度验收

实际广播后保存撤销哈希，等待对应浏览器成功回执；再刷新同链同地址列表或读取 allowance(owner, spender)。Pending、失败或节点数据未刷新时保留未完成。

只有交易成功且目标额度确认为零才写“已撤销”。已是零但没有新交易时写“当前无剩余额度”；列表行消失或钱包关闭不能替代双重证据。结果不一致时保留返回值和时间，重新只读核对。

核对结果：成功哈希与新 allowance=0 均保存；未广播保持待执行，不伪造实操回执。
依据：[Revoke.cash 官方撤销教程](https://revoke.cash/learn/approvals/how-to-revoke-token-approvals)
依据：[Revoke.cash FAQ](https://revoke.cash/learn/faq)
依据：[ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)

## 6. 界定撤销能解决的问题

Disconnect 只改变应用连接，链上 allowance 可能仍有效；已转走资产不会因撤销追回。补入手续费币立即被转走时，FAQ 提醒可能涉及密钥泄露/sweeper，不能反复补 gas 当作普通授权问题。

保存这一项授权的前后额度、时间与费用。再次使用应用可能需重新授权；本项归零不代表所有链、Permit 类权限或钱包控制问题都已解决，也不等于资产安全验收。

核对结果：结论只覆盖已核对的链、代币与 spender，密钥或其他权限另列待处理。
依据：[Revoke.cash FAQ](https://revoke.cash/learn/faq)
依据：[ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)

## 常见错误
- 空列表、取消请求与断开连接不是撤销回执。
- Approve 文字需结合额度零核对，spender、owner、token 不可混淆。
- 交易成功和新额度需双重核对；单项证据只描述单项状态。
- 密钥泄露、Permit/Permit2 与已失窃资产超出普通 ERC-20 撤销范围。

## 完成检查
- 保存查询网络、owner、token、spender 与当前额度，读取失败不当无授权。
- 实际成功哈希与新 allowance=0 均可复核，才说本项已撤销；作者 documentation/未执行。
- 费用与控制边界明确，未扩大为所有权限或资产安全验收。

## 相关知识

## 官方依据
- [Revoke.cash 官方撤销教程](https://revoke.cash/learn/approvals/how-to-revoke-token-approvals)
- [Revoke.cash FAQ](https://revoke.cash/learn/faq)
- [Etherscan 只读合约与写入边界](https://info.etherscan.com/how-to-safely-interact-with-smart-contracts-on-the-explorer/)
- [Etherscan 代理合约读取范围](https://info.etherscan.com/what-is-proxy-contract/)
- [ERC-20 balanceOf、allowance 与 approve](https://eips.ethereum.org/EIPS/eip-20)
