基础方法

Gwei 是什么?Gas 费计算、余额不足与 Pending 排查

Gwei 与 Gas 费计算排查指南品牌封面
先记住一句话:Gas 是计算工作量,Gwei 是常见的 Gas 单价单位;最终费用看“实际使用的 Gas × 实际生效的每单位价格”。钱包里的 Gas 上限和 Max fee 是预算边界,不一定等于最终扣款。

钱包显示 12 Gwei、Gas Limit 150,000、Max fee 0.003 ETH,究竟会扣多少?为什么账户里有测试代币却仍提示余额不足?交易 Pending 时应该提速、取消还是等待?这篇指南从单位和公式开始,把 EIP-1559 字段、普通转账与合约交互的差异、常见错误信息和测试网排查顺序放在一页讲清楚。它不提供实时 Gas 报价,而是教你判断钱包显示的数字。

30 秒读懂钱包里的费用

钱包字段它回答的问题最容易误解的地方
Gas Limit这笔交易最多允许使用多少 Gas它是上限,不是必然消耗量;调高也不等于更快
Gas Used交易实际消耗了多少计算资源通常要等执行后才能确定
Gwei / Fee per gas每单位 Gas 的价格Gwei 是单位,不是另一种代币
Max fee愿意为每单位 Gas 支付的最高价格上限乘 Gas Limit 是预算边界,不等于最终费用
Network fee钱包按当前状态估算的总费用估算会随网络和合约状态变化

在采用 EIP-1559 的 EVM 网络上,可把核心关系先简化为:执行费用 = Gas Used × Effective Gas Price。转账金额是另一项支出,因此账户余额通常要同时覆盖“发送的资产数量 + 费用预算”。

1. Wei、Gwei、ETH 的换算

Wei 是 Ether 的最小计价单位;Gwei 是日常最常见的 Gas 单价单位。三者只是同一个数值用不同精度表达:

  • 1 ETH = 1,000,000,000 Gwei
  • 1 Gwei = 1,000,000,000 Wei
  • 1 ETH = 1,000,000,000,000,000,000 Wei
  • 1 Gwei = 0.000000001 ETH

例如 20 Gwei 不是“20 个币”,而是每单位 Gas 的报价。若某条 EVM 链的原生 Gas 代币不是 ETH,钱包仍可能用 Gwei 表示单价,但最终费用会折算成该网络的原生代币。要做精确换算,可使用站内的Gwei / Wei / ETH 单位换算器;工具在浏览器本地计算,不提供实时 Gas 行情。

2. Gas Used、Gas Limit 与总费用

Gas衡量 EVM 执行操作所需的计算工作量。普通地址向普通地址发送 ETH、且不附带额外数据时,典型用量是 21,000 Gas;调用智能合约、交换代币、铸造 NFT 或部署合约时,用量取决于执行路径,不能套用 21,000。

Gas Limit 是安全边界,不是报价

Gas Limit 表示交易允许消耗的最大 Gas。假设上限为 120,000,最终只使用 83,000,通常按 83,000 计费,未使用部分不会按“已用 Gas”收取。反过来,如果执行尚未完成就耗尽上限,交易可能以 Out of gas 失败,已经消耗的 Gas 仍可能被收取。

Value 和 Network fee 要分开看

发送 0.1 ETH 时,0.1 ETH 是交易的 value,Gas 是执行费用。钱包提示余额不足,可能不是你缺少要发送的代币,而是“余额 − 转账金额”不足以覆盖费用上限。发送 ERC-20 代币时,代币余额和原生 Gas 余额更是两个独立数字。

一个常见误区:账户里有 USDT、测试项目代币或桥接资产,不代表能支付 Gas。Gas 通常只能用当前网络指定的原生代币支付。

3. EIP-1559:Base fee、Priority fee 与 Max fee

在支持 EIP-1559 的网络上,钱包通常把每单位 Gas 的价格拆为三部分:

字段含义谁决定
Base fee区块根据拥堵情况要求的基础价格协议按前一区块使用情况调整;在以太坊上会被销毁
Max priority fee愿意支付给验证者的最高小费用户或钱包建议值
Max fee per gas基础费与小费合计的每 Gas 最高预算用户设置的价格上限

更准确的计算方式是:

  • 有效小费 = min(Max priority fee, Max fee − Base fee)
  • 有效 Gas 单价 = Base fee + 有效小费
  • 执行费用 = Gas Used × 有效 Gas 单价

如果 Base fee 上涨到高于 Max fee,交易暂时无法满足当前区块的价格要求,可能继续等待。Max fee 设得较高,是为了给区块间的价格变化留空间;最终费用仍按实际生效价格和 Gas Used 计算。旧式交易只显示 Gas Price,把基础费和优先费折进一个单价,排查时要先判断钱包展示的是哪一种格式。

在部分 Layer 2 上,总费用还可能包含 L2 执行费、向 L1 发布数据的费用或其他数据可用性费用。因此“Gas Used × L2 单价”未必等于钱包展示的全部成本,应以该网络官方费用模型和交易回执为准。

4. 三类 Gas 费计算示例

