摘要:钱包确认页里的 Balance changes 或 Simulate,是发送前的一次预演,不等于已经到账。结合 MetaMask 帮助中心和 ethereum.org 中文文档,看余额变化、Added protection 和 eth_call 各在说什么;标准模拟不保证和链上一致,勾选保护后网络费可能更高。

你在钱包确认页上,有时会看到 Balance changes(余额变化)。有的钱包把这一步写成 Simulate 或模拟。它是发送前的一次预演,用来估计这笔交易可能带来的余额变化,并不等于链上已经成交。站内 授权额度是什么 讲的是 Approve 点下去会发生什么;Max fee per gas 是什么 讲的是费用栏怎么看。本篇只把模拟这一栏看清楚:它预告什么、和真正上链差在哪,以及开启 Added protection(附加保护)时,网络费为什么会变高。

一、帮助中心怎么写,确认页样例里看哪几栏

MetaMask 帮助中心「What are transaction simulations?」 开篇写:当你准备交易时,MetaMask 会尝试预测账户的预计余额变化,让你更好理解即将提交的交易结果。你可能会看到预览,例如会收到多少 ETH,或哪些代币会移动。同一页把交易模拟定义成对这笔交易的一次试运行(test run);这类标准模拟是额外的安全功能,并且默认开启。本场打开的是英文页,界面文案以你当时的语言设置为准。

同一页里放了一张确认页样例,标题是 Transaction request。本场打开时可以看到这些字段(这些是帮助中心样例上的数字和地址,不是你钱包里的报价,会随页面改版和实际交易而变):

  • Balance changes / You receive:+ 0.28 ETH,下方写着 $600.32。
  • Added protection:标记为 OPTIONAL,样例里勾选了。说明写的是你正在与未知地址交互,这有助于防止恶意交易。
  • Network:Ethereum;Request from:newdapp121.xyz;Interacting with:0x23421...3Y812。
  • Network fee:$8.56,并注明 Includes $6.21 for added protection;Speed 为 Market < 30 sec。

先抓住两件事。这一栏的余额变化是预演结果,还没上链;样例里的 0.28 ETH 和 $8.56 只用来对照字段,不能拿去当自己的到账金额或手续费。费用栏怎么看,见 Max fee per gas 是什么,这里不重写。

交易模拟是什么:钱包里 Simulate 一眼看懂-玩转加密货币
图1:support.metamask.io 帮助中心「What are transaction simulations?」:开篇写准备交易时会尝试预测预计余额变化,例如会收到多少 ETH 或哪些代币会移动。下方确认页样例标题为 Transaction request;Balance changes 中 You receive 为 + 0.28 ETH、$600.32;Added protection 为 OPTIONAL 且已勾选,并提示正在与未知地址交互;Network 为 Ethereum,Request from 为 newdapp121.xyz,Interacting with 为 0x23421...3Y812;Network fee 为 $8.56,并写 Includes $6.21 for added protection;Speed 为 Market < 30 sec。页底写 A transaction simulation is a test run of your transaction,标准模拟是额外安全功能且默认开启。界面英文,2026-11-12 实拍,样例数字和文案会变动

二、要先打开基础功能,链上模拟也只在部分网络

同一页的 Tip 写:要让这个功能生效,须在 Settings > Privacy 里开启 Basic Functionality(基础功能)。如果你是用 Google、Apple 或 Telegram 注册的,这项会一直开着,并且关不掉。页里接着说明,目前几乎所有交易模拟都只在链下进行;只在链下模拟时,可能碰上更复杂的钓鱼手法(该页称为 red-pill attacks)。帮助中心的写法是:要想让模拟真正有用,必须在链上强制执行(enforced onchain)。扩展里的 MetaMask 智能账户默认支持这种附加保护。文档改写后会变,以你当时打开的页面为准。

「Networks supported for onchain simulations」这一框,本场打开时列出的是 Ethereum、Optimism、BNB、Polygon、Monad、HyperEVM、Sei、Tempo、MegaETH、Robinhood、Arc、Base、Arbitrum、Avalanche 和 Linea。这是帮助中心当天的名单,之后增删都以页面为准。不在名单上的网络,确认页里可能只有普通的链下预演,或暂时看不到这一栏。

交易模拟是什么:钱包里 Simulate 一眼看懂-玩转加密货币
图2:support.metamask.io 帮助中心同一页 Tip:须在 Settings > Privacy 开启 Basic Functionality,该功能才能工作;若使用 Google、Apple 或 Telegram 注册,则始终开启且无法关闭。正文写:当模拟仅在链下进行时(目前几乎所有交易模拟都是如此),它们容易受到诸如 red-pill 一类更复杂的钓鱼攻击;要想让模拟真正有用,必须 enforced onchain。扩展上的 MetaMask 智能账户默认支持这种附加保护。蓝色框 Networks supported for onchain simulations 列出 Ethereum、Optimism、BNB、Polygon、Monad、HyperEVM、Sei、Tempo、MegaETH、Robinhood、Arc、Base、Arbitrum、Avalanche 和 Linea。界面英文,2026-11-12 实拍,名单和文案会变动

三、普通模拟对不上时,Added protection 会怎样

帮助中心在「Added protection: how enforced simulations keep you safe」一节写:标准的链下模拟有帮助,但前提是合约在模拟里和链上执行时表现一样;实际情况并不总是如此。开启强制模拟后,交易会在签名前先模拟,相同条件会在链上执行时被强制核对;如果真实执行和模拟不一致,交易会自动回滚。该页写,此时你在确认页上看到的内容,才能保证和链上发生的事一致;不一致就不会成交,资金受到保护,你只需支付网络费。

「Why does gas increase when 'Added protection' is enabled?」一节写:在确认页勾选 Added protection 后,网络费可能会更高,这是预期现象,因为强制模拟会增加一个链上核对步骤,从而使用更多 Gas。该页的 Note 写:MetaMask 不会因开启此功能另行收费,你支付的只是交易要上链的网络费。紧接着「When should I use 'Added protection'?」写得很直白:请记住,标准模拟不保证和链上结果一致,只有强制模拟,也就是 Added protection,才能做到这一点。该页建议在这几种情况下格外小心并勾选:和未知的新 dapp 交互、签署复杂交易、以及移动较大金额。

「What kind of transactions are supported?」写:目前交易模拟可用于合约交互,你能看到涉及 ERC-20 代币,以及转入转出账户的 ERC-721、ERC-1155 NFT 的余额变化。下面的 Note 还写:此功能会使用 MetaMask 的中心化服务器来模拟交易并获取必要数据。如果你是用助记词(该页写 SRP)注册的,可以在 Settings > Privacy 里关掉 Basic Functionality;关掉后,Added protection 和其他重要功能也会一起停用。用 Google、Apple 或 Telegram 注册的,Basic Functionality 始终开启且关不掉。Approve 无限额要不要点,见 授权额度是什么,这里不展开。

交易模拟是什么:钱包里 Simulate 一眼看懂-玩转加密货币
图3:support.metamask.io 帮助中心:Why does gas increase when 'Added protection' is enabled 写,勾选后网络费可能更高,因为强制模拟会增加链上核对、额外计算并使用更多 Gas;Note 写 MetaMask 不会因此另行收费,你只支付网络费。When should I use 'Added protection' 写:标准模拟不保证和链上结果一致,只有强制模拟或 Added protection 才能做到;建议在与未知新 dapp 交互、签署复杂交易、移动较大金额时勾选。What kind of transactions are supported 写:目前可用于合约交互,并能看到 ERC-20 以及 ERC-721、ERC-1155 NFT 转入转出账户的余额变化;Note 写此功能使用中心化 MetaMask 服务器来模拟,助记词(SRP)注册者可在 Settings > Privacy 关闭 Basic Functionality,关闭后 Added protection 和其他重要功能也会停用。界面英文,2026-11-12 实拍,文案会变动

四、官方文档里的模拟:不创建链上交易,也不消耗 Gas

钱包确认页里的预演,底层常常会走到节点提供的只读调用。 ethereum.org 中文「与智能合约交互」 的「模拟交易」一节写:在发送交易之前,你可以模拟它,检查会不会成功,并查看返回值,这一步不必消耗 Gas。这对于及早发现错误和预览结果很有用。该页还写,大多数客户端库通过 eth_call 支持此功能,并给出 Viem 里 simulateContract 的示例(函数名是 swap)。文档改写后会变,以你当时打开的页面为准。

交易模拟是什么:钱包里 Simulate 一眼看懂-玩转加密货币
图4:ethereum.org 中文「与智能合约交互」页面「模拟交易」一节:在发送交易之前,你可以模拟它以检查它是否会成功,并查看其返回值,而无需消耗 Gas;这对于及早发现错误和预览结果非常有用。大多数客户端库通过 eth_call 支持此功能。示例代码为 Viem 的 client.simulateContract,functionName 为 swap。简体中文,2026-11-12 实拍,文档改写后会变

