> ## 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.

# Parsed Streams

> Подписывайтесь на декодированные транзакции Solana через WebSocket с серверной фильтрацией по программе, аккаунту и имени инструкции.

## Что такое Parsed Streams?

Parsed Streams — это сервис WebSocket, который отслеживает каждую подтвержденную транзакцию Solana (кроме транзакций голосования), декодирует ее и отправляет вам транзакции, соответствующие заданному фильтру. Вы указываете: «Меня интересуют инструкции маршрутизации Jupiter» или «Меня интересует все, что затрагивает этот аккаунт», а сервер выполняет отслеживание, декодирование и сопоставление.

Вы получаете **целые, уже декодированные транзакции**: каждую инструкцию с именованными аргументами и аккаунтами, комиссию, полный список ключей аккаунтов, `summary` уровня транзакции с описанием произошедшего, переводы SOL и токенов, а также ссылки на конкретные инструкции, соответствующие вашему фильтру. Все данные передаются с уровнем подтверждения **confirmed**.

## Ментальная модель

Если вы уже знакомы с внутренним устройством Solana, переходите к следующему разделу. В противном случае изучите модель, на которой построен весь API.

**Транзакция** — это подписанное сообщение. В нем указывается плательщик комиссии, перечисляются все аккаунты, которых оно коснется, и содержится список инструкций. В транзакции можно увидеть подпись (ее уникальный идентификатор), слот, в который она попала, уплаченную комиссию, ключи аккаунтов, статус выполнения и инструкции.

**Инструкция** — это одно действие: выполнить эту программу с указанными входными данными и этими аккаунтами. Например, обмен в Jupiter, перевод токенов или memo. Транзакция обычно содержит несколько инструкций, которые выполняются по порядку.

**Программы могут вызывать другие программы.** Когда Jupiter выполняет обмен, он не перемещает токены самостоятельно. Его инструкция маршрутизации вызывает программу токенов для перемещения токенов и программы бирж, в которых хранится ликвидность. Эти вложенные вызовы также являются инструкциями и называются внутренними инструкциями (или CPI, cross program invocations). Это важно при создании фильтра: значительная часть реальной активности, например фактическое перемещение токенов во время обмена, происходит во внутренних инструкциях, поэтому по умолчанию фильтр также сопоставляет их. Если вам нужны только инструкции, подписанные пользователем, задайте для `includeCpi` значение false.

**Аккаунты** — это объекты в блокчейне, с которыми работает инструкция: кошельки, балансы токенов, пулы и минты. Каждая инструкция содержит их в виде упорядоченного списка адресов, причем порядок является частью контракта: программа определяет назначение каждой позиции. Например, программа токенов ожидает сначала аккаунт, с которого нужно списать токены, затем аккаунт, который должен их получить, и после этого владельца, разрешающего перевод.

**Роли** присваивают этим позициям имена. Большинство известных программ публикуют машиночитаемое руководство по своему интерфейсу, которое называется IDL. В нем перечислены все инструкции программы, назначение их полей данных и каждой позиции аккаунта. Helius ведет каталог таких руководств для тысяч программ. С его помощью простой список адресов превращается в именованные аккаунты: для перевода токенов позиция 0 становится `source`, позиция 1 — `destination`, а позиция 2 — `authority`. Вместо того чтобы гадать о назначении третьего адреса, вы видите `{"name": "authority", "pubkey": "9xQe...", "isSigner": true}`. Эти имена являются ролями, по которым можно фильтровать.

**Декодирование** применяет тот же принцип к входным данным инструкции. При передаче эти данные представляют собой непрозрачную последовательность байтов. С помощью руководства программы байты преобразуются в именованные значения: `{"in_amount": "1000000", "slippage_bps": 50}`. Декодировать можно не каждую инструкцию, поэтому каждая из них относится к одному из трех состояний, которые можно определить непосредственно по ее полям:

* **Декодированная**: инструкция содержит объект `decoded` с именованными `args` и именованными `accounts`.
* **Распознанная**: помимо `decoded`, инструкция содержит `summary` с `type` (например, `swap`), удобочитаемым `description` и структурированной полезной нагрузкой `parsedData`, например метаданными обмена с суммами и минтами.
* **Недекодированная**: программы или инструкции нет в каталоге, значение `decoded` равно `null`, а инструкция вместо этого содержит необработанные байты (`rawData`) и простой список адресов (`rawAccounts`), поэтому у вас всегда остаются данные для работы.

Это вся модель, и ваш фильтр строится непосредственно на ее основе:

* `programs`: какую программу вызывает инструкция
* `instructionNames`: как это действие называется в руководстве программы
* `accounts.include`: какие адреса оно затрагивает
* `accounts.roles`: в какой именованной позиции должен находиться определенный адрес
* `includeCpi` и `includeFailed`: учитывать ли внутренние инструкции и неуспешные транзакции

**Фильтры выбирают инструкции, а уведомления доставляют целую транзакцию.**

### Сравнение

<CardGroup cols={2}>
  <Card title="vs Enhanced WebSockets" icon="bolt">
    [Enhanced WebSockets](/docs/ru/rpc/websocket) передает целые транзакции или обновления аккаунтов без декодирования. Parsed Streams выполняет сопоставление на уровне инструкций и декодирует все за вас.
  </Card>

  <Card title="vs LaserStream gRPC" icon="server">
    [LaserStream](/docs/ru/laserstream) — это высокопроизводительный поток данных gRPC, который вы фильтруете и декодируете на стороне клиента. Parsed Streams — это API WebSocket, который выполняет фильтрацию и декодирование на сервере.
  </Card>

  <Card title="vs Parsed Events" icon="clock-rotate-left">
    [Parsed Events](/docs/ru/parsed-events) применяет такое же декодирование к историческим транзакциям: анализирует подписи или по запросу постранично перебирает историю адреса через REST. Parsed Streams отправляет новые транзакции по мере их поступления.
  </Card>
</CardGroup>

## Поддерживаемые программы

Parsed Streams декодирует **более 3 600 программ** с помощью их IDL в блокчейне, а также основные программы, такие как SPL Token, Token-2022 и System Program, с помощью встроенных декодеров. Фильтровать можно по адресу *любой* программы. Инструкции, которые сервис не может декодировать, передаются в виде необработанных данных инструкций.

Некоторые из наиболее часто используемых декодируемых программ:

<AccordionGroup>
  <Accordion title="DEXs & AMMs" icon="arrow-right-arrow-left">
    | Программа | Адрес |
    | - | - |
    | Jupiter Aggregator v6 | `JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4` |
    | Raydium CLMM | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` |
    | Raydium CPMM | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` |
    | Orca Whirlpool | `whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc` |
    | Meteora DLMM | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo` |
    | Meteora Pools | `Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB` |
    | Lifinity v2 | `2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c` |
  </Accordion>

  <Accordion title="Launchpads" icon="rocket">
    | Программа | Адрес |
    | - | - |
    | Pump.fun | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` |
    | PumpSwap | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` |
  </Accordion>

  <Accordion title="Lending & Perps" icon="building-columns">
    | Программа | Адрес |
    | - | - |
    | marginfi v2 | `MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA` |
    | Kamino Lending | `KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD` |
  </Accordion>

  <Accordion title="NFTs & Compression" icon="image">
    | Программа | Адрес |
    | - | - |
    | Metaplex Bubblegum (cNFT) | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` |
  </Accordion>
</AccordionGroup>

<Tip>
  Не видите нужную программу? Скорее всего, она все равно есть в каталоге. Вызовите [`describeProgram`](/docs/ru/parsed-streams/quickstart#обнаружение), указав ее адрес, чтобы просмотреть ее инструкции, события и роли аккаунтов.
</Tip>

## Доступ и цены

Parsed Streams доступен на всех тарифах, включая Free. Он заменяет [Enhanced Transaction Webhooks](/docs/ru/webhooks) для получения разобранных данных транзакций в реальном времени. Получите ключ API на [панели управления Helius](https://dashboard.helius.dev).

Каждое доставленное событие стоит **1 кредит** — столько же, сколько событие вебхука. Полный список цен см. в разделе [«Кредиты»](/docs/ru/billing/credits#кредиты-для-потоковой-передачи-данных).

Parsed Streams доступен через конечную точку [Gatekeeper](/docs/ru/gatekeeper/overview) на том же хосте, что и трафик Helius RPC и WebSocket. Отдельного хоста Parsed Streams нет:

```text theme={"system"}
wss://beta.helius-rpc.com/?api-key=<API_KEY>
```

Для аутентификации используйте ключ API своего проекта, передавая его в параметре запроса `api-key` (или заголовке `x-api-key`). Ключ проверяется при открытии подключения: если ключ отсутствует или недействителен, запрос отклоняется с кодом HTTP 401, а если проект достиг ограничения на количество подключений — с кодом HTTP 429.

## Начало работы

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/docs/ru/parsed-streams/quickstart">
    Подключитесь, отправьте первый фильтр и прочитайте уведомление.
  </Card>

  <Card title="Track Jupiter Swaps" icon="arrow-right-arrow-left" href="/docs/ru/parsed-streams/guides/track-jupiter-swaps">
    Создайте реальный фильтр с помощью обнаружения программ и оформите подписку.
  </Card>

  <Card title="Track Pump.fun Mints" icon="rocket" href="/docs/ru/parsed-streams/guides/track-pumpfun-mints">
    Используйте устойчивый к переподключениям обработчик, который регистрирует каждое новое развертывание токена Pump.fun.
  </Card>

  <Card title="Handling Reconnects" icon="rotate" href="/docs/ru/parsed-streams/guides/handling-reconnects">
    Обнаруживайте разрывы подключения, увеличивайте задержку, повторно оформляйте подписку и загружайте пропущенные слоты.
  </Card>
</CardGroup>


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