MetaMask 怎么撤销已经给出的 Token 授权
MetaMask 怎么撤销 Token 授权?直接答:访问 revoke.cash→Connect Wallet→选要查的网络→看授权列表→逐个点 Revoke→MetaMask 弹窗确认(每次需 Gas)。本文按真实撤销流程拆细。
MetaMask 怎么撤销已经给出的 Token 授权?直接答:访问 revoke.cash 官方网站 → 点 Connect Wallet 选 MetaMask → 在网络下拉切到要检查的链(ETH / BSC / Polygon 等)→ 看到该地址给所有合约的授权列表 → 逐个点 Revoke 按钮 → MetaMask 弹窗确认(每次需 Gas)。Token approval 的本质是「让某合约能在你不签名的情况下转走你的代币」——一旦泄露或合约被攻陷,授权额度内的资产可被直接转走。每 3-6 月做一次清理是安全卫生。
资产管理路径打通后可用 币安官网 配合 币安官方App。下载入口对照见 下载页。
Token Approval 的本质
A:ERC-20 标准下转账要么用户自签,要么用户预先 approve 给某地址——后者就是 DEX / DeFi 工作机制。
| 类型 | 风险 |
|---|---|
| approve 给单个金额 | 仅该金额 |
| approve 给最大值(无限) | 全部资产 |
| setApprovalForAll(NFT) | 整个 collection |
第 1 步:访问 revoke.cash
A:revoke.cash 是 Kalis Coin 开发的开源工具——支持 ETH / BSC / Polygon / Arbitrum / Optimism / Base / 等 50+ 链。
| 真域名 | 假域名 |
|---|---|
| revoke.cash | revoke.io / revoke.app(钓鱼) |
第 2 步:连接钱包
| 步骤 | 操作 |
|---|---|
| 1 | 右上 Connect Wallet |
| 2 | 选 MetaMask |
| 3 | 弹窗 Connect |
| 4 | 完成 |
第 3 步:切换网络
每条链的授权独立——必须逐链检查:
| 链 | 检查频率 |
|---|---|
| ETH 主网 | 季度 |
| BSC | 季度 |
| Polygon | 季度 |
| Arbitrum | 季度 |
| 其他 L2 | 半年 |
第 4 步:看授权列表
revoke.cash 显示:
| 列 | 内容 |
|---|---|
| Token | 代币名 |
| Spender | 被授权的合约地址 |
| Allowance | 授权金额 |
| Last Updated | 授权时间 |
第 5 步:识别可疑授权
| 类型 | 处理 |
|---|---|
| 无限授权(Unlimited) | 优先撤销 |
| 不再用的 DEX | 撤销 |
| 多年前的授权 | 撤销 |
| 当前正在用 | 保留 |
A:Unlimited 授权是最大风险——任何时候合约被攻陷或被钓鱼都能转走全部代币。
第 6 步:逐个 Revoke
| 步骤 | 操作 |
|---|---|
| 1 | 点 Revoke 按钮 |
| 2 | MetaMask 弹窗 |
| 3 | 看 Gas 估算 |
| 4 | Confirm |
| 5 | 等链上确认 |
A:每次 Revoke 是一笔链上交易——按 Gas 价格 0.1-5 USD 一笔——批量撤销时 Gas 累加。
第 7 步:批量撤销
A:revoke.cash Pro(付费版)支持批量 Revoke——一笔交易撤多个授权——节省 Gas。
参考 DApp 连接 分类。
不同 Approve 类型
ERC-20 approve
| 函数 | 含义 |
|---|---|
| approve(spender, amount) | 授权额度 |
| approve(spender, MAX_INT) | 无限授权(256 bit 最大值) |
ERC-721 / 1155
| 函数 | 含义 |
|---|---|
| approve(spender, tokenId) | 授权单个 NFT |
| setApprovalForAll(operator, true) | 授权整个 collection |
A:setApprovalForAll 是 NFT 钓鱼的最大手段——OpenSea 用此机制是为了便利——但被钓鱼后整个 collection 失守。
真实使用案例
案例 1:清理半年没用的授权
用户半年前用过 Sushi、Curve、1inch——revoke.cash 显示 5 个无限授权——逐个 Revoke 共付 8 USD Gas。
案例 2:发现可疑合约
A:用户撸毛时给某不知名 DApp 授权——后来该 DApp 被发现是钓鱼——立即 Revoke 截断风险。
案例 3:钓鱼后立即应急
| 操作 | 时间 |
|---|---|
| 发现钓鱼 | t=0 |
| Revoke 受影响代币 | t<5 分钟 |
| 转出剩余资产 | t<10 分钟 |
A:速度是关键——攻击者通常用脚本扫描并立即调用 transferFrom——慢一秒就 GG。
真实失败案例
案例 1:以为「断开连接」就安全
用户从 DApp 断开 MetaMask 连接——连接断开但授权还在——攻击者无须连接就能调用 transferFrom。
A:断开 ≠ 撤销——必须主动 Revoke。
案例 2:忽略多链
用户只检查了 ETH 主网——BSC / Polygon 上的授权没动——这些链上的资产仍暴露。
案例 3:Approval 钓鱼
某仿冒 Uniswap 网站让用户 Approve 一个看似 USDC 实际是恶意合约的代币——Approve 后被立即转走。
安全注意事项
第 1 步:日常 Approve 限金额
A:首次 Swap 时 MetaMask 弹窗显示「Spending Cap」——改成精确金额而非 Max——下次 Swap 重新 Approve。
第 2 步:每 3-6 月清理
设日历提醒——季度做一次 revoke.cash 清理。
第 3 步:警惕假 revoke
只用 revoke.cash 域名——钓鱼站可能让你「Revoke」假代币然后骗你 Approve 真代币。
实操核对清单
- [ ] revoke.cash 官方域名
- [ ] 逐链检查(ETH / BSC / Polygon / L2)
- [ ] 优先撤销 Unlimited 授权
- [ ] setApprovalForAll 重点关注
- [ ] 钓鱼后立即 Revoke 受影响代币
- [ ] 季度清理已设提醒
FAQ
Q:撤销 Approval 真的需要付 Gas 吗? A:是。Revoke 是链上交易——必须付 Gas。但 L2 上 Gas 极低(0.1-1 USD)。
Q:MetaMask 内有没有内置撤销功能? A:MetaMask 11.x 有「Token Allowance」入口可查看与撤销——但 revoke.cash 显示更全 + 多链支持更好。
Q:Approval 真的是无限有效吗? A:是。除非 Spender 合约自我销毁或你主动 Revoke——否则一直有效。
Q:每次 Swap 都要重新 Approve 麻烦吗? A:会麻烦——但是降低风险的代价。可改成「足够多次 Swap 的金额」而非 Unlimited。
Q:撤销后再用要重 Approve 吗? A:是。撤销 = 授权额度归零。下次需重新 Approve。
Q:能不能批量撤销所有授权? A:revoke.cash Pro 付费版支持。免费版只能逐个。批量节省 Gas + 时间。
Q:本站对授权撤销的核心建议? A:本站建议Approve 时限金额而非 Unlimited + 季度清理 + 钓鱼后第一时间 Revoke + 多链都查 + 警惕假 revoke 站。