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

# Потоковые платежи (по секундам)

> Платите посекундно за непрерывную ценность — живой alpha-фид, дата-кран, GPU-время — авторизация один раз и расчёт в USDC на Arc.

## Идея: часть ценности непрерывна

Большая часть ценности дискретна — сигнал, скопированная сделка, чаевые — и [наноплатежи x402](/ru/creator-economy/nanopayments) прекрасно рассчитывают каждый *запрос*.

Но иногда ценность — это не запрос, а **поток**: живой alpha-фид во время матча, дата-кран, GPU-время, аудио по секундам. Такое не хочется покупать «за запрос» — хочется платить за **ровно те секунды, что вы использовали**, как по счётчику воды.

**Puls Streams** — это и есть тот счётчик: ценность по секундам, авторизованная один раз и рассчитанная в настоящих USDC на Arc.

## Как работает поток

<Steps>
  <Step title="Авторизуйте ставку + лимит (один раз)">
    Плательщик одобряет **ставку** (\$/сек) и **лимит** — а не каждую транзакцию. Одна авторизация покрывает тысячи суб-центовых тиков.
  </Step>

  <Step title="Heartbeat proof-of-flow">
    Во время потребления клиент шлёт лёгкий heartbeat. Счётчик растёт посекундно **только пока ценность реально течёт**.
  </Step>

  <Step title="Авто-пауза в момент остановки потока">
    Пропал heartbeat — счётчик **сам встаёт на паузу**: *вы платите ровно за то время, что были на связи.* Нет потока — нет списания.
  </Step>

  <Step title="Пакетный ончейн-расчёт">
    Каждая секунда — суб-цент, и платить за неё отдельно невыгодно, поэтому накопление **батчится** в периодические ончейн-переводы USDC — в стиле Gateway.
  </Step>

  <Step title="Живое распределение выручки">
    Каждый расчёт может выплачивать долю **каждому участнику** по мере того, как течёт ценность, а не в конце.
  </Step>
</Steps>

Старт · пауза · возобновление · **тап, чтобы остановить** — в любой момент; вы всегда платите только `ставка × прошедшее время`.

## Этим управляют агенты

Агент-трейдер может арендовать живой alpha-фид другого агента и принять три реальных решения, **без человека в цикле**:

<CardGroup cols={3}>
  <Card title="GO / NO-GO" icon="circle-check">
    Стоит ли вообще платить за живой фид? Часто — да, и агент объясняет почему.
  </Card>

  <Card title="Ставка" icon="gauge-high">
    \$/сек, масштабируется по **банкроллу × убеждённости**, с зажимом в разумных пределах.
  </Card>

  <Card title="Когда остановить" icon="hand">
    С каждой секундой *предельная* ценность убывает. Агент жмёт стоп, как только предельная ценность падает ниже цены — *«Ценность извлечена».*
  </Card>
</CardGroup>

Живой пример из продакшена: *Orion арендовал фид Nova по $0,015/сек (убеждённость 82% × банкролл $40), настримил \~\$0,35 пакетным USDC и сам остановился, когда предельная ценность упала ниже посекундной цены.*

## Попробуйте

<CodeGroup>
  ```bash cURL theme={null}
  # авторизуем поток: $0.001/сек, лимит $0.50
  curl -XPOST https://api.pulsmarket.tech/api/streams/open \
    -d '{"recipientUserId":"…","ratePerSecUsdc":0.001,"capUsdc":0.5}'

  # heartbeat во время потребления (proof-of-flow), затем тап-стоп
  curl -XPOST https://api.pulsmarket.tech/api/streams/<id>/tick
  curl -XPOST https://api.pulsmarket.tech/api/streams/<id>/stop
  ```

  ```ts SDK theme={null}
  import { PulsClient } from '@pulsmarket/sdk';
  const puls = new PulsClient();

  // открыть + heartbeat proof-of-flow + авто-стоп, одним вызовом
  const stream = await puls.streams.run(
    { recipientUserId: sageId, resource: 'live-alpha', ratePerSecUsdc: 0.001, capUsdc: 0.2 },
    { everyMs: 2000, shouldStop: (s) => s.accruedUsdc >= 0.1 },
  );

  // …или вручную
  const { stream: s } = await puls.streams.open({ recipientUserId: sageId, ratePerSecUsdc: 0.001, capUsdc: 0.5 });
  await puls.streams.tick(s.id);   // heartbeat proof-of-flow
  await puls.streams.pause(s.id);  // / resume(id)
  await puls.streams.stop(s.id);   // финальный расчёт ровно того, что протекло
  ```
</CodeGroup>

## Эндпоинты

| Метод | Эндпоинт                     | Описание                                    |
| ----- | ---------------------------- | ------------------------------------------- |
| GET   | `/api/streams/config`        | Сеть, порог расчёта, флаг live              |
| POST  | `/api/streams/open`          | Авторизовать ставку (\$/сек) + лимит        |
| GET   | `/api/streams/:id`           | Текущее состояние потока                    |
| GET   | `/api/streams`               | Ваши потоки (как плательщик или получатель) |
| POST  | `/api/streams/:id/tick`      | Heartbeat proof-of-flow — двигает счётчик   |
| POST  | `/api/streams/:id/pause`     | Пауза счётчика                              |
| POST  | `/api/streams/:id/resume`    | Возобновить приостановленный поток          |
| POST  | `/api/streams/:id/stop`      | Стоп — финальный расчёт того, что протекло  |
| GET   | `/api/streams/stats/summary` | Сетевые суммарные метрики стриминга         |

## Стек Circle

<CardGroup cols={2}>
  <Card title="Расчёт в USDC" icon="dollar-sign">
    Каждый тик рассчитывается в USDC — газовом токене на Arc.
  </Card>

  <Card title="Батчинг в стиле Gateway" icon="layer-group">
    Тысячи суб-центовых тиков, собранные в периодические ончейн-переводы.
  </Card>

  <Card title="Кошельки" icon="wallet">
    Circle-кошельки агентов и пользователей авторизуют и платят — без seed-фразы.
  </Card>

  <Card title="Контракты" icon="file-contract">
    Ончейн-эскроу (`StreamingPay.sol`) держит ставку + лимит, выводит `ставка × время`, с паузой / возобновлением / стопом + возвратом.
  </Card>
</CardGroup>

<Note>
  Puls Streams приносит **потоковые и непрерывные платежи** на Arc. Метеринг, авто-пауза proof-of-flow, пакетный расчёт и живой сплит работают уже сегодня; платный расчёт включается отдельно для каждого окружения.
</Note>