示例 A:普通 ETH 转账

假设普通地址转账实际使用 21,000 Gas,Base fee 为 10 Gwei,有效小费为 2 Gwei:

21,000 × (10 + 2) = 252,000 Gwei = 0.000252 ETH

如果转账金额是 0.1 ETH,总支出约为 0.100252 ETH;其中 0.1 是 value,0.000252 是执行费用。

示例 B:合约交互

某次测试网合约调用实际使用 150,000 Gas,有效单价为 3 Gwei:

150,000 × 3 = 450,000 Gwei = 0.00045 个原生代币

这里不能直接写成 0.00045 ETH,除非该网络确实用 ETH 作为原生 Gas 代币。

示例 C:预算上限不等于最终扣款

钱包设置 Gas Limit 120,000、Max fee 20 Gwei,那么价格与用量的理论预算边界是:

120,000 × 20 Gwei = 0.0024 个原生代币

若最终只使用 100,000 Gas,Base fee 为 8 Gwei、有效小费为 2 Gwei,实际执行费用是:

100,000 × (8 + 2) Gwei = 0.001 个原生代币

钱包为交易保留足够余额时可能参考上限,但链上回执中的 Gas Used 和 Effective Gas Price 才能解释最终费用。

5. 确认交易前,按这条顺序检查

  1. 网络:确认网络名称与 Chain ID,避免把测试网任务发到主网或另一条同名链。
  2. 原生 Gas 余额:不要只看要发送的 ERC-20 代币;单独检查当前网络的原生代币余额。
  3. 交易对象:核对接收地址、合约地址和钱包展示的方法名;看不懂的合约调用先取消。
  4. Value:确认发送数量和单位,特别注意钱包是否把原生代币 value 与代币授权分开显示。
  5. 费用字段:区分 Gas Limit、Max fee、Priority fee 与预计总费用,不把单价当总价。
  6. 前序交易:同一地址有未确认交易时,后续更高 nonce 的交易可能排队等待。
  7. 停止条件:网页要求助记词、私钥、真实资产充值或购买测试 Gas 时立即停止。

6. Gas 与交易常见错误信息对照表

错误或现象通常意味着什么正确处理顺序
Insufficient funds for gas * price + value原生余额不足以覆盖转账金额与费用预算确认网络 → 核对原生余额 → 降低发送金额或从官方 Faucet 获取测试 Gas
Intrinsic gas too low交易设定的 Gas Limit 连基本数据和签名成本都不够恢复钱包建议值;不要随意把 Gas Limit 压低
Out of gas执行过程中耗尽 Gas Limit查回执与合约文档;仅在逻辑本身可成功时提高上限
Execution reverted合约条件不满足或主动回滚读可见的 revert reason,检查额度、截止时间、参数和合约状态;加 Gas 不一定有用
Gas estimation failed / Unpredictable gas limit模拟执行失败、节点无法估算或合约预计会回滚先检查交易条件和 RPC,不要盲目手填巨大上限
Max fee per gas less than block base feeMax fee 低于当前基础费刷新钱包报价,确认网络后提高价格上限或等待拥堵下降
Nonce too low该 nonce 已被确认或被另一笔交易占用在浏览器核对地址交易序列,再刷新钱包活动记录
Replacement transaction underpriced替代交易费用不够高使用钱包内置“加速/取消”,避免手动猜 nonce 和涨幅
Already known节点已见过同一笔签名交易查交易哈希,不要连续重复广播
RPC timeout / Internal JSON-RPC error节点超时、限流或返回了通用错误先查区块浏览器状态,再用项目官方备用 RPC 重试一次

错误文字只是线索,不是最终原因。同一句 JSON-RPC error 可能包住不同的底层错误;优先保留交易哈希、网络、时间和钱包显示的原始信息,再逐项排除。

7. 交易 Pending:等待、提速还是取消

Submitted只说明钱包尝试广播;Pending表示交易尚未被区块确认;Confirmed表示已上链;Failed通常表示上链执行后回滚。先在对应网络的区块浏览器搜索交易哈希,不要只看网站按钮上的动画。

  1. 确认交易哈希能否在正确网络的区块浏览器中找到。
  2. 检查同一地址是否有更早、nonce 更低的 Pending 交易;后续交易会排队。
  3. 比较当前 Base fee 与交易的 Max fee,判断价格是否已经落后。
  4. 若只是 RPC 或钱包界面未刷新,切换到项目官方备用 RPC 后重新读取状态,不重复签名。
  5. 确需替换时,使用钱包内置的 Speed up 或 Cancel;两者通常都要使用相同 nonce 并支付更有竞争力的费用。

“取消”不是从链上撤回一笔交易,而是争取让一笔相同 nonce 的替代交易先被确认。因此它可能失败,原交易也可能抢先确认。已经确认的交易不可取消;涉及授权或资产转移时,应转入事后处置流程,而不是继续点取消。

8. 官方真实截图:Out of gas、加速与取消

下面三张图片直接引用自 MetaMask 官方帮助中心当前文章,属于真实产品界面截图,不是生成图。它们用于辨认错误和操作入口;钱包版本、网络与语言不同,按钮位置和费用数字可能变化,实际操作时仍应先核对交易哈希与网络状态。

