看到"Out of Gas"别慌——你要调高的是Gas Limit,不是Gas Price。加价解决不了问题,白花钱。
核心处理思路
搞清楚"Gas耗尽"的根本原因,然后一步到位把交易重新发出去。
操作前排查方法
先看链上反馈。去Etherscan(或你用的网络浏览器)查这笔失败交易的详情。找到Gas Limit & Usage by Txn这一行,如果显示Usage是100%,那就是典型的Out of Gas问题——你设的上限用完了,交易还没跑完。这时候调Gas Price没用。Gas Price管的是"每单位Gas给多少钱",解决的是速度问题。而你现在的问题是"Gas数量不够"。
正确操作:调高Gas Limit
MetaMask操作流程
重新发起这笔交易。
在确认弹窗里点击"高级"(Advanced)选项。
找到"Gas Limit"这一栏,把默认数值提高30%-50%(比如默认5万,改成7万)。
其他参数(Gas Price或Max Fee)保持默认,确认发送。
Ledger Live操作流程
Ledger Live默认会自动计算Gas Limit,多数情况下够用。但如果自定义交易时失败,在高级设置里手动调高。
参考同合约的成功交易去设。在Etherscan上找一笔同一合约地址的成功交易,看它用的Gas Limit是多少,照着填。
风险提醒:调高Gas Limit不会让你多花钱。系统只扣实际消耗的Gas数,没用完的自动退还。很多人不敢调高,以为会被扣上限,结果为了省几块钱把Gas Limit压得太低,交易失败,Gas费照扣不退,反而白亏一笔。
完成校验标准
重发交易后,在区块浏览器里确认Status显示Success,且Gas Used占比低于100%(比如18.18%),说明这次Gas上限给够了。
调高后仍失败的常见原因
不少用户遇到调高了Gas Limit还是失败的情况,可检查两项内容:
是否调错了参数。有人把Gas Price调高了,但Gas Limit没动,当然还失败。
是否超过了区块上限。Gas Limit不能无限高,单笔交易不能超过区块Gas上限(目前主网是4500万)。钱包一般不会让你超过,但如果手动填了个天价,可能会报错"exceeds block gas limit"。
常见问题解答
Q:普通转账和智能合约交互,Gas Limit默认差多少? A:普通ETH转账固定消耗21,000 Gas。智能合约交互(比如Swap、NFT铸造)可能几万到几十万不等,取决于合约复杂度。所以千万别把合约交互的Gas Limit改成21,000,必失败。
Q:为什么交易失败了还要扣Gas费? A:你付的是"计算费",不是"成交费"。验证者已经消耗算力执行了你的指令,哪怕执行到一半失败,算力已经烧了。这笔钱不退。
Q:有没有办法提前知道设多少Gas Limit才够? A:有。在Etherscan找同一个合约地址的最近成功交易,看它的Gas Limit,照着填比你自己瞎估准得多。



