- Changelly — обмен через централизованный партнерский сервис Changelly.
- DeDust — swap через сайт DeDust.io во встроенном WebView с использованием TON Connect.
Общая схема доступа
- Экран “Exchange” / “Swap”: с главного экрана или из раздела продуктов пользователь может перейти к выбору способа обмена. При выборе “Exchanges” открывается экран выбора партнера: DeDust.io и Changelly.
- DeDust: по нажатию открывается фрагмент с WebView на https://tonhub.dedust.io/, где интеграция построена через TON Connect. Доступен только для обычных кошельков; если пользователь работает через Ledger, опция DeDust в списке обменов не показывается.
- Changelly: по нажатию открывается нативный сценарий обмена, то есть выбор валюты получения, затем валюты отправки, затем ввод суммы, создание ордера и экран ордера с адресом для депозита. Дополнительно приложение предоставляет виджет Changelly, который открывается на отдельном экране во WebView на widget.changelly.com. Changelly доступен и для обычных кошельков, и для Ledger.
Интеграция Changelly
Changelly — это партнерский сервис обмена криптовалют. Пользователь задает валютную пару, то есть что он отправляет и что хочет получить, а также сумму; затем получает адрес для депозита, и после поступления средств выполняется обмен в выбранную валюту. В Tonhub интеграция реализована через виджет, то есть страницу Changelly во WebView.Процесс обмена
- Через “Exchanges” → выбор “Changelly” → открывается отдельный экран с WebView на widget.changelly.com в режиме Swap, где пользователь сначала выбирает актив, который хочет получить.
- На экране Swap пользователь выбирает одну из валют: TON, USDT, то есть
usdton, SOL, USDC в сети Solana. После выбора открывается список валют отправки, то естьChangellyListFragment— перечень валют, которые Changelly поддерживает для обмена в выбранную валюту. Затем следует этап расчета, где вводится сумма, показывается оценка, комиссии и создается транзакция через backend Tonhub API. После создания пользователь переходит на экран ордера, то естьChangellyOrderFragment: там отображаются адрес депозита, сумма, курс и статус. Пользователь отправляет средства на указанный адрес, а приложение может периодически опрашивать статус ордера через resolve и показывать обновления. - Виджет: отдельный экран
ChangellyFragmentоткрывает https://widget.changelly.com с параметрами, напримерfromDefault: ton,toDefault: usdton,merchant_id,v: 3. Перед первым открытием пользователь принимает условия и политику Changelly, и этот флаг сохраняется локально. Виджет доступен только в mainnet; в testnet показывается сообщение, что сервис работает только в mainnet.
API и backend
Все запросы к Changelly идут через backend Tonhub, то есть connect.tonhubapi.com, а не напрямую к Changelly API:- GET
/changelly/currencies?currencyTo=— список валют, которые можно обменять на выбранную валюту, напримерUSD,SOL,USDC. В ответе возвращается массив валют с полями ticker, name, image, blockchain, network и другими. - POST
/changelly/estimate— оценка обмена. Тело запроса:{ toCurrency, fromCurrency, amount }. В ответе приходят сумма к получению, комиссии, курс и лимиты, то есть min и max. Приложение проверяет лимиты и показывает ошибку при их превышении, напримерChangellyLimitError. - POST
/changelly/transaction/create— создание обменного ордера. В теле передаютсяfromCurrency,toCurrency,network,amount,idempotencyKey,wallet, то есть адрес кошелька пользователя. В ответе возвращаются данные ордера:payinAddress,payoutAddress,amountExpectedFrom,amountExpectedTo,networkFee,statusи другие поля. После создания ордера в mainnet может дополнительно отправляться аналитическое событие, например в Maestra. - POST
/changelly/transaction/details— получение деталей ордера по идентификатору. - POST
/changelly/transaction/resolve— обновление и разрешение статуса ордера, например после того как пользователь отправил депозит. - POST
/changelly/transactions— список обменных транзакций пользователя, где в тело запроса передаются адрес и другие параметры.
expiresAt и статусы: new, waiting, confirming, exchanging, sending, finished, failed, refunded, hold, expired, overdue, resolved. После отправки средств приложение периодически обновляет статус и показывает результат при успешном завершении.
Интеграция DeDust
DeDust — это децентрализованная биржа, то есть DEX, и интерфейс для свопов в сети TON, включая обмен TON и токенов. В Tonhub интеграция реализована через открытие партнерской страницы DeDust во WebView с подстановкой параметров кошелька и использованием TON Connect для подписи транзакций. Вся логика swap, включая выбор пары, расчеты и отправку транзакций, выполняется на стороне сайта DeDust, а приложение лишь предоставляет кошелек и bridge.Доступ к DeDust
- Через “Exchanges” → выбор “DeDust.io” → открывается
DedustFragment. DeDust отображается в списке обменов только если кошелек не Ledger; при работе через Ledger опция скрыта. - Открывается страница https://tonhub.dedust.io/ с подставленными query-параметрами:
- address — текущий адрес TON-кошелька, bounceable или non-bounceable в зависимости от пользовательской настройки;
- utm_source, utm_content, ref —
tonhub,extension,tonhub; - lang — текущий язык приложения;
- currency — выбранная пользователем основная валюта для показа эквивалентов;
- themeStyle —
lightилиdarkв соответствии с темой приложения; - pushNotifications —
trueилиfalseв зависимости от разрешения на push-уведомления.
tonhubBridgeSource + injectionEngine: страница DeDust может вызывать connect, sendTransaction, signData и другие методы, а запросы обрабатываются приложением, где пользователь подтверждает операции в Tonhub. Благодаря этому swap выполняется на стороне DeDust, но подпись транзакций остается внутри Tonhub.
Юридические документы
При первом открытии DeDust показывается экран подтверждения условий, то естьConfirmLegal: с заголовком, описанием и ссылками на условия использования и политику конфиденциальности DeDust. После принятия флаг сохраняется локально, то есть по ключу skipLegalDeDust, и при следующих запусках WebView открывается сразу.
Полезные ссылки
Changelly- Виджет: https://widget.changelly.com
- Условия использования: https://changelly.com/terms-of-use
- Политика конфиденциальности: https://changelly.com/privacy-policy
- Отслеживание транзакций: https://changelly.com/track/
- Страница интеграции Tonhub: https://tonhub.dedust.io/
- Условия использования: https://tonhub.dedust.io/docs/term-of-use.pdf
- Политика конфиденциальности: https://tonhub.dedust.io/docs/privacy.pdf