同一站点的 JSON-RPC 文档 eth_call 把这种方法写得更具体:立即执行一个新的消息调用,而无需在区块链上创建交易。通常用于执行只读的智能合约函数,例如 ERC-20 合约的 balanceOf。参数说明里写:eth_call 消耗零 Gas,但某些执行可能需要提供 gas 参数。返回值是执行合约的返回值。文档里的 curl 示例结果是 0x,这只是该页的写法示例,不代表你这次调用的返回。它和真正发出去、已经出现哈希的交易不是同一步。发出去之后要看状态和确认数,见 浏览器里 Success 和 Pending 差在哪。

交易模拟是什么:钱包里 Simulate 一眼看懂-玩转加密货币
图5:ethereum.org 中文「JSON-RPC API」中 eth_call:立即执行一个新的消息调用,而无需在区块链上创建交易;通常用于执行只读智能合约函数,例如 ERC-20 合约的 balanceOf。参数包括 from、to、gas、gasPrice、value、input,以及区块标签 latest、earliest、pending、safe 或 finalized。gas 一项写 eth_call 消耗零 Gas,但某些执行可能需要此参数。返回值为执行合约的返回值。示例请求方法为 eth_call,结果示例为 0x。简体中文,2026-11-12 实拍,文档改写后会变

五、发送前先对这几项,预演通过也不等于已经到账

以后在确认页看到 Balance changes 或 Simulate,可以按下面对一下。帮助中心样例里的 0.28 ETH、$8.56 和 $6.21 不要直接套用,以你当时打开的官方说明和自己钱包里的数字为准。

  1. 先分清这是预演还是已经广播。确认页上的余额变化还没上链;有了交易哈希,再到区块浏览器里看状态。
  2. 对一下 You receive / 你将支付,以及代币名字和数量。数量明显不对、要付出的代币你没准备过,就先取消。
  3. 看 Request from 和 Interacting with 是不是你刚打开的那个站点、那份合约。样例里出现了 newdapp121.xyz 和未知地址提示,这类来源要多停一步。
  4. 如果是授权类操作,先核对额度。无限额 Approve 的风险,见 授权额度是什么。
  5. 记住帮助中心那句话:标准模拟不保证和链上结果一致。和陌生应用打交道、或金额较大时,再看一眼 Added protection 是否勾选,以及网络费是否因此变高。
  6. 模拟本身按官方文档可以不消耗 Gas;真要点 Confirm 发出去,仍要留一点 ETH 付网络费。原因见 为什么钱包要留一点原生币。

六、这几栏怎么对照

你要看的字段 它在说什么 新手先做什么
Balance changes / Simulate 发送前的预演,估计这笔交易可能带来的余额变化 对一下收入和支出的代币与数量,不要把它当成已经到账
Added protection 把模拟条件放到链上再核对一遍,对不上就回滚 看是不是勾选;勾选后网络费可能更高,帮助中心写这是预期现象
Network fee 里的附加保护费用 样例里写 Includes $6.21 for added protection,数字会变 和未勾选时的费用对比一下,确认自己愿意为这次核对多付这一截
Basic Functionality 帮助中心写,须在 Settings > Privacy 开启,模拟才能工作 看不到预演时,先到隐私设置里核对此项;用第三方账号注册的可能关不掉
eth_call 节点上立即执行消息调用,不在链上创建交易,文档写消耗零 Gas 用来理解钱包预演的底层做法;真发出去仍要看交易哈希和状态
预演还没上链
帮助中心把交易模拟写成对这笔交易的一次试运行。确认页上的 +0.28 ETH 只是该页样例,不能当成自己已经收到的金额。
标准模拟对不上链上结果时,保护不会自动生效
帮助中心写,标准模拟不保证和链上一致。只有强制模拟,也就是 Added protection,才会在对不上时让交易回滚,并且你仍要付网络费。
勾选保护后费用可能更高
同一页写这是预期现象,因为多了链上核对。样例里的网络费是 $8.56,其中 $6.21 来自附加保护;MetaMask 不会因此另行收费。换一笔交易,数字会不一样。
真要发出去,还是要留 Gas
官方文档里的 eth_call 不创建链上交易,也不消耗 Gas。你点 Confirm 广播之后,状态要到区块浏览器里核对。

浏览官方文档和钱包帮助中心本身不收费。以后若要在链上小额试一笔,需要留一点 ETH 付 Gas。可在 币安 或 欧易 准备。自托管钱包可以用欧易 Web3(邀请码 CHENGXULVTU)。

相关阅读