﻿---
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 может ждать, пока предыдущие не будут включены или иначе разрешены.
2. **Замена — локальная политика пула.** Консенсус Ethereum не задаёт единого процента. Клиенты, RPC-провайдеры и приватные ретрансляторы могут иметь другие правила или видеть разные ожидающие транзакции. Legacy pool Geth сейчас использует `10%` по умолчанию, но настройка изменяема и не обязательна для других клиентов.
3. **EIP-1559 имеет два лимита.** `maxPriorityFeePerGas` ограничивает чаевые, а `maxFeePerGas` — всю цену за gas с базовой комиссией. В legacy pool Geth новые fee cap и tip cap должны быть выше старых и настроенного порога. Кошелёк должен рассчитывать оба.
4. **Принятие пулом не является подтверждением.** Один узел может принять замену, пока другие хранят оригинал. В каноническую последовательность попадёт только одна транзакция отправителя с этим nonce. Первая включённая допустимая кандидатура делает остальные непригодными в этой сети, хотя интерфейс обновится позже.
5. **Лимит и уплаченная сумма различаются.** Эффективная цена EIP-1559 ограничена 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` превышают эти примерные пороги. Транзакция всё равно может ждать, если базовая комиссия оставляет слишком малые чаевые под fee cap `35 gwei`. Процент — пример, а не гарантия сети.

Действуйте по порядку:

1. Проверьте сеть и отправителя. Запросите исходный и все заменяющие хеши в кошельке и через независимый RPC или обозреватель.
2. Сравните подтверждённый счётчик с представлением pending. Если nonce `42` подтверждён, не создавайте другую транзакцию, считая его открытым.
3. Декодируйте `to`, `value` и `data`. Для ускорения сохраните операцию и nonce. Для отмены кошельки часто отправляют `0 ETH` самому отправителю с тем же nonce; это конкурирующая замена, а не отзыв на уровне протокола.
4. По возможности используйте функцию кошелька. Иначе узнайте текущую политику и оценку комиссии, увеличьте оба лимита EIP-1559 с запасом на округление и проверьте покрытие `value + gasLimit x maxFeePerGas`.
5. Перепроверьте всё до подписи. Отправьте один раз, сохраните каждый хеш и следите за квитанциями всех кандидатов. У pending-хеша нет квитанции; квитанция в правильной сети и блоке подтверждает выполнение.

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

## Риски

- Отмена не гарантирована. Исходная транзакция может попасть в блок раньше, а приватная или плохо распространённая транзакция может быть невидима вашему RPC.
- Неверный nonce может создать новый платёж или вызов. Повторная подпись устаревших calldata может выполнить операцию с изменившимися ценой, allowance, сроком или состоянием.
- Один endpoint может принять замену, другой — отклонить. Частая смена RPC оставляет кандидатов в разных пулах и запутывает интерфейс кошелька.
- Повышение `gasLimit` не улучшает приоритет. Слепое повышение лимитов увеличивает максимальные затраты; изменение проскальзывания или calldata меняет выполнение, но не правило пула.
- Blob-транзакции, user operations абстракции аккаунта, L2 и приватные ретрансляторы могут использовать другие пулы и правила. Обычная политика EVM Geth к ним автоматически не применяется.

Остановитесь, если отправитель или nonce незнакомы, calldata не декодируются, транзакция могла подтвердиться, кошелёк предлагает другого получателя или сумму либо RPC просит seed-фразу или приватный ключ. Настоящее устранение ошибки не требует секретов восстановления.

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

## Распространённые заблуждения

- **«На аккаунте мало средств.»** Это другая ошибка. Данное сообщение касается конкурирующей транзакции и цены замены.
- **«Повышение на 10% всегда работает.»** Это частое значение Geth, не правило консенсуса. Настройка, клиент, тип и округление могут требовать больше.
- **«Более дорогая транзакция заменила исходную везде.»** Пулы локальны. Принятие одним RPC не удаляет оригинал из всех пулов и не гарантирует порядок.
- **«Отмена возвращает подтверждённую транзакцию.»** Нет. Она конкурирует лишь пока nonce не разрешён; подтверждённое изменение требует прикладного средства, если оно существует.

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

## Похожие темы

- [Комиссия gas](/ru/crypto/gas-fee/)
- [Базовая комиссия EIP-1559](/ru/crypto/eip1559-base-fee/)
- [Замена транзакции](/ru/crypto/mempool-replacement/)
- [Nonce](/ru/crypto/nonce-crypto/)
- [Приоритетная комиссия](/ru/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)
- [Логика замены legacy pool go-ethereum](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/ru/crypto/replacement-transaction-underpriced/index.mdx
