摘要:钱包或节点返回 replacement transaction underpriced 时是什么意思:加价不够为什么会被拒,再发前先怎么核对 nonce 和费用栏。
钱包里已经有一笔交易还在 Pending,你又用加速、取消,或自定义随机数再发一笔去替换它,这时钱包或节点有时会返回 replacement transaction underpriced,有的界面只写成 transaction underpriced。这条提示出现在广播阶段,意思是新交易还没被节点收下,通常是因为手续费加得不够。站内 加速或取消卡住的交易 讲的是钱包入口怎么点加速或取消;Nonce 是什么 讲的是卡住时先看这个序号;自己给自己转账 讲的是取消为什么常表现为 0 ETH 自转;交易显示 Dropped 是什么 讲的是替换已经被接受之后,旧哈希可能写成 Dropped & Replaced 或 not found。本篇不重讲这些,也不教具体点哪些按钮,只解释这条英文提示在说什么,以及加价后再发前要先核对哪些字段。
一、先认字段:nonce、Max fee 和 Max priority fee
ethereum.org 中文「交易」 页列出了提交一笔交易时常见的字段。nonce 是「一个顺序递增的计数器,指示来自该账户的交易编号(随机数)」。maxPriorityFeePerGas 写的是「作为给验证者的优先费包含在内的已消耗 Gas 的最高价格」。maxFeePerGas 写的是「愿意为交易支付的每单位 Gas 的最高费用(包括 baseFeePerGas 和 maxPriorityFeePerGas)」。同一页还写:gasLimit 和 maxPriorityFeePerGas 决定了支付给验证者的最高交易费。页面下方的示例对象里,gasLimit 写成 21000,maxFeePerGas 写成 300,maxPriorityFeePerGas 写成 10,nonce 写成 0。这是文档里的示例数字,不是某一笔正在排队的交易,文档改写后也会变。单位怎么换算,见站内 Gwei 是什么单位 和 Gas limit 和 Gas price 差在哪,本篇不重讲。

同一账户里,同一个 nonce 同时只能成功进块一笔。要替换还在排队的旧交易,新交易必须仍用这个号码。这和 Nonce 是什么 里说的是同一件事。钱包费用栏里常见的 Max fee、Max priority fee,大致就对应上面这两个字段;旧式交易则可能只看到一栏 Gas price。本篇不把「Max fee per gas 是什么」写成专文。
二、为什么加价不够会被拒
节点接受替换时,通常要求新交易的费用参数比旧交易高出一个最低幅度。常见是同时看 Max fee 和 Max priority fee,旧式交易则看 Gas price。加价幅度不够,RPC 就会拒收,并把错误写成 replacement transaction underpriced,有的钱包只转述成 transaction underpriced。这个幅度因客户端和节点而异,不要写成全网固定某一个百分比。
MetaMask 帮助中心「如何加快或取消待处理的交易」 本场打开的是简体中文页。在自定义随机数这一段后面,帮助页写到:要将优先费用设置为至少比原始(待处理)交易的燃料费高 10%(以 Gwei 为单位);举例是,如果该笔交易的燃料费为 30 Gwei,则将替换或取消交易的最大优先费用设置为 33-35 Gwei。同一段还写:确保最高费用至少比要替换那笔的最高费用高 30%;举例是,如果之前的费用是 150 Gwei,那么这次选择更接近 200 Gwei 的费用。这是该帮助页本场打开时的建议,会变动,不是全网统一规定。本篇不展开钱包里要点哪些按钮,具体入口见 加速或取消卡住的交易。若你是要取消,而不是把原转账加速发出去,新交易常常是金额为 0、收款地址是自己,详见 自己给自己转账,这里不重写。

三、先分开:首笔 Gas 过低,和替换时加价不够
有的页面讲的是「首笔 Gas 过低」的 transaction underpriced,有的才是「替换交易加价不够」的 replacement transaction underpriced。旧路径 support.metamask.io/configure/troubleshooting/error-ethjs-query-while-formatting-outputs-from-rpc-transaction-underpriced-error 本场打开会跳到现行页 User guide: error codes。这一节的标题是 Transaction underpriced (ethjs-query while formatting outputs from RPC)。完整错误原文写成:Transaction <your transaction # here> failed! Error: [ethjs-query] while formatting outputs from RPC '{"value": {"code":-32000,"message":"transaction underpriced"}}'。页面接着写:This error occurs when the gas price is set too low. It can happen when sending tokens or making a swap via a DEX。这里说的是 Gas 单价设得过低,节点可能直接拒收,不一定发生在「已经有一笔同 nonce 的交易还在 Pending、你再发一笔去替换」这个场景。
替换被拒时,新交易通常还没进交易池,旧交易多半仍停在 Pending。同一节后半也写了 Extension 下的调整建议:Max priority fee 至少比 failed transaction 高 10%(以 gwei 计),Max fee 至少高 30%。这和上一节帮助页的写法接近,同样只是该页当时的建议,会变动。看到英文 underpriced 时,先到官方浏览器里核对旧哈希还是不是 Pending,再判断是首笔费用过低,还是替换加价不够。

四、加价幅度以你连上的节点为准
不同 RPC、不同客户端的最低加价幅度可以不一样。以 Geth 官方文档 Command-line Options 本场打开的页面为例,交易池(EVM)一节里有 --txpool.pricebump,说明文字是 Price bump percentage to replace an already existing transaction,当时的默认值写成 10。这只是 Geth 这一客户端在该文档页上的默认,节点运营者可以改,别的客户端或 RPC 也可能不同,文档里的默认值以后也会变。不要把它理解成「全网都必须加 10%」。如果你按帮助页加过价仍被拒,先看自己连的是哪家 RPC,再核对旧交易当时的 Max fee 和 Max priority fee,按该节点要求再提高一档后只再发一笔,不要连续堆好几笔同一 nonce 的新交易。

五、和 Failed、Dropped 要分开看
ethereum.org 中文「交易」 页的「交易生命周期」把提交之后的步骤写成:交易先被广播到网络,并添加到由所有其他待处理网络交易组成的交易池中;验证者把它包含在区块中,文档才把这一步视为「成功」;随后区块再升级为已证明、已最终确定。underpriced 出现在广播或替换阶段,新交易往往还没进块,有时连交易池都还没进去。页面第 1 步里的哈希是文档自己的示例,用来说明交易哈希长什么样,不是某一笔 underpriced 或替换成功的实例。

已经进块后执行失败,浏览器里常写成 Failed,处理方式见 转账显示 Failed 怎么办。Dropped & Replaced 则是替换已经被节点接受、并且新交易已经成功之后,旧哈希上常见的状态,详见 交易显示 Dropped 是什么。看到 underpriced 时,旧交易多半仍在排队,不要以为已经取消成功。交易在池子里排队时,浏览器里通常还是 Pending,可对照 交易池 Pending 是什么。
六、加价后再发前先核对什么
准备再发一笔替换交易之前,先按下面核对。已经看到新哈希是 Success,就不要再发第三笔。
- 记下旧交易的 nonce,以及旧的 Max fee、Max priority fee(或 Gas price)各是多少。
- 确认新交易仍使用同一个 nonce。号码不一致,就不是在替换这一笔。
- 核对新的费用栏是否按你当时打开的官方帮助页建议,高于旧值。MetaMask 该页本场写的是优先费用至少高约 10%、最高费用至少高约 30%,这只是该页当时的建议,会变动;你连上的节点也可能要求不同。
- 用官方浏览器打开旧哈希,看它是不是仍是 Pending。如果旧哈希已经 Success,就不要再对同一个 nonce 发新交易。
- 如果新哈希已经是 Success,并有明确的区块号,停止再发。旧哈希随后可能写成 Dropped & Replaced,或过一段时间变成 not found。
- 如果新哈希仍报 underpriced,先停下来核对费用栏,不要连续再发同一 nonce 的第三笔、第四笔。
- 链上发送要消耗原生币作 Gas,账户里需要留一点 ETH(或该网络的原生币)。只从官方入口打开钱包帮助和区块浏览器。
七、字段怎么对照
| 你要看的字段 | 和 underpriced 的关系 | 新手先做什么 |
|---|---|---|
| Nonce | 替换必须和旧交易用同一个号码 | 先抄下旧交易的序号,确认新交易没有填成别的数 |
| Max priority fee / 优先费 | 节点常要求比旧值高出一个最低幅度 | 对照旧值;MetaMask 帮助页本场写的是至少高约 10%,只是该页当时建议,会变动 |
| Max fee / 最高费用 | 同样常被要求一起提高 | 对照旧值;该帮助页本场写的是至少高约 30%,不是全网统一规定 |
| 浏览器里旧哈希的状态 | underpriced 出现时,旧交易多半仍是 Pending | 先确认还在排队;已经 Success 就不要再发 |
| 新哈希的状态 | 替换被接受后才会出现新的待处理或成功记录 | 已经是 Success 并有区块号,就停止再发第三笔 |
replacement transaction underpriced 指同一 nonce 的新交易还没被节点收下,通常是加价幅度不够。有的界面只写成 transaction underpriced,要先核对是不是已经有一笔旧交易仍在 Pending。
MetaMask 帮助页本场写的是优先费用至少高约 10%、最高费用至少高约 30%;Geth 文档本场把 --txpool.pricebump 默认写成 10。这些都会变,不同 RPC 也可能不同。
它出现在广播或替换阶段,并不等于已经 Failed,也不等于已经 Dropped & Replaced。不要以为取消已经成功。
先核对 nonce 和两栏费用,再只发一笔替换。浏览器里新哈希变成 Success 并有区块号后,停止重发。
浏览官方文档和区块浏览器本身不收费。以后若要在链上小额试转账,或试一笔加速、取消,需要留一点 ETH 付 Gas。可在 币安 或 欧易 准备。自托管钱包可以用欧易 Web3(邀请码 CHENGXULVTU)。
相关阅读
说明:配图为 2026-11-10 ethereum.org 中文「交易」页的字段说明(nonce、maxPriorityFeePerGas、maxFeePerGas)及示例对象、同一页「交易生命周期」中广播进交易池再被打包才视为成功的步骤、MetaMask 帮助中心现行页「如何加快或取消待处理的交易」里替换时优先费用至少高约 10%、最高费用至少高约 30% 的写法(本场打开为简体中文页),以及 MetaMask「User guide: error codes」中 Transaction underpriced 完整原文(旧排错路径本场会跳到此页)和 Geth 文档 Command-line Options 里 --txpool.pricebump 默认值 10。帮助页附图中的 Sepolia 界面数字、文档示例哈希和费用举例都不是某一笔你正在处理的交易,百分比和默认值会变动,以当时打开的页面为准。本文不构成投资建议,也不教你去替换某一笔具体交易。