Что такое стейкинг в контексте Tonhub
Стейкинг — это делегирование монет TON в пул, который участвует в выборах валидаторов и получает награды за работу сети. Пользователь не запускает ноду сам: он отправляет TON в смарт-контракт пула и становится номинатором этого пула. Пулы, доступные в Tonhub, принадлежат Ton Whales.В приложении пользователь может:
- Пополнить стейк (deposit): отправить TON на адрес пула; сумма будет зачислена в аккаунт участника пула и начнет участвовать в следующем стейкинговом цикле. Инструкция по пополнению.
- Запросить вывод (withdraw): инициировать полный или частичный вывод средств из пула. Инструкция по выводу.
- Просматривать баланс: текущий стейк
balance, средства в ожидании пополненияpendingDeposit, средства в ожидании выводаpendingWithdrawи сумму, уже готовую к получениюwithdraw. - Рассчитывать доходность: использовать встроенный калькулятор доходности в кошельке.
Fees, посвященном TON-стейкингу.
Как реализован стейкинг: пулы и данные
Доступные пулы
Список пулов, которые отображаются в Tonhub и с которыми он работает, определен в приложении черезKnownPools и связан с адресами контрактов в mainnet и testnet. Примеры:
- Nominators 1 / Nominators 2 — пулы номинаторов TON Whales, открытые для всех.
- Team 1 / Team 2 — командные пулы с возможными ограничениями по доступу.
- Club 1 / Club 2 — клубные пулы с ограниченным доступом; для вступления используется ссылка tonwhales.com/club.
- Tonkeeper 1 / Tonkeeper 2 — партнерские пулы Tonkeeper.
- Whales Liquid — ликвидный стейкинг через обертку wsTON.
- USDe Liquid — стейкинг USDe (Ethena), который включается конфигом приложения
features.ethena.
Параметры пула
Параметры каждого пула запрашиваются напрямую из смарт-контракта TON через методget_params. Ответ включает:
- enabled — включен ли прием депозитов;
- minStake — минимальная сумма депозита;
- depositFee — комиссия за пополнение в nano-TON;
- withdrawFee — комиссия за вывод;
- receiptPrice — стоимость “receipt”, то есть учетной единицы для операций;
- poolFee — комиссия пула, то есть доля наград в процентах или базовых единицах, в зависимости от контракта.
withdrawFee и receiptPrice.
Состояние участника
Для каждого пула и адреса кошелька приложение запрашивает состояние участника через вызовget_member, куда передается адрес номинатора. Возвращаются:
- balance — текущий застейканный баланс;
- pendingDeposit — сумма, ожидающая зачисления в стейк;
- pendingWithdraw — сумма, ожидающая вывода и заблокированная до конца цикла;
- withdraw — сумма, готовая к выводу на кошелек после разблокировки.
TonClient4, getLastBlock и runMethod; для ликвидного пула и USDe используются отдельные API и контракты.
Статус сети и выборы
Чтобы показывать текущие стейкинговые циклы и сроки разблокировки, приложение использует сетевой staking status: время выборов, минимальный и максимальный стейк, список валидаторов и другие данные. Эти данные запрашиваются из staking indexer или, если он недоступен, через резервныйfetchStakingStatusV4 с использованием данных TON, включая конфигурацию выборов и electors. Благодаря этому приложение знает, когда заканчивается текущий цикл, например proxyStakeUntil, и когда пользователь сможет вывести средства.
Операции: пополнение и вывод
Пополнение (deposit / top up)
Пользователь вводит сумму в TON и подтверждает перевод. Приложение создает обычную исходящую транзакцию в TON: получатель — адрес пула, сумма — введенное значение, без отдельного вызова контракта, поскольку пул принимает входящий перевод. После включения транзакции в блок пул зачисляет средства на аккаунт участника; они отображаются какbalance и или pendingDeposit в зависимости от фазы цикла. Инструкция по пополнению.
Вывод (withdraw)
Пользователь инициирует вывод: приложение отправляет сообщение на вывод, либо эквивалентный вызов по протоколу конкретного пула, с указанной суммой. Пулы TON Whales взимают withdrawFee и receiptPrice, поэтому пользователь должен иметь достаточный баланс с учетом этих комиссий. После обработки запроса сумма переходит в состояние “ожидает вывода”, то естьpendingWithdraw, а после окончания блокировки — в withdraw, что означает готовность к получению. Затем пользователь выполняет финальное действие “claim”, и TON отправляются на его кошелек. Инструкция по выводу.Интерфейс показывает комиссию пула, то есть
withdraw fee + receipt, перед выводом, чтобы пользователь видел итоговую сумму к получению.
Ликвидный стейкинг (Whales Liquid, wsTON)
Ликвидный стейкинг в 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учитываются в интерфейсе.
rateWithdraw. APY и комиссия пула poolFee отображаются в карточке Whales Liquid, когда данные доступны из API и useStakingApy.
USDe Liquid (Ethena)
Когда включена функция Ethena, то есть в конфиге приложения активированfeatures.ethena, в списке пулов появляется USDe Liquid — стейкинг стейблкоина USDe. Пул связан с контрактом Ethena, не принадлежащим Ton Whales, например tsMinter и другими связанными контрактами. Механика в приложении похожа на ликвидный стейкинг: пользователь взаимодействует с контрактом через специальные сообщения, а данные для отображения, такие как баланс и комиссии, подтягиваются из API и контракта в зависимости от реализации. Пул добавлен в кошелек по соглашению с Ethena.
Ограничения и особенности стейкинга в Tonhub
- Только TON: стейкинг в Tonhub работает только в сети TON, как в mainnet, так и в testnet. Solana в стейкинге не участвует.
- Пулы Whales: приложение рассчитано на Whales и партнерские пулы, такие как 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, курсы ликвидного стейкинга. В таких случаях рекомендуется повторить попытку позже или обновить экран; критические операции, такие как пополнение и вывод, могут быть заблокированы или сопровождаться предупреждениями, если данных недостаточно.