К основному содержанию
T TON Adoption
Новости TOOLSET · 2026

WalletKit: SDK для разработчиков TON-кошельков в 2026

@ton/walletkit — официальный SDK для создания TON-кошельков: TON Connect со стороны кошелька, asset reads, gasless transfers, мульти-кошелёк, cross-platform.

Автор
TON Adoption Team · редакция
Опубликовано
3 мин. чтения

WalletKit — это nижний уровень того же стека, что и AppKit, но для тех, кто строит кошелёк, а не подключается к чужому. Это часть TON Toolset 2026.

Если вы — разработчик нового кошелька (custodial или non-custodial), Mini App’а с собственным wallet’ом или просто компоненты управления крипто-активами — это базовый набор инструментов.

Что входит

@ton/walletkit содержит:

  • TON Connect server-side — полная реализация со стороны кошелька (приём запросов от dApp, отображение, подпись, ответ).
  • Asset management — чтение балансов TON, jetton’ов, NFT.
  • Transfer building — формирование исходящих транзакций с typed-параметрами.
  • Gasless transfer flows — интеграция с gas-station provider’ами.
  • Multi-wallet management — управление множеством кошельков (накапливаемые ключи) в одном app.
  • Cross-platform core — единая логика для web, iOS, Android, browser extensions.

Когда брать WalletKit

Подходит:

  • Вы делаете новый кошелёк с нуля (Antarctic, Bitget Wallet) или Mini App-кошелёк.
  • У вас существующий кошелёк, но устаревший TonConnect-стек, и время на миграцию есть.
  • Вы делаете кошелёк, который хочет быть cross-platform изначально.

Не подходит:

  • Существующий зрелый кошелёк (Tonkeeper, MyTonWallet) — миграция кост-нерациональна. Используют собственные имплементации годами.
  • Чисто frontend-сценарии без custody — берите AppKit.

TON Connect со стороны кошелька

В отличие от AppKit (где <TonConnect /> — кнопка для подключения), WalletKit предоставляет server-side обработку запросов от dApp:

import { WalletKit } from '@ton/walletkit';

const wallet = new WalletKit({
  network: 'mainnet',
  walletAddress: userAddress,
  signTransaction: async (tx) => {
    // ваша логика: показать пользователю детали, подписать ключом
    return signedTx;
  },
});

// Принять запрос от dApp:
const request = await wallet.tonConnect.acceptRequest(rawRequest);
// request.type === 'tonProof' | 'transaction' | 'signData'

Это стандартизованный flow вместо самописного парсинга TonConnect-пакетов.

Gasless transfers

Когда dApp запрашивает gasless transfer (через Wallet-V5 extension), WalletKit handle’ит:

  1. Проверку, что fee-payer контракт доступен и имеет баланс.
  2. Формирование “outer” транзакции с правильными flags.
  3. Подпись и отправку через gas-station provider.
  4. Возврат хеша транзакции в dApp.

Для пользователя — это бесплатный transfer; для кошелька — это пара строк кода вместо нескольких сот строк ручной интеграции с Battery.

Multi-wallet

Современные TON-кошельки часто держат несколько кошельков под одним app (рабочий + personal + savings). WalletKit стандартизует:

const wallets = await walletKit.listWallets(userSeed);
// [{ address, version: 'v4r2', label: 'Main', balance: '15.3 TON' }, ...]

const tx = await walletKit.send({
  from: wallets[0].address,
  to: 'recipient.ton',
  amount: '5 TON',
});

Также включает helpers для импорта (24-word seed, watch-only address) и rotation (восстановление с новым seed).

Cross-platform

@ton/walletkit сам по себе platform-agnostic. Для конкретной платформы используются адаптеры:

  • @ton/walletkit-web — для browser/PWA.
  • @ton/walletkit-react-native — для iOS/Android через React Native.
  • @ton/walletkit-extension — для browser extensions (Chrome, Firefox).

Каждый адаптер handle’ит platform-specific вещи: secure storage (Keychain/Keystore vs IndexedDB), network requests (через native fetch vs ServiceWorker), биометрия (Face ID, fingerprint).

Общая бизнес-логика остаётся одной. Это сокращает codebase кошелька на 30-50% по сравнению с per-platform реализацией.

Lifecycle событий

WalletKit emit’ит события для UI:

walletKit.on('balance:change', ({ address, newBalance, delta }) => {
  // обновить UI, показать notification
});

walletKit.on('tx:received', ({ from, amount, comment }) => {
  // показать toast
});

walletKit.on('connection:accepted', ({ dappName, dappUrl }) => {
  // логи + UI
});

Безопасность

WalletKit не хранит и не передаёт seed-фразу. Подпись делается через callback signTransaction, который вы реализуете локально. Это значит:

  • Seed остаётся в secure storage платформы.
  • WalletKit видит только публичную часть.
  • Вся сетевая активность — публичные операции (read balance, send signed tx).

Это правильный design для self-custody — пользователь полностью контролирует ключи.

Сравнение с альтернативами

ПодходВремя до prodCross-platformПоддержка
WalletKit (новый)2-3 месяцаИз коробкиTON Foundation
Tonweb + ручные TonConnect6-12 месяцевPer-platform codeCommunity
Fork существующего кошелька1-2 месяцаЗависит от форкаНикакой
Кастомная реализация9-18 месяцевPer-platformТолько своя

WalletKit выигрывает на time-to-market и на cross-platform parity. Кастом — только если у вас особые требования (regulatory, integrations с конкретной аппаратурой).

Что дальше

Делаете кошелёк или Mini App с собственным wallet’ом — WalletKit ваш friend. Если делаете frontend, подключающийся к чужому кошельку — берите AppKit.

Полный контекст Toolset — в обзоре от TON Foundation.

Частые вопросы

AppKit — для тех, кто **подключается** к кошельку (Mini Apps, dApp). WalletKit — для тех, кто **делает** кошелёк. То есть AppKit отправляет запрос на подпись через TON Connect, WalletKit принимает его, обрабатывает, показывает пользователю и возвращает подпись. Это две стороны одного протокола.
В момент релиза WalletKit находится в стадии адаптации основными кошельками. Целевая аудитория — новые кошельки (Antarctic, Bitget Wallet) и крупные Mini Apps с собственным кошельком (Wallet в Telegram). Tonkeeper и MyTonWallet до перехода имеют собственные реализации TON Connect — миграция возможна, но не обязательна.
Да, через специальные адаптеры для Ledger и Trezor. WalletKit не заменяет hardware-firmware (это делают Ledger Live и аналоги), но даёт стандартизированный интерфейс к подписи через hardware. Это удобно для кошельков, которые хотят добавить hardware-режим без полной с-нуля реализации.
Да. WalletKit спроектирован cross-platform: одна codebase работает на web, iOS, Android, browser extensions. Под капотом — общий core с platform-specific адаптерами (для signing, storage, network). Это сокращает разработку для кошельков, которые хотят выйти сразу на все платформы.
WalletKit нативно поддерживает gasless flow через gas-station providers (Battery, кастомные). Когда dApp посылает запрос на gasless transfer, WalletKit handle'ит проверку лимита, инициирование fee-payer операции и финализацию. Подробнее — [gas-станции на TON](/blog/gas-stantsii-na-ton-battery-i-gasless-2026/).
Open source (MIT-style), как и остальной Toolset. Это значит, что любой может взять WalletKit и сделать на нём кошелёк — коммерческий или нет, без лицензионных платежей. TON Foundation поощряет community-кошельки.

Похожие материалы