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

# Стейкинг в Tonhub

В Tonhub стейкинг TON реализован через пулы **TON Whales** на [tonwhales.com](http://tonwhales.com): пользователи делегируют TON в выбранный пул и получают долю наград за валидацию сети. Ниже описано, что означает стейкинг в контексте приложения и как он работает технически.

# Что такое стейкинг в контексте Tonhub

**Стейкинг** — это делегирование монет TON в пул, который участвует в выборах валидаторов и получает награды за работу сети. Пользователь не запускает ноду сам: он отправляет TON в смарт-контракт пула и становится номинатором этого пула. Пулы, доступные в Tonhub, принадлежат [Ton Whales](https://tonwhales.com).\
В приложении пользователь может:

* **Пополнить стейк (deposit):** отправить TON на адрес пула; сумма будет зачислена в аккаунт участника пула и начнет участвовать в следующем стейкинговом цикле. [Инструкция по пополнению.](/ru/deposit-withdraw-via-tonhub)
* **Запросить вывод (withdraw):** инициировать полный или частичный вывод средств из пула. [Инструкция по выводу.](/ru/deposit-withdraw-via-tonhub)
* **Просматривать баланс:** текущий стейк `balance`, средства в ожидании пополнения `pendingDeposit`, средства в ожидании вывода `pendingWithdraw` и сумму, уже готовую к получению `withdraw`.
* **Рассчитывать доходность:** использовать встроенный калькулятор доходности в кошельке.

Все операции выполняются в [сети TON](https://ton.org), а комиссии пула, включая комиссии за вывод и "receipt", оплачиваются в TON. Подробнее о комиссиях см. в разделе `Fees`, посвященном TON-стейкингу.

# Как реализован стейкинг: пулы и данные

## Доступные пулы

Список пулов, которые отображаются в Tonhub и с которыми он работает, определен в приложении через `KnownPools` и связан с адресами контрактов в mainnet и testnet. Примеры:

* [Nominators 1 / Nominators 2](/ru/staking-pools) — пулы номинаторов TON Whales, открытые для всех.
* [Team 1 / Team 2](/ru/staking-pools) — командные пулы с возможными ограничениями по доступу.
* [Club 1 / Club 2](/ru/staking-pools) — клубные пулы с ограниченным доступом; для вступления используется ссылка [tonwhales.com/club](https://tonwhales.com/club).
* [Tonkeeper 1 / Tonkeeper 2](/ru/staking-pools) — партнерские пулы [Tonkeeper](https://tonkeeper.com).
* [Whales Liquid](/ru/liquid-staking-pool) — ликвидный стейкинг через обертку wsTON.
* **USDe Liquid** — стейкинг [USDe (Ethena)](https://ethena.fi), который включается конфигом приложения `features.ethena`.

## Параметры пула

Параметры каждого пула запрашиваются напрямую из смарт-контракта TON через метод `get_params`. Ответ включает:

* **enabled** — включен ли прием депозитов;
* **minStake** — минимальная сумма депозита;
* **depositFee** — комиссия за пополнение в nano-TON;
* **withdrawFee** — комиссия за вывод;
* **receiptPrice** — стоимость "receipt", то есть учетной единицы для операций;
* **poolFee** — комиссия пула, то есть доля наград в процентах или базовых единицах, в зависимости от контракта.

Эти значения используются для показа комиссий пользователю, а также для проверки минимальной суммы и достаточности баланса при выводе, например для резервирования `withdrawFee` и `receiptPrice`.

## Состояние участника

Для каждого пула и адреса кошелька приложение запрашивает состояние участника через вызов `get_member`, куда передается адрес номинатора. Возвращаются:

* **balance** — текущий застейканный баланс;
* **pendingDeposit** — сумма, ожидающая зачисления в стейк;
* **pendingWithdraw** — сумма, ожидающая вывода и заблокированная до конца цикла;
* **withdraw** — сумма, готовая к выводу на кошелек после разблокировки.

Данные обновляются при открытии экрана стейкинга и при переключении между пулами. Для обычных пулов, то есть не ликвидных, запросы идут непосредственно в TON через `TonClient4`, `getLastBlock` и `runMethod`; для ликвидного пула и USDe используются отдельные API и контракты.

## Статус сети и выборы

Чтобы показывать текущие стейкинговые циклы и сроки разблокировки, приложение использует сетевой staking status: время выборов, минимальный и максимальный стейк, список валидаторов и другие данные. Эти данные запрашиваются из staking indexer или, если он недоступен, через резервный `fetchStakingStatusV4` с использованием данных TON, включая конфигурацию выборов и electors. Благодаря этому приложение знает, когда заканчивается текущий цикл, например `proxyStakeUntil`, и когда пользователь сможет вывести средства.

# Операции: пополнение и вывод

## Пополнение (deposit / top up)

Пользователь вводит сумму в TON и подтверждает перевод. Приложение создает обычную исходящую транзакцию в TON: получатель — адрес пула, сумма — введенное значение, без отдельного вызова контракта, поскольку пул принимает входящий перевод. После включения транзакции в блок пул зачисляет средства на аккаунт участника; они отображаются как `balance` и или `pendingDeposit` в зависимости от фазы цикла. [Инструкция по пополнению.](/ru/deposit-withdraw-via-tonhub)

## Вывод (withdraw)

Пользователь инициирует вывод: приложение отправляет сообщение на вывод, либо эквивалентный вызов по протоколу конкретного пула, с указанной суммой. Пулы TON Whales взимают **withdrawFee** и **receiptPrice**, поэтому пользователь должен иметь достаточный баланс с учетом этих комиссий. После обработки запроса сумма переходит в состояние "ожидает вывода", то есть `pendingWithdraw`, а после окончания блокировки — в **withdraw**, что означает готовность к получению. Затем пользователь выполняет финальное действие "claim", и TON отправляются на его кошелек. [Инструкция по выводу.](/ru/deposit-withdraw-via-tonhub)\
Интерфейс показывает комиссию пула, то есть `withdraw fee + receipt`, перед выводом, чтобы пользователь видел итоговую сумму к получению.

# Ликвидный стейкинг (Whales Liquid, wsTON)

[Ликвидный стейкинг](/ru/liquid-staking-pool) в Tonhub представлен продуктом Whales Liquid: пользователь делегирует TON в контракт и получает завернутый токен wsTON, который можно хранить, переводить или обменивать, пока базовый TON продолжает участвовать в стейкинге.

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

* У контракта ликвидного стейкинга есть фиксированный адрес в mainnet и testnet, например `EQB0SoxuGDx5qjVt0P_bPICFeWdFLBmVopHhjgfs0q-wsTON` для mainnet. Это **не** обычный пул из `get_member`: данные о балансе и курсе запрашиваются через Tonhub API по адресу `staking/mainnet/pool/liquid/info`, либо через testnet-эквивалент. Ответ включает:
* **rateDeposit** / **rateWithdraw** — курсы конвертации TON и wsTON.
* **extras** — `minStake`, `depositFee`, `withdrawFee`, `receiptPrice`, `poolFee`, `roundEnd`, `proxyStakeUntil` и другие параметры.
* **balances** — объемы протокола, например supply, total balance, pending withdraw и так далее.
* **Deposit:** пользователь отправляет TON в контракт с телом liquid deposit, то есть `op` из `LiquidStakingContract: storeLiquidDeposit`, а в ответ получает токены wsTON по актуальному `rateDeposit`.
* **Withdrawal:** пользователь отправляет сообщение **liquid withdraw**, указывая объем wsTON, через `storeLiquidWithdraw`; после обработки и разблокировки он получает TON обратно по `rateWithdraw`. Комиссии `withdrawFee` и `receiptPrice` учитываются в интерфейсе.

TON-эквивалент баланса показывается на основе количества wsTON и `rateWithdraw`. APY и комиссия пула `poolFee` отображаются в карточке Whales Liquid, когда данные доступны из API и `useStakingApy`.

# USDe Liquid (Ethena)

Когда включена функция [Ethena](https://ethena.fi), то есть в конфиге приложения активирован `features.ethena`, в списке пулов появляется USDe Liquid — стейкинг стейблкоина USDe. Пул связан с контрактом Ethena, не принадлежащим Ton Whales, например `tsMinter` и другими связанными контрактами. Механика в приложении похожа на ликвидный стейкинг: пользователь взаимодействует с контрактом через специальные сообщения, а данные для отображения, такие как баланс и комиссии, подтягиваются из API и контракта в зависимости от реализации. Пул добавлен в кошелек по соглашению с [Ethena](https://ethena.fi).

# Ограничения и особенности стейкинга в Tonhub

* **Только TON:** стейкинг в Tonhub работает только в [сети TON](https://ton.org), как в mainnet, так и в testnet. Solana в стейкинге не участвует.
* **Пулы Whales:** приложение рассчитано на [Whales](https://tonwhales.com) и партнерские пулы, такие как Nominators, Team, Club, Tonkeeper и Liquid. Добавление произвольных пулов по адресу без поддержки того же протокола на уровне кода не предусмотрено.
* **Ограниченные пулы, например Club и Team:** для входа в закрытые пулы нужно соответствовать определенным условиям.
* **Комиссии:** все комиссии пула, включая deposit, withdraw, receipt и pool fee, задаются контрактом и или API, а приложение только отображает их и проверяет достаточность баланса.

# Ошибки и пограничные ситуации

### Сумма меньше minStake

Для **депозитов** пул требует минимальную сумму стейка: `minStake` плюс комиссии депозита, то есть `depositFee` и `receiptPrice`. Если пользователь ввел сумму ниже этого порога, приложение показывает предупреждение под полем ввода с сообщением о минимальной сумме в TON и необходимости увеличить ввод.\
Кнопка подтверждения может оставаться доступной, но пул не примет депозит ниже минимума: транзакция может завершиться ошибкой или просто не будет зачислена.

### Недостаточно TON для комиссий `withdrawFee` / `receiptPrice`

Для **вывода** пул взимает комиссию. Если на балансе кошелька или в аккаунте пула недостаточно TON для оплаты этих комиссий, операция вывода не пройдет, либо пользователь увидит сообщение об ошибке или недостаточном балансе.\
Интерфейс показывает строку с размером комиссии перед выводом, чтобы пользователь мог оценить сумму к получению.\
**Рекомендация:** всегда держать небольшой резерв TON в кошельке и учитывать, что повторные действия по выводу, например в два этапа, могут потребовать двойную оплату комиссий — приложение резервирует эти суммы из доступного баланса, когда используется команда "Enter all" для депозитов.

### Стейк "исчез" с баланса и перешел в `pendingWithdraw`

После запроса на вывод сумма уходит из текущего стейка `balance` и переходит в `pendingWithdraw`. Это нормальное поведение: средства блокируются до окончания текущего стейкингового цикла, например до `proxyStakeUntil`. Пользователь видит их в разделе "Pending withdrawal" или аналогичном экране.\
**Что делать:** дождаться окончания цикла; после этого сумма появится в `withdraw`, то есть в статусе готовности к получению, и можно будет нажать "Claim", чтобы перевести TON на кошелек. Дополнительных действий не требуется.

### Недоступен API или индексер

Данные о статусе выборов, циклах и курсах для ликвидного стейкинга приходят из staking indexer и Tonhub API, например `staking/.../pool/liquid/info`. Если API или индексер временно недоступен, приложение может приблизительно показывать кэшированные данные или информацию из последнего успешного ответа контракта TON, например `get_params` и `get_member`.\
Некоторые поля могут быть временно недоступны или устареть: даты окончания цикла, APY, курсы ликвидного стейкинга. В таких случаях рекомендуется повторить попытку позже или обновить экран; критические операции, такие как пополнение и вывод, могут быть заблокированы или сопровождаться предупреждениями, если данных недостаточно.


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