> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Preconfirmations: самый ранний сигнал о транзакции в Solana

> Получайте поток транзакций Solana до их преобразования в шреды — предподтверждения Helius со статусом выполнения и Jito BAM в одной подписке WebSocket.

<Tip>
  **Используйте [Sender Max](/docs/ru/sending-transactions/sender-max) (мин. чаевые: 0,001 SOL), чтобы
  реагировать на Preconfirmations.** Предподтверждение приносит пользу, только если ваша
  транзакция попадает в блок
  первой, а Sender Max — самый быстрый способ добиться этого. С самого начала используйте Sender Max,
  чтобы получить максимальную пользу от Preconfirmations.
</Tip>

## Обзор

Preconfirmations передает транзакции на самом раннем этапе, когда их можно обнаружить, — **до** того, как они будут собраны в записи и преобразованы в шреды. Это сигнал о транзакциях с минимальной задержкой из всех предлагаемых Helius — он поступает раньше, чем [Shred Delivery](/docs/ru/shred-delivery/raw-shreds) и потоки с уровнем подтверждения processed.

Вы подписываетесь через WebSocket с помощью метода `preconfSubscribe` и получаете каждую транзакцию сразу после ее появления. Поток объединяет два источника, включенных по умолчанию. Они отправляют данные на разных этапах конвейера:

* **Предподтверждения Helius** от валидаторов, которые пересылают данные в Helius. Отправляются в момент, когда лидер **выполняет** транзакцию, вместе со статусом ее выполнения — это первый момент, когда результат уже существует.
* **[Предподтверждения BAM](#предподтверждения-bam)** от валидаторов, использующих клиент Jito Block Assembly Marketplace (BAM). Отправляются, когда валидатор **обязуется выполнить** транзакцию, но до ее выполнения, поэтому не содержат статуса выполнения.

<Note>
  Preconfirmations предоставляется через конечную точку Helius [Gatekeeper](/docs/ru/gatekeeper/overview)
  `wss://beta.helius-rpc.com`. Имя хоста `beta` относится к
  развертыванию Gatekeeper, а не к степени готовности Preconfirmations. Оно станет
  стандартной конечной точкой по мере переноса трафика на Gatekeeper.
</Note>

<CardGroup cols={2}>
  <Card title="Lowest Latency" icon="bolt">
    Транзакции доставляются раньше шредов и потоков с уровнем подтверждения
    processed
  </Card>

  <Card title="WebSocket Streaming" icon="tower-broadcast">
    Один раз подпишитесь с помощью `preconfSubscribe` и получайте предподтверждения Helius и BAM
    в одном потоке
  </Card>

  <Card title="Credit-Based Pricing" icon="coins">
    Тариф Professional или выше; 10 кредитов за сообщение и не менее
    300 кредитов за каждый охваченный слот для каждой подписки
  </Card>

  <Card title="Built for Traders" icon="chart-line">
    Реагируйте на ончейн-активность до попадания транзакций в блок — подходит для propAMM, снайперов, копи-трейдеров
    и ботов-ликвидаторов
  </Card>
</CardGroup>

## Место Preconfirmations в конвейере

Прежде чем попасть в блокчейн, транзакция проходит внутри валидатора несколько этапов. Задержка увеличивается слева направо: чем правее находится точка наблюдения, тем позже вы узнаете о транзакции.

<Frame caption="Preconfirmations deliver transactions ahead of shreds and processed commitment streams.">
  <img src="https://mintcdn.com/helius/8YmEB-0rF0Db0-AR/images/pre-confirmations-latency.png?fit=max&auto=format&n=8YmEB-0rF0Db0-AR&q=85&s=40a2de7b866c2e5f65f1009914b64bc1" alt="Transaction latency flow inside a validator: User Tx to TPU to Scheduler to Preconf (scheduled transaction) to Shreds, with latency increasing left to right." width="1024" height="244" data-path="images/pre-confirmations-latency.png" />
</Frame>

Предподтверждения Helius отправляются на этапе **выполнения** — в момент, когда лидер выполняет транзакцию и становится известен ее статус, но до записи результата и преобразования в шреды. Это первая точка жизненного цикла, на которой результат транзакции уже существует и может быть передан.

Предподтверждения BAM отправляются на один этап раньше — когда валидатор обязуется выполнить транзакцию, но еще не выполнил ее. Оба типа поступают до преобразования транзакции в шреды, поэтому для одной и той же транзакции их задержка всегда ниже, чем при доставке на основе шредов.

## Предподтверждения BAM

[BAM (Block Assembly Marketplace)](https://bam.dev/docs/bam/bam-overview/) — система Jito для создания блоков в Solana. Валидаторы с BAM-совместимыми клиентами отправляют предподтверждение в момент, когда обязуются выполнить транзакцию. Helius получает эти данные из региональных конечных точек BAM от Jito и доставляет их через ту же подписку `preconfSubscribe` и в том же двоичном формате полезной нагрузки, что и предподтверждения Helius. На момент запуска BAM добавил охват валидаторов, представляющих более 34% стейка сети.

Предподтверждения BAM используют ту же структуру полезной нагрузки, но отличаются несколькими полями:

* `tx_index` всегда имеет значение `0`. BAM упорядочивает транзакции по идентификатору последовательности и позиции в пакете, а не по индексу слота. Ни одно из этих значений не соответствует полю Helius и не передается в потоке. См. раздел [Как различать два источника](/docs/ru/pre-confirmations/preconf-subscribe#как-различать-два-источника).
* `regionInclude` соответствует региональной конечной точке BAM, отправившей предподтверждение, а не региону Helius, который его получил.
* Небольшая часть транзакций поступает в Helius из обоих источников, поэтому одна и та же подпись может прийти дважды. См. раздел [Дублирующиеся уведомления](/docs/ru/pre-confirmations/preconf-subscribe#дублирующиеся-уведомления).

Чтобы получать только предподтверждения Helius, передайте `includeBam: false` в [фильтре подписки](/docs/ru/pre-confirmations/preconf-subscribe#фильтрация).

## Когда использовать Preconfirmations

<CardGroup cols={2}>
  <Card title="Good fit" icon="circle-check">
    propAMM, снайперы, копи-трейдеры и боты-ликвидаторы — любые стратегии, которым
    нужно реагировать на транзакцию настолько рано, насколько это физически возможно.
  </Card>

  <Card title="Consider alternatives" icon="circle-info">
    Для получения полных исторических или подтвержденных данных используйте [LaserStream](/docs/ru/laserstream) или
    [Enhanced WebSockets](/docs/ru/rpc/websocket/transaction-subscribe). Необработанные сетевые
    данные доступны в [Shred Delivery](/docs/ru/shred-delivery/raw-shreds).
  </Card>
</CardGroup>

<Warning>
  Предподтверждение — это ранний сигнал, а не гарантия. Транзакция еще не
  попала в блокчейн и все еще может быть отброшена. Кроме того, статус выполнения в предподтверждении Helius
  отражает локальный результат лидера, который не является окончательным до
  подтверждения блока. Прежде чем считать транзакцию окончательной, проверьте ее попадание в блок
  с помощью стандартных проверок уровня подтверждения.
</Warning>

## Тарификация

<Note>
  Минимум в 300 кредитов за слот начнет действовать **14 октября 2026 года**. До
  этого момента за Preconfirmations взимается 10 кредитов за сообщение без минимальной суммы.
</Note>

Для Preconfirmations требуется **тариф Professional или выше**. Стоимость составляет **10 кредитов за сообщение**, но не менее **300 кредитов за слот** для каждой подписки. Кредиты списываются с вашего тарифа. Подробности см. в разделе [Кредиты](/docs/ru/billing/credits).

Минимальная сумма применяется только к слотам, на которые распространяется [охват](#охват) предподтверждений. Для каждого охваченного слота за подписку списывается большая из двух сумм: 10 кредитов за каждое доставленное сообщение или 300 кредитов. За слоты без охвата плата не взимается.

| Сообщений доставлено в охваченном слоте | Списано кредитов |
| - | - |
| 0 | 300 |
| 10 | 300 |
| 30 | 300 |
| 100 | 1 000 |

Учитывается ли слот при расчете минимальной суммы, зависит от того, как обеспечивается охват его лидера, и от значения параметра `includeBam`:

| Источник предподтверждений | По умолчанию (`includeBam: true`) | `includeBam: false` |
| - | - | - |
| Источник Helius | Плата взимается | Плата взимается |
| Источник BAM | Плата взимается | Плата не взимается |
| Ни один | Плата не взимается | Плата не взимается |

Минимальная сумма рассчитывается для каждой подписки, поэтому за каждую открытую подписку `preconfSubscribe` списывается не менее 300 кредитов за каждый охваченный слот. Закрывайте ненужные подписки с помощью `preconfUnsubscribe`.

<Note>
  Preconfirmations — новый продукт, поэтому его цена может измениться.
</Note>

## Охват

Preconfirmations доступен только для транзакций, запланированных валидаторами, которые пересылают свой поток в Helius или используют BAM-совместимый клиент. Охват зависит от доли сетевого стейка, которую покрывают эти два источника, поэтому поток **не является непрерывным**. Значение `includeBam: false` ограничивает охват валидаторами, которые пересылают данные непосредственно в Helius.

Используйте [`getPreConfCoverage`](/docs/ru/api-reference/pre-confirmations/getpreconfcoverage), чтобы получить охват Preconfirmations в процентах от сетевого стейка с разбивкой по регионам.

<Warning>
  Будьте готовы к пропускам. В слотах, лидеры которых не охвачены ни одним из источников, вы
  не получите сообщений с предподтверждениями. Проектируйте интеграцию так, чтобы
  она корректно обрабатывала такие пропуски: не рассчитывайте на непрерывный поток и используйте другие
  сигналы, например [LaserStream](/docs/ru/laserstream) или [Shred
  Delivery](/docs/ru/shred-delivery/raw-shreds), когда требуется непрерывный охват.
</Warning>

Охват растет по мере того, как все больше валидаторов начинают пересылать данные в Helius. Если вы управляете валидатором, то можете [помочь устранить эти пробелы и получать доход](/docs/ru/pre-confirmations/for-validators).

## Для валидаторов

Управляете валидатором? Вы можете получать доход, пересылая поток предподтверждений в Helius, и одновременно улучшать охват для всех пользователей Preconfirmations.

<Card title="Validators: earn by sending Preconfirmations" icon="server" href="/docs/ru/pre-confirmations/for-validators">
  Узнайте, как начать пересылать предподтверждения и получать доход.
</Card>

## Следующие шаги

<CardGroup cols={2}>
  <Card title="preconfSubscribe reference" icon="code" href="/docs/ru/pre-confirmations/preconf-subscribe">
    Подписка, формат сообщений и полный пример WebSocket.
  </Card>

  <Card title="Helius Sender" icon="rocket" href="/docs/ru/sending-transactions/sender">
    Используйте Preconfirmations вместе с Sender, чтобы реагировать на полученные данные и обеспечить максимально быстрое
    попадание транзакций в блок.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.