AppKit: SDK для Mini Apps и dApp на TON в 2026
@ton/appkit — official SDK для frontend-разработки на TON: TON Connect, typed transactions, React-компоненты, DNS, DEX-котировки, стейкинг. Что внутри, как использовать.
- Автор
- TON Adoption Team · редакция
- Опубликовано
AppKit — это новый frontend-SDK от TON Foundation, опубликованный в составе TON Toolset в 2026 году. Он заменяет фрагментированный стек tonweb / ton-core / tonconnect-sdk единым высокоуровневым API для разработки Mini Apps и dApp.
Разберём, что внутри, как это упрощает работу и с чего начать.
Что входит в AppKit
Базовый пакет @ton/appkit содержит:
- TON Connect для подключения кошельков (под капотом — оригинальный tonconnect-sdk).
- Typed transaction builders — TypeScript-типизированные конструкторы транзакций вместо raw cells.
- Asset reads — баланс TON и jetton’ов одной строкой.
- DNS resolution — .ton/.t.me адреса → канонические адреса.
- DEX quotes — котировки STON.fi/DeDust прямо из SDK, без отдельных вызовов.
- Staking helpers — депозит/withdraw в Tonstakers и аналогах через готовые методы.
- Gas-station integration — gasless transfers через Battery и аналогичные провайдеры.
@ton/appkit-react поверх базового даёт:
<TonConnect />— готовый компонент подключения кошелька.<TonBalance />— отображение баланса.<TonTransfer />— кнопка с готовой логикой отправки.- Hooks —
useWallet(),useBalance(),useTransfer(),useDexQuote(). - Provider —
<AppKitProvider>для контекста.
Минимальный пример
Самый короткий Mini App с подключением кошелька и переводом:
import { AppKitProvider, TonConnect, useWallet, useTransfer } from '@ton/appkit-react';
function App() {
return (
<AppKitProvider manifestUrl="https://your-app.com/tonconnect-manifest.json">
<Header />
<SendForm />
</AppKitProvider>
);
}
function Header() {
return <TonConnect />;
}
function SendForm() {
const { isConnected, address } = useWallet();
const { send, isLoading } = useTransfer();
if (!isConnected) return <p>Connect wallet first</p>;
const onClick = async () => {
await send({
to: 'recipient.ton',
amount: '1.5 TON',
});
};
return <button onClick={onClick} disabled={isLoading}>Send 1.5 TON</button>;
}
Что здесь происходит:
<TonConnect />сам отрисовывает кнопку «Connect wallet» и handle’ит весь flow подключения.useWallet()отдаёт состояние подключения и адрес.useTransfer()даёт методsendс typed-параметрами:{to, amount}— никаких raw cells.'recipient.ton'AppKit сам резолвит в канонический адрес через DNS.'1.5 TON'AppKit парсит в nanoTON автоматически.
Это 20 строк вместо ~150-200 строк через старый стек (TonConnect провайдер + ручная cells сериализация + parsing адресов + amount math).
Typed transactions: главное преимущество
Раньше отправка transfer выглядела так (ton-core):
import { Address, beginCell, toNano } from '@ton/core';
const body = beginCell()
.storeUint(0, 32)
.storeStringTail(comment)
.endCell();
const tx = {
validUntil: Math.floor(Date.now() / 1000) + 60,
messages: [
{
address: Address.parse(to).toString(),
amount: toNano(amount).toString(),
payload: body.toBoc().toString('base64'),
},
],
};
await tonConnectUI.sendTransaction(tx);
В AppKit:
import { useTransfer } from '@ton/appkit-react';
const { send } = useTransfer();
await send({ to: 'friend.ton', amount: '1.5 TON', comment: 'Привет' });
Различие:
- Нет руками собранного cell для body.
- Нет преобразования адреса (DNS работает прямо).
- Нет toNano (AppKit парсит “1.5 TON”).
- Нет ручной сериализации в BoC + base64.
- Нет вычисления validUntil — AppKit ставит дефолт.
DEX-котировки одной строкой
import { useDexQuote } from '@ton/appkit-react';
const { quote } = useDexQuote({
from: 'TON',
to: 'USDT',
amount: '10 TON',
});
// quote: { expectedOutput: '21.42 USDT', priceImpact: 0.03, route: 'STON.fi' }
Под капотом — запросы к STON.fi и DeDust, выбор лучшего route. Не нужно дёргать отдельные API.
DNS-резолвинг
const { address } = useResolveDns('alice.ton');
// 'EQDxxx...'
Работает для .ton, .t.me (subdomain TG-пользователя через telegram-username-dns) и старых стилей через TON DNS contract.
Staking helpers
import { useStaking } from '@ton/appkit-react';
const { stake, unstake, balance, apy } = useStaking({ protocol: 'tonstakers' });
await stake({ amount: '10 TON' });
// stake → stTON в кошельке, отображается через useBalance.
Поддерживает Tonstakers, Hipo, Stakee. Каждый протокол реализован как plugin, можно добавить custom.
Сравнение размеров бандла
Я измерил тестовый Mini App, который делает: connect, balance, transfer, DEX quote.
| Стек | Bundle size (gzip) | Lines of code |
|---|---|---|
| Старый (ton-core + tonconnect-ui + custom helpers) | ~180 KB | ~250 |
| AppKit (@ton/appkit + @ton/appkit-react) | ~110 KB | ~30 |
Не критическая экономия, но заметная. Главный выигрыш — в LoC и поддерживаемости.
Когда брать AppKit, когда нет
Брать:
- Новый Mini App или dApp — однозначно AppKit.
- Существующий Mini App, активно развивается — миграция инкрементальная, 2-4 спринта.
- Хочется минимизировать boilerplate в frontend.
Не брать (пока):
- Очень нестандартные сценарии, где нужны low-level cells (тогда оставайтесь на ton-core).
- Древний код в режиме maintenance — не трогайте.
- Если ваш фреймворк не JS (Python, Go) — AppKit пока только TypeScript.
Что не покрыто
AppKit фокусируется на frontend. Не включает:
- Backend-операции (для приёма платежей — отдельный SDK TON Pay).
- Wallet-side TON Connect (для разработчиков кошельков — WalletKit).
- Indexing / analytics — для этого TonAPI v3 или DeFiLlama.
Что дальше
- Официальная документация: docs.ton.org/ecosystem/appkit/overview.
- GitHub: ton-connect/kit (общий монорепо для AppKit + WalletKit + MCP).
- NPM: @ton/appkit, @ton/appkit-react.
Если делаете Mini App в 2026 — начинайте с AppKit. Это самый низкий порог входа в TON-frontend за всё время существования экосистемы. Полный контекст Toolset — в нашем обзоре.
Частые вопросы
Что такое AppKit и зачем он нужен?
Чем AppKit отличается от tonconnect-ui?
Можно ли использовать AppKit без React?
Поддерживает ли AppKit gasless transfers?
Размер бандла большой?
Что с миграцией со старого стека?
Похожие материалы
- Новости28 мая 2026 г.
TON Toolset 2026: новый SDK-стек для разработчиков
Запуск TON Toolset: Acton, AppKit, WalletKit, TON Pay, MCP, Agentic Wallet — единый набор SDK от TON Foundation. Что внутри, для кого и с чего начать.
- Основы21 мая 2026 г.
SDK для TON: tonweb vs ton-core vs tonconnect-sdk — что выбрать в 2026
Сравнение TypeScript-SDK для TON в 2026: tonweb (легаси), @ton/ton + @ton/core (рекомендуемый), @tonconnect/sdk. Когда что выбирать и почему.
- Основы17 мая 2026 г.
TON Connect 2: что изменилось в протоколе подключения
Разбираем, чем TON Connect 2 отличается от первой версии, как устроен JSON-RPC, deep/universal links, bridge-сервера и поддержка multi-wallet picker. Обзор для пользователей и разработчиков.
- Гейминг и мини-аппы5 февр. 2026 г.
Мини-аппы Telegram: что это и как они работают на TON
Разбор мини-аппов Telegram в 2026 году — архитектура, связь с TON, цифры по аудитории, монетизация через Stars и TON Connect. Без хайпа, со ссылками.
- Основы16 мая 2026 г.
Газ-станции на TON: Battery, Gasless и W5
Как в TON отправляют USDT без TON в кошельке: Tonkeeper Battery, Gasless-флоу @wallet, спонсорские транзакции W5/V5 и сравнение с paymaster ERC-4337.