Разработка мобильного мультичейн-кошелька (Ethereum, BSC, Polygon, Solana, TON)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильного мультичейн-кошелька (Ethereum, BSC, Polygon, Solana, TON)
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка мобильного мультичейн-кошелька (Ethereum, BSC, Polygon, Solana, TON)

Мультичейн-кошелёк — это не «несколько независимых кошельков в одном приложении». Это единая мнемоническая фраза, из которой деривируются ключи для всех поддерживаемых блокчейнов. Пользователь видит одну seed-фразу из 12 слов, за которой стоят адреса в пяти (или пятидесяти) разных сетях.

Деривация ключей для разных блокчейнов

Все поддерживаемые сети используют один BIP39 seed, но разные пути деривации BIP44:

Блокчейн Coin Type Путь деривации Алгоритм подписи
Ethereum 60 m/44'/60'/0'/0/0 secp256k1 (ECDSA)
BSC 60 m/44'/60'/0'/0/0 secp256k1 (ECDSA)
Polygon 60 m/44'/60'/0'/0/0 secp256k1 (ECDSA)
Solana 501 m/44'/501'/0'/0' ed25519
TON 607 m/44'/607'/0' ed25519

Ethereum, BSC и Polygon используют один и тот же адрес (одинаковый coin type 60 и путь) — разница только в chainId при подписании транзакций и в RPC endpoint. Это удобно для пользователя, но важно корректно управлять: при отправке нужно явно указывать сеть, иначе транзакция уйдёт не туда (и это невозвратимо).

Solana и TON используют ed25519 — другой эллиптический алгоритм, несовместимый с secp256k1. WalletCore от Trust Wallet поддерживает оба алгоритма и все перечисленные сети через единый интерфейс.

EVM-сети: Ethereum, BSC, Polygon

Один и тот же Ethereum-совместимый адрес, один и тот же приватный ключ — но разные сети, разные chainId:

  • Ethereum Mainnet: chainId = 1
  • BSC: chainId = 56
  • Polygon: chainId = 137

ChainId обязательно включается в подпись транзакции (EIP-155) — защита от replay-атак между сетями. Транзакция, подписанная для BSC, не пройдёт на Ethereum.

Для работы с EVM сетями: Web3j (Android), web3.swift (iOS), или ethers.js через JavaScriptCore/WebView если нужна максимальная кросс-платформенность JavaScript экосистемы. Для каждой сети — свой RPC провайдер:

val ethWeb3 = Web3j.build(HttpService("https://mainnet.infura.io/v3/YOUR_KEY"))
val bscWeb3 = Web3j.build(HttpService("https://bsc-dataseed.binance.org/"))
val polygonWeb3 = Web3j.build(HttpService("https://polygon-rpc.com"))

ERC-20 токены, NFT (ERC-721/1155) — работают одинаково на всех трёх сетях, разница только в RPC endpoint и адресах контрактов.

Solana: другая парадигма

Solana принципиально отличается от EVM-сетей архитектурно. Нет стандарта ERC-20 — есть SPL Token Program. Адреса — base58-encoded публичные ключи ed25519.

Подключение через Solana Mobile Adapter на Android или напрямую через JSON-RPC к ноде (mainnet-beta.solana.com). Для работы с токенами нужно понимать концепцию Associated Token Accounts (ATA) — у каждого токена на кошельке есть отдельный аккаунт, который нужно создать перед первым получением токена (rent-exempt lamports).

// Solana4J или сторонний Kotlin SDK
val connection = RpcClient("https://api.mainnet-beta.solana.com")
val balance = connection.getBalance(publicKey)

// Для SPL-токенов — находим ATA и читаем balance через getTokenAccountBalance
val tokenAccounts = connection.getTokenAccountsByOwner(
    owner = publicKey,
    filter = TokenAccountsFilter.byProgramId(TOKEN_PROGRAM_ID)
)

Комиссии в Solana фиксированные и крошечные (0.000005 SOL за базовую транзакцию) — не нужно выбирать gas price, что упрощает UX.

TON: JetBrains Kotlin + специфика блокчейна

TON (The Open Network) — блокчейн с уникальной архитектурой: умные контракты в виде акторов с собственным стеком, адреса в формате 0:... (raw) или user-friendly (EQ..., UQ...). Jetton — стандарт для токенов (аналог ERC-20).

TON SDK для Kotlin: ton-kotlin от tonapps, или официальный ton-blockchain/ton-kotlin. Для iOS — swift-ton или работа через JavaScriptCore с ton.js.

Особенность: для совместимости с Telegram Mini Apps и TonConnect 2.0 нужна интеграция TonConnect протокола — стандарт подключения dApps к TON кошелькам, аналог WalletConnect для EVM.

// TonConnect Swift SDK
let connector = TonConnect(manifestUrl: URL(string: "https://your-app.com/tonconnect-manifest.json")!)
connector.connect { result in
    // пользователь подключился через TonConnect
}

Мультисеть UI/UX: критические решения

Переключение сетей. Чёткий визуальный индикатор текущей сети на главном экране — обязательно. Ошибка «отправил USDT на BSC-адрес вместо Ethereum» стоит пользователям реальных денег. Confirmation dialog при отправке: «Вы отправляете X USDT в сети BSC на адрес 0x...».

EVM-сети — один адрес. Пользователю не нужно знать, что его ETH и BNB-адрес одинаков. Но нужно понимать, что балансы разные: ETH на Ethereum-сети ≠ ETH (если его там нет) на BSC.

Bridging. Перевод активов между сетями через мосты (Stargate, Across, официальный Polygon Bridge) — частый запрос. Интеграция через SDK или iframe WebView с разрешёнными URL. Это сложная и рискованная область (мосты регулярно взламывают) — предупреждение пользователю обязательно.

Цены и обменные курсы

Балансы в нативных токенах малоинформативны без USD-конвертации. CoinGecko API — бесплатный до определённого лимита, покрывает все основные токены. DeFiLlama — альтернатива. CoinMarketCap — платный, но более надёжный для production.

Кэшировать цены на сервере с TTL 60 секунд — не гонять запросы с каждого клиента напрямую к внешнему API.

Безопасность на уровне мультичейн

Основные угрозы, специфичные для мультичейн:

Address poisoning. Атака: злоумышленник отправляет 0 токенов с адреса, похожего на часто используемый контакт (совпадают первые и последние 4 символа). Пользователь копирует адрес из истории — и отправляет на мошеннический адрес. Защита: предупреждение при выборе адреса из истории, полное отображение адреса без сокращения в финальном экране подтверждения.

Contract interaction. При взаимодействии с dApps через WalletConnect приложение должно декодировать и отображать calldata понятно: не 0xa9059cbb000000000..., а «Перевод 100 USDC на адрес 0x1234...». Для стандартных ABI это решаемо через ABI декодирование.

Нулевые апрувы ERC-20. После взаимодействия с DeFi протоколами у многих токенов остаются approve с максимальной суммой (uint256.max). Функция «Управление апрувами» в кошельке — хорошая практика.

Стек и инструменты

  • Кросс-платформа: Trust WalletCore (C++ библиотека, bindings для iOS/Android) — единая реализация криптографии
  • EVM RPC: Web3j (Android), web3.swift (iOS), ethers.js через JSC
  • Solana: sol4k (Kotlin), solana-swift (iOS)
  • TON: ton-kotlin, swift-ton
  • WalletConnect: официальные iOS/Android SDK v2
  • TonConnect: @tonconnect/sdk

Если проект на Flutter — wallet_core flutter bindings + web3dart + solana_dart + ton_dart. Экосистема менее зрелая, чем нативная, но покрывает основные кейсы.

Сроки

Базовый мультичейн кошелёк с EVM (ETH/BSC/Polygon) + Solana + TON, балансами, отправкой/получением, историей транзакций, WalletConnect и TonConnect — 2–4 месяца для нативного iOS+Android. Добавление swap через агрегаторы (1inch для EVM, Jupiter для Solana) — ещё 3–4 недели. Стоимость рассчитывается после детальных требований: какие сети, какие DeFi интеграции, нужен ли фиат on/off-ramp.