﻿---
title: "如何解決「replacement transaction underpriced」"
description: "此 RPC 錯誤表示同一傳送方、同一 nonce 的交易未符合節點的費用加價政策。瞭解如何安全檢查、加速或取消交易。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 如何解決「replacement transaction underpriced」

> 僅供教育參考，不構成財務或安全建議。替換或取消操作可能執行非預期交易，且網路費用無法撤銷。

<a id="answer"></a>

## 直接答案

`replacement transaction underpriced` 是 RPC 或交易池的拒絕訊息，不是 EVM 合約回滾。它通常表示節點已知道一筆來自同一傳送方、nonce 相同的交易，但新提交交易沒有充分提高相關費用欄位，因而不符合該節點的替換政策。

先核對鏈、傳送方、nonce，以及所有已知交易雜湊的狀態。若原交易仍待處理且你確實要替換它，應使用完全相同的 nonce，並依照錢包或節點政策提高費用欄位。僅提高 `gasLimit`、更改滑價或反覆廣播同一筆已簽署交易，都不能符合費用加價規則。

<a id="mechanism"></a>

## 運作方式

1. **Nonce 標示交易位置。** 外部帳戶發出的交易使用連續 nonce。若節點已有某傳送方在該 nonce 上的交易，它會把同一位置的另一筆交易視為替換候選。較後的 nonce 可能一直排隊，直到較早的 nonce 被納入區塊或以其他方式解決。
2. **替換屬於本地交易池政策。** Ethereum 共識沒有規定統一的加價百分比。客戶端、RPC 供應商和私有中繼可能採用不同政策，也可能掌握不同的待處理交易。Geth 的 legacy pool 目前預設要求提高 `10%`，但營運者可設定該值，其他客戶端也不必一致。
3. **EIP-1559 有兩個執行費用上限。** `maxPriorityFeePerGas` 限制驗證者小費，`maxFeePerGas` 限制包含區塊基礎費在內的每單位 gas 總費用。在 Geth 的 legacy pool 中，新交易的 fee cap 和 tip cap 都必須高於舊值並達到設定的百分比門檻。錢包應同時計算兩者，而不是只修改一個。
4. **交易池接受不等於確認。** 一個節點可能接受替換交易，而其他節點仍保留原交易。在 canonical 帳戶序列中，同一傳送方和 nonce 只能有一筆交易被納入。先被納入的有效候選會使其他候選在該鏈上失效，但介面更新可能延遲。
5. **費用承受上限與實際支付不同。** EIP-1559 的有效 gas 價格受 fee cap 限制，未使用的 gas 不收費。提高 `maxFeePerGas` 會增加最大費用曝險，不一定提高最終價格；但若基礎費和小費條件需要，較高上限可能會實際支付。

<a id="example"></a>

## 解決流程與範例

假設待處理交易的 nonce 為 `42`，`maxFeePerGas = 30 gwei`，`maxPriorityFeePerGas = 2 gwei`。要求提高 `10%` 的節點可能拒絕 `31 gwei` 和 `2.1 gwei` 的候選交易；`35 gwei` 和 `2.5 gwei` 則超過這些範例門檻。如果目前基礎費使 `35 gwei` fee cap 下的有效小費過低，該交易仍可能等待。此百分比只是範例，並非全網保證。

依以下順序處理：

1. 核對正確的網路和傳送方。透過錢包以及獨立 RPC 或區塊瀏覽器查詢原交易雜湊和所有替換交易雜湊。
2. 比較已確認交易計數與 pending 檢視。若 nonce `42` 已確認，不要仍假設它待處理而建立另一筆交易。
3. 解碼原交易的 `to`、`value` 和 `data`。加速時保留預期操作和 nonce。取消時，錢包通常用同一 nonce 向傳送方自己傳送 `0 ETH`；這只是競爭性替換，不是協定層級撤回。
4. 盡可能使用錢包的加速或取消功能。否則先取得節點目前加價政策與目前費用估算，再保留足夠整數捨入餘量，同時提高兩個 EIP-1559 上限。確認帳戶可支付 `value + gasLimit x maxFeePerGas`。
5. 重新核對完整交易後再簽署。只廣播一次，保留每個雜湊，並監控所有候選的回執。待處理雜湊沒有回執；與正確鏈和區塊關聯的回執才是執行檢查點。

<a id="risks"></a>

## 風險

- 取消並無保證。原交易可能在取消交易到達區塊生產者之前被納入，而私有或傳播不佳的交易可能不會出現在你檢查的 RPC 中。
- 使用錯誤 nonce 可能建立新付款或合約呼叫，而非替換舊交易。重新簽署過時 calldata 也可能執行價格、授權額度、截止時間或協定狀態已改變的操作。
- 一個端點接受的替換交易可能被另一個端點拒絕。反覆切換 RPC 可能讓多個候選留在不同交易池，使錢包顯示混亂。
- 提高 `gasLimit` 不會提升交易優先級。盲目提高費用上限會造成不必要的最大成本；更改滑價或合約 calldata 會改變執行語義，也不能修復交易池規則。
- Blob 交易、帳戶抽象 user operation、L2 和私有中繼可能使用不同交易池及替換規則。不要假設 Geth 的一般 EVM 交易政策適用於它們。

若傳送方或 nonce 陌生、原 calldata 無法解碼、交易可能已確認、錢包提出不同收款方或金額，或 RPC 索取助記詞或私鑰，請停止再次簽署並調查。正規故障排查絕不要求揭露秘密恢復資料。

<a id="misconceptions"></a>

## 常見誤解

- **「帳戶餘額不足。」** 餘額不足是另一種驗證錯誤。此訊息專指競爭交易及交易池的替換定價。
- **「提高 10% 總能成功。」** 百分之十只是 Geth 的常見預設值，不是共識規則。供應商設定、客戶端軟體、交易類型和整數捨入都可能要求更多。
- **「高費用交易肯定已在所有地方替換原交易。」** 交易池是本地的。一個 RPC 接受交易不會從所有交易池刪除原交易，也不保證哪個候選先被納入。
- **「取消能撤銷已確認交易。」** 不能。取消交易只能在 nonce 未解決時參與競爭；已確認的狀態變化只能使用應用層補救措施，而且這種措施未必存在。

<a id="related"></a>

## 相關主題

- [Gas 費用](/zh-tw/crypto/gas-fee/)
- [EIP-1559 基礎費](/zh-tw/crypto/eip1559-base-fee/)
- [交易替換](/zh-tw/crypto/mempool-replacement/)
- [Nonce](/zh-tw/crypto/nonce-crypto/)
- [優先費](/zh-tw/crypto/priority-fee/)

<a id="sources"></a>

## 來源

- [交易](https://ethereum.org/developers/docs/transactions/) - ethereum.org（查閱日期：2026-08-21）
- [EIP-1559：ETH 1.0 鏈的費用市場變更](https://eips.ethereum.org/EIPS/eip-1559) - Ethereum Improvement Proposals（查閱日期：2026-08-21）
- [go-ethereum legacy 交易池替換邏輯](https://github.com/ethereum/go-ethereum/blob/master/core/txpool/legacypool/list.go) - go-ethereum（查閱日期：2026-08-21）
- [txpool 命名空間](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool) - go-ethereum（查閱日期：2026-08-21）

Source: https://wiki.fcontext.com/zh-tw/crypto/replacement-transaction-underpriced/index.mdx
