你可以在 MetaMask 上 revoke token permissions 吗?
MetaMask 账户授予的每一项权限都可以被移除。具体方法取决于权限类型。
MetaMask 的帮助中心区分了断开网站连接和 revoke 授权。断开连接会阻止网站查看你的地址和余额。你在该处签署的任何 token 授权在链上依然保持激活状态,并且仍然可以转移你的 token。
两项较新的权限也可以授予 dapp 对 token 的持续访问权限。自 Ethereum 的 Pectra upgrade 以来,MetaMask 可以使用 EIP-7702 将普通账户指向其自己的智能合约。此智能账户状态对新用户默认开启。
MetaMask 也已开始支持 ERC-7715 高级权限,它允许 dapp 按照时间表花费限额的 token,而无需每次都请求签名。这两种权限类型都可以在钱包内关闭。
四种权限类型及各自的控制内容
每种权限的存储方式都不同,这决定了你在何处移除它。
- 网站连接:允许网站查看你的公开地址、token 余额与活动,并发送交易请求以供批准。它本身无法转移资金。连接保存在 MetaMask 的本地,移除无需任何费用。
- Token spending cap(授权或额度):token 合约上的链上记录,授权特定的 spender(你批准的合约地址)从你的钱包中转移最多设定金额的 token。Dapp 通常会请求无限额度。MetaMask 警告称,无限 spending cap 是危险的,因为遭到黑客攻击或欺诈的 dapp 可以抽空你该 token 的全部余额。NFT 市场使用相关权限 setApprovalForAll,涵盖集合中的每一个 token。
- Permit 和 Permit2 签名:免 gas 签名,在合约随后提交时授予 spending cap。EIP-2612 Permit 适用于内置该功能的 token。Uniswap 的 Permit2 合约将此方法扩展到任何 ERC-20 token,前提是你批准了 Permit2 本身。提交之前,这两种签名都不会显示在链上。
- 智能账户委托与高级权限:EIP-7702 委托将你的账户指向 MetaMask 的 Delegator 合约,从而实现交易批处理和赞助 gas。ERC-7715 高级权限构建在该智能账户之上,旨在授予 dapp 有限的、有时间限制的 token 访问权限,例如为订阅每天支付 10 USDC。每种权限都需要单独的 revoke 步骤。

如何在 MetaMask 上 revoke token permissions
四种方法涵盖了所有权限类型。我们在每次会话后使用第一种方法,对于任何涉及资金的操作则使用第二或第三种方法。
1. 在 MetaMask 内断开网站连接
如果网站仅连接到你的钱包且从未请求 token 授权,断开连接就足够了。这也是访问不受信任的页面后的第一步。
从钱包中移除网站的连接:
- 打开 Dapp 连接:在 MetaMask 扩展程序中,点击账户视图右上角的菜单并选择“Dapp 连接”。在移动端,在应用内浏览器中打开网站,然后点击右上角的账户图标。
- 选择网站:选择该网站,然后点击扩展程序上的“断开连接”或移动端上的“全部断开连接”,以从该网站移除你的账户。
- 一次性清除所有内容:前往“设置”,然后是“安全与隐私”,再到“清除隐私数据”。这只需轻轻一按,即可移除当前所选账户的所有网站连接。
断开连接是免费且即时的,因为它不会向区块链写入任何内容。它也不会在链上 revoke 任何内容。如果你在该网站上签署了授权,请继续下一步。

2. 在 MetaMask Portfolio 中撤销代币授权
MetaMask Portfolio 是一个独立的网页仪表盘,内含 MetaMask 的授权管理器。它支持在 Ethereum Mainnet、Polygon、BNB Chain、Optimism 和 Base 上列出并撤销代币授权。
从 MetaMask Portfolio 中撤销授权:
- 打开 Portfolio:访问 portfolio.metamask.io,连接 MetaMask 并停留在“概述”(Overview)选项卡。
- 切换至代币授权(Spending Caps):点击“代币授权”选项卡以查看已连接账户上的有效授权,并按代币和授权对象进行分类。
- 撤销并确认:点击授权旁边的“撤销”(Revoke),然后在 MetaMask 中进行确认。每次撤销都需要一笔链上交易以及网络 gas 费来处理。
Portfolio 适合希望留在 MetaMask 内部且仅使用其支持的五个网络的 usuário。对于 Arbitrum、Avalanche、Linea 或其他较小的链,请选择以下两个选项之一。

3. 使用 Revoke.cash 撤销授权
MetaMask 帮助中心将 Revoke.cash 列为第三方工具的首选。我们将其用于在多个链上活跃的地址。除了 ERC-20 授权外,该仪表盘还会显示 NFT 授权、Permit2 授权以及 EIP-7702 委托。漏洞检查器会将您的授权与已遭黑客攻击的合约列表进行比对。
审计并撤销 100 多个网络上的授权:
- 加载您的地址:打开 Revoke.cash 并连接 MetaMask,或者将您的地址或 ENS 名称粘贴到搜索栏中。ENS 名称是以 .eth 结尾的可读名称。选择要检查的网络。
- 排序和筛选:按最新时间排序以查找最近的恶意授权,或筛选无限期授权。如果安全警报识别出了某个合约,请按授权对象(spender)搜索。
- 撤销或批量撤销:点击授权旁边的“撤销”,然后在 MetaMask 中确认。若要移除多个授权,请选中它们并使用批量撤销功能。该功能利用 EIP-7702 智能账户将数十次撤销合并为一笔交易。
核心仪表盘是免费的,单个撤销操作仅需支付 gas 费。在免费层级下,Revoke.cash 收取 每批次 1.50 美元 的费用。高级版(Premium)售价为每年 99 美元,可免除批量费用并添加多链视图。终极版(Ultimate)售价为每年 199 美元,可持续监控授权并自动撤销风险授权,同时包含少量的 gas 预算。
其免费的浏览器扩展程序支持所有 EVM 网络,并在您签署可疑的授权或 Permit 之前发出警告。
4. 使用区块浏览器的代币授权检查器
大多数主流 EVM 浏览器都内置了授权检查器。MetaMask 将用户引导至 Etherscan、BscScan 和 Polygonscan,您可以在用于读取交易的同一网站上验证授权对象的合约。
从区块浏览器中撤销授权:
- 连接至 Web3:打开您的网络浏览器的代币授权检查器,点击“连接至 Web3”(Connect to Web3)并选择 MetaMask。
- 审查授权对象:检查器会列出 ERC-20、ERC-721 和 ERC-1155 授权,其中包含已验证的授权对象合约名称。对于任何您不认识的授权对象,请打开其合约页面。
- 撤销并支付 gas 费:点击条目旁边的“撤销”。在 MetaMask 的确认窗口中核对代币和授权对象,然后确认交易。
每个浏览器的检查器只覆盖一条链。因此,审计一个在六个网络上使用过的钱包需要分别访问六次,所以我们默认使用多链工具来进行全面审查。
如何撤销智能账户委托和高级权限
新 MetaMask 用户默认启用智能账户,因此许多用户在未亲自设置的情况下现在也持有一份 EIP-7702 委托。对 MetaMask 经过审计的 Delegator 合约的委托是安全的。然而,批量处理允许一笔交易同时转移多项资产,从而增加了钓鱼网站通过单个签名所能进行的操作。
在 Pectra 升级后的几个月里,Scam Sniffer 记录了 两起大型 EIP-7702 批量钓鱼案例,总损失达 254 万美元。
将智能账户切换回标准账户:
- 打开账户详情:点击 MetaMask 顶部的账户选择器,按账户旁边的三个点并选择“账户详情”,然后选择“智能账户”。
- 关闭每个网络:在要恢复的每个网络上关闭智能账户状态。此设置特定于网络,每次切换都需要一笔带有少量 gas 费用的交易。
- 确认恢复:在 MetaMask 中审查并确认。你的地址、资金和助记词保持不变,因为该账户自始至终都是 EOA(由普通私钥控制的账户)。
Revoke.cash 在其“Delegations”选项卡中显示活动的授权,但无法取消它们。MetaMask 不允许外部 dapps 设置或撤销 EIP-7702 授权,因此钱包的切换开关成为唯一的移除方法。
要取消 ERC-7715 高级权限,请在 MetaMask 中打开Dapp 连接并撤销活动权限。许多权限都有到期日并会自动结束。
如果你已禁用智能账户,MetaMask 会要求你重新启用它,然后 dapp 才能请求高级权限。该提示表明 dapp 希望获得持续的访问权限。

如何处理 Permit 和 Permit2 签名
没有任何仪表板可以显示你签署了哪些 Permit 签名,因为它们只有在接收方提交时才会出现在链上。钱包盗贼偏爱这个盲点。Scam Sniffer 最新的年度报告将大额损失的 38% 归咎于 Permit 和 Permit2 签名,其中包括当年最大的一笔盗窃案:价值 650 万美元的 stETH 和 wrapped Bitcoin。
如果你怀疑自己在钓鱼网站上签署了 Permit,请首先使用 Revoke.cash 或 Portfolio 撤销你对 Permit2 合约的长期授权。同时撤销对 OpenSea 或 Blur 等 NFT 市场合约的授权。
接下来,打开 Revoke.cash 账户页面上的“Signatures”选项卡,以取消你所持代币的潜在 Permit 签名。Revoke.cash 声明此页面只能列出可能存在签名的代币。只有在你确信自己签署过某些内容时,才将 gas 花费在取消上。
如果资金已经在流出,并且每一个 ETH 充值都在几秒钟内消失,说明你的助记词已被盗。撤销也无济于事。将剩余的资产转移到一个新钱包中,并废弃旧钱包。
在批准 Permit2 时,将无限制的默认值替换为消费额度上限。MetaMask 允许你在签名之前在确认屏幕上编辑额度上限,从而限制后续签名可以盗取的金额。

如何在 Solana 上撤销 token permissions
EVM 撤销工具在 Solana 上不起作用,因为其权限运作方式不同。每个代币都位于其自己的代币账户中,该账户的所有者可以指定单个代理来转移最多设定金额。只有代币账户所有者才能签署 Token Program 的Revoke instruction,该指令会清除代理并将授权金额重置为零。
大多数 Solana DeFi 操作不会创建持久的代理。盗贼转而使用会悄悄批准代理的虚假申领页面。
MetaMask 的 Solana 账户缺少专用的代理屏幕,因此你需要连接到 Solana 撤销工具。Phantom 的帮助中心推荐使用 Famous Fox Federation Revoker。Sol Incinerator 的撤销工具还会扫描 SPL Token 和 Token-2022 账户。
使用撤销工具清除 Solana 代理:
- 连接 Solana 钱包:打开撤销工具并连接 Phantom、Solflare 或其他受支持的 Solana 钱包。让它扫描你的代币账户以查找活动代理。
- 检查批准的地址:审查每个代币名称、铸造地址和代理。保留开放市场挂单或借贷头寸所需的任何代理。
- 撤销并签名:选择要移除的代理并签署交易。你的代币会留在你的钱包中,并且你只需支付标准的 Solana 网络费用。
在 Phantom 或 MetaMask 中断开 Solana 应用连接会停止新的签名请求,但会使链上代理保持完好。同样的区别也适用于以太坊。我们的MetaMask 与 Phantom 对比解释了这两个钱包如何处理 Solana。

为什么撤销权限依然重要
批准和签名钓鱼在去年大幅下降,但损失仍然集中在此处介绍的权限中。Scam Sniffer 追踪到 2025 年通过钱包盗贼从 106,106 名受害者那里盗取了 8385 万美元。这比前一年的 4.94 亿美元下降了 83%。
损失跟随市场活动而变化,在以太坊迎来今年最大涨幅的第三季度达到了 3100 万美元。所有超过 100 万美元的 11 起案例都涉及受害者批准的签名。其中包括 Permits、approve 或 increaseApproval 调用、Uniswap V3 头寸 NFT 上的 setApprovalForAll 权限以及 EIP-7702 批次。
对合法协议的授权同样蕴含持久风险。如果某个协议在两年后遭到攻击或其前端被黑,两年前授予的授权依然有效。攻击者无需你的 private key 即可使用该授权。正如 Revoke.cash 所解释的那样,硬件钱包在此无法提供任何保护,因为已签署的授权已经批准了资金支出。事后定期 revoke 是唯一行之有效的防御手段。
我们将对去中心化交易所、跨链桥和 NFT 市场的授权视为临时授权。在使用任何领先的去中心化交易所或跨链桥后,我们在同一会话中 revoke 该授权。下次需要时,我们仅批准确切的金额。

常见的 MetaMask revoke 问题与解决方法
大多数失败或令人困惑的 revoke 问题都源于三个原因。在认定是钱包出问题之前,请按顺序进行排查。
1. 授权未显示
请先检查权限类型和网络:
- 确认你授予的内容:网站连接不会显示在支出限额列表中。请改为检查 Dapp 连接。如果你启用了智能账户,请在“授权”(Delegations)标签页中查看。
- 匹配网络:授权在每条链上是分别记录的。对于在 Arbitrum 上签署的授权,请将 MetaMask 和 revoke 工具同时切换到 Arbitrum。如果缺少该网络,请参考我们的在 MetaMask 中添加网络的指南。
- 尝试第二个工具:Portfolio 仅索引五个网络,而每个区块浏览器只索引自身的数据。如果这两个地方都找不到该授权,请将你的地址加载到 Revoke.cash 中并检查同一条链。
2. Revoke 交易失败
排除 gas 和挂起的交易:
- 充值原生代币:链上 revoke 需要使用该网络的原生代币来支付 gas,例如 ETH、POL、BNB 或 SOL。在开始大批量操作之前,请在我们的Ethereum gas 追踪器上查看当前费用。
- 清除卡住的交易:nonce 较低的挂起交易会阻塞其后面的交易。nonce 是 MetaMask 分配给每笔交易的序列号。在重试之前,请在“活动”(Activity)标签页中加速或取消挂起交易。如果确认窗口返回错误,请查看我们针对 MetaMask 中的内部 JSON-RPC 错误的修复方案。
- 等待 RPC 恢复:公共 RPC 端点是 MetaMask 用于连接链的服务器。在网络拥堵期间,它们可能会丢弃较小网络上的请求。请在几分钟后重试,或为该网络切换到其他 RPC。
3. 权限看起来仍然处于活动状态
区分陈旧数据与真实问题:
- 刷新源数据:revoke 工具会对结果进行缓存。一旦 revoke 确认,请重新加载并重新扫描,然后在区块浏览器上检查交易哈希以验证是否成功。
- 检查是否被重新授权:当你返回时,某些 dapp 会自动请求另一次授权。如果授权重新出现,则意味着该网站再次请求了授权而你进行了签署。
- 检查是否存在自动清空机器人(sweeper bot):如果为支付 gas 而存入的 ETH 立即消失,说明你的 private key 已泄露,且 revoke 也无法挽回。请将你能转移的所有资产转移到一个不重复使用助记词的新钱包中。
最后总结
现在可以移除 MetaMask 账户上的所有权限。Portfolio 处理五个网络上的支出限额,而 Revoke.cash 涵盖其余权限类型,包括 Permit2 和授权。智能账户授权和 ERC-7715 权限可在钱包内部关闭。
设置一个月度提醒,用于检查 Revoke.cash 或 Portfolio 并移除未使用的授权。对于你保留的授权,请选择支出限额而不是无限访问权限。这些习惯结合起来,可以消除钱包盗窃者所依赖的大部分漏洞。