看截图时不要照抄数字:官方页面也特别说明,不同步骤截图里的 Gas 费可能不同。需要识别的是状态、nonce 与操作类型,而不是复刻图中的费率。

9. 测试网 Gas 的特殊问题

测试网复制了主网的交易和 Gas 机制,但余额与主网隔离。主网账户有 ETH,不代表同一地址在 Sepolia 或项目测试网上也有测试 ETH;反过来,测试币也不应被当成主网资产出售。

  • 先认网络:同一个地址在不同 Chain ID 下有不同余额和交易历史。
  • 再认原生币:Faucet 发的项目代币未必是 Gas 代币;要看网络文档指定的原生资产。
  • 只走官方 Faucet:从项目官网或官方文档进入,不购买所谓“测试币额度”。
  • 接受基础设施不稳定:测试网 RPC、浏览器和 Faucet 可能限流或短暂停机,连续点击只会制造重复请求。
  • 不补主网资产:余额不足时不要切到主网充值,也不要向陌生地址转账“激活测试网”。

如果 Faucet 已提示发送成功但钱包仍为零,按测试网水龙头排障指南检查网络、地址、交易哈希、RPC 与显示缓存;不要反复申请。

10. 为什么钱包的 Gas 估算会变化

钱包和节点通常通过模拟当前交易来估算 Gas。估算使用的是“此刻”的账户、合约和区块状态,而交易真正被打包时,价格、余额、池子报价、白名单、时间窗口或合约存储都可能已经改变。

变化来源可能影响怎么判断
网络拥堵变化Base fee 和建议优先费变化重新获取报价;不要把几分钟前的单价当固定值
合约状态变化执行路径、Gas Used 或交易结果变化检查滑点、截止时间、额度和项目公告
RPC 节点差异估算、nonce 或余额读取暂时不一致用项目官方备用 RPC 交叉核对
钱包安全缓冲Gas Limit 高于模拟的精确用量把它视为上限;最终看回执的 Gas Used
L2 数据费用总费用包含执行费之外的组成查看该 L2 官方费用说明和回执分项

eth_estimateGas返回估算值,不保证交易一定成功,也可能高于最终实际使用量。模拟已经回滚时,最重要的是找出业务条件或合约错误,而不是用极高 Gas Limit 强行提交。

11. 交易前后核对清单

签名前

  • 域名、网络名称与 Chain ID 都正确。
  • 原生 Gas 余额足够,且与要发送的代币余额分开核对。
  • 接收地址、合约、方法名和 value 符合本次目的。
  • 看懂 Gas Limit、单价和总费用的区别。
  • 没有更早的 Pending 交易堵住 nonce 队列。
  • 不在网页输入助记词、私钥或交易所验证码。

提交后

  • 保存交易哈希,并在正确网络的区块浏览器核对状态。
  • 回执成功后查看 Gas Used 与 Effective Gas Price,解释最终费用。
  • 交易失败先读错误与事件,不立即重复提交。
  • 授权类交易完成后,检查 allowance 是否仍有必要;参考撤销授权指南
  • 将网络、任务、哈希和异常记入测试网任务记录表,但不记录敏感密钥。

常见问题 FAQ

Gwei 是什么,和 ETH、Wei 有什么关系?

Gwei 是以太坊常用的 Gas 单价单位。1 Gwei 等于 10 的 9 次方 Wei,也等于 10 的负 9 次方 ETH;1 ETH 等于 10 亿 Gwei。Gwei 表示计价单位,不是另一种独立代币。

钱包有代币,为什么仍提示 Insufficient funds?

支付 Gas 需要当前网络的原生代币。账户里即使有 USDT、项目代币或跨链资产,也不代表有原生 Gas;余额还必须同时覆盖转账金额和钱包按 Gas 上限计算的费用预算。

把 Gas Limit 调高会让交易更快吗?

通常不会。Gas Limit 是交易最多可消耗的计算量,不是竞价速度。交易是否更快主要与有效 Gas 单价、网络拥堵和验证者选择有关;盲目提高 Gas Limit 也不能修复合约逻辑回滚。

Pending 交易可以取消吗?

钱包所谓取消,通常是用相同 nonce 和更高费用发送一笔替代交易,并不能保证成功。原交易一旦确认就无法取消;操作前应先在对应网络的区块浏览器核对状态。

交易失败后还会扣 Gas 吗?

如果交易已经上链执行后回滚,已消耗的计算资源通常仍需支付 Gas;如果请求只在钱包模拟阶段失败、没有广播上链,则不会产生链上 Gas 费用。

测试网 Gas 需要用真钱购买吗?

不需要。测试网应使用该网络官方 Faucet 发放的测试原生代币。任何要求购买测试币、转入主网资产或提交助记词才能领取 Gas 的页面都应立即停止操作。

官方资料来源

本文核对于 2026 年 8 月 18 日。不同 EVM 网络可能调整费用模型、字段名称和替代交易规则,操作时以目标网络与钱包的最新官方说明为准。