DEX на TON: как устроены Ston.fi и DeDust
Сравнишь архитектуру Ston.fi и DeDust: роутеры, vaults, пулы и как строить интеграцию без хардкода адресов.
DEX на TON
DEX (decentralized exchange) на TON — это набор смарт-контрактов, которые меняют один актив на другой по формуле пула, без централизованного ордербука. Два основных протокола — Ston.fi и DeDust.
Оба — AMM (automated market maker): цена определяется резервами в пуле, а не заявками покупателей и продавцов.
Общая схема AMM на TON
- Пользователь отправляет offer-актив (Gram или jetton).
- Контракт протокола принимает депозит и считает выход по формуле пула.
- Пользователь получает ask-актив, если
minAskне нарушен (slippage).
На TON нет атомарных multi-call в одном транзакционном «батче» как на EVM: сложные операции раскладываются в цепочку сообщений между контрактами.
Ston.fi: Router + pTON
Ston.fi строится вокруг Router — точки входа для свопов. Нативный Gram оборачивается в pTON (историческое имя proxy-актива), чтобы пулы работали единообразно с jetton.
Ключевой паттерн Ston.fi: API диктует, какой router использовать. Хардкод адреса router ломается при апгрейдах протокола.
DeDust: Factory + Vault + Pool
DeDust разделяет роли жёстче:
| Контракт | Роль |
|---|---|
| Factory | Находит Vault и Pool по паре активов |
| Vault | Принимает депозит конкретного актива |
| Pool | Хранит резервы и выпускает LP-токены |
| Liquidity Deposit | Временный контракт на время двухактивного депозита |
Ликвидность в DeDust вносится двумя отдельными депозитами в Vault A и Vault B — из‑за ограничений асинхронной модели сообщений TON.
Чем отличаются при интеграции
| Ston.fi | DeDust | |
|---|---|---|
| Точка входа | Router (из API simulation) | Factory → Vault / Pool |
| Нативный Gram | pTON | Native Vault |
| Своп в приложении | simulateSwap → getSwap*TxParams | Vault / Pool методы SDK |
| Ликвидность | Router / vault API протокола | Два депозита + Liquidity Deposit |
| Данные off-chain | api.ston.fi | DeDust API + on-chain get-методы |
Выбор протокола — продуктовый: оба дают AMM-свопы. Для интеграции важнее не «кто лучше», а не хардкодить адреса и всегда считать minAsk / targetBalances из актуального состояния пула.
Частые ошибки
Хардкод router / factory из старого туториала → бери адрес из API (Ston.fi) или константы текущей версии SDK (DeDust) и проверяй сеть (mainnet ≠ testnet).
Путаешь decimals → Gram и большинство jetton — 9 decimals, jUSDT — 6. Всегда читай decimals из метаданных актива.
Игнорируешь slippage → без minAsk / защиты от проскальзывания своп может исполниться по худшей цене при движении резервов между симуляцией и подтверждением в кошельке.
Что дальше
- Своп токенов через Ston.fi API — полный цикл simulate → build → send
- Добавление ликвидности в пул DeDust — два депозита и LP-токены
- Оракулы цен на TON — откуда брать цену вне AMM-резервов
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация