Користувач встановлює окремі гаманці для Ethereum, Solana та TON — ключі розкидані, seed-фрази плутаються. Втрата доступу до одного з гаманців призводить до безповоротної втрати активів. Мультичейн-гаманець (Ethereum, BSC, Polygon, Solana, TON) з єдиною seed-фразою за BIP39 та деривацією BIP44 вирішує цю проблему. Ми реалізуємо таке рішення на нативному iOS/Android або Flutter, з підтримкою всіх перерахованих мереж. Наші інженери мають понад 5 років досвіду в розробці криптогаманців, успішно проведено понад 10 проєктів у сторах. Гарантуємо проходження App Store та Google Play Review.
Як деривуються ключі для різних блокчейнів?
Всі підтримувані мережі використовують один 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. Бібліотека Trust WalletCore підтримує обидва алгоритми через єдиний інтерфейс, що спрощує розробку.
Чому EVM-мережі мають спільну адресу?
Одна й та сама адреса, один і той самий приватний ключ, але різні мережі — різні chainId (Ethereum Mainnet: 1, BSC: 56, Polygon: 137). ChainId обов'язково включається в підпис транзакції (EIP-155) — це захищає від replay-атак між мережами. Для роботи з EVM мережами використовуємо Web3j (Android), web3.swift (iOS) або ethers.js через JavaScriptCore/WebView для крос-платформенності. Для кожної мережі — свій 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 та адресах контрактів.
Не-EVM блокчейни: Solana та TON
Solana принципово відрізняється від EVM. Немає ERC-20 — є SPL Token Program. Адреси — base58-encoded публічні ключі ed25519. Підключаємося через Solana Mobile Adapter на Android або безпосередньо до ноди. Для роботи з токенами потрібно створити Associated Token Account (ATA) — у кожного токена на гаманці окремий аккаунт, що вимагає rent-exempt lamports.
val connection = RpcClient("https://api.mainnet-beta.solana.com") val balance = connection.getBalance(publicKey) val tokenAccounts = connection.getTokenAccountsByOwner( owner = publicKey, filter = TokenAccountsFilter.byProgramId(TOKEN_PROGRAM_ID) ) Комісії в Solana фіксовані та крихітні (0.000005 SOL за базову транзакцію) — не потрібно вибирати gas price, що спрощує UX.
TON використовує унікальну архітектуру акторів зі смарт-контрактами на власному стеку. Адреси бувають raw (0:...) та user-friendly (EQ..., UQ...). Jetton — стандарт токенів. Для Kotlin використовуємо ton-kotlin, для iOS — swift-ton або JavaScriptCore з ton.js. Обов'язкова інтеграція TonConnect 2.0 для сумісності з Telegram Mini Apps.
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 на Ethereum ≠ ETH на BSC. Bridging частий запит — інтеграція через SDK або iframe WebView з попередженням про ризики.
Баланси в нативних токенах малоінформативні без USD-конвертації. CoinGecko API — безкоштовний до ліміту, покриває всі основні токени. DeFiLlama — альтернатива. CoinMarketCap — платний, але надійніший. Кешуємо ціни на сервері з TTL 60 секунд.
Як забезпечити безпеку мультичейн-гаманця
Trust WalletCore знижує кількість помилок підпису в 2–3 рази порівняно з ручною реалізацією криптографії. Seed-фраза зберігається тільки в Keychain/Keystore, ніколи не передається по мережі. Кожна транзакція підписується локально. Основні загрози: address poisoning (атака зі схожими адресами), contract interaction (декодування calldata), нульові апруви ERC-20 після DeFi. Впроваджуємо управління апрувами в інтерфейсі.
Стек та інструменти
- Крос-платформа: Trust WalletCore (C++ bindings для iOS/Android).
- EVM RPC: Web3j, web3.swift, ethers.js.
- Solana: sol4k, solana-swift.
- TON: ton-kotlin, swift-ton.
- WalletConnect: офіційні SDK v2.
- TonConnect: @tonconnect/sdk.
- Flutter: wallet_core, web3dart, solana_dart, ton_dart.
Завдяки використанню Trust WalletCore та готових бібліотек ми скорочуємо час розробки на 30–40% порівняно з написанням кожної мережі з нуля. Це дозволяє заощадити бюджет без втрати якості.
Порівняння нативного та Flutter-підходу
| Параметр | Нативний (iOS+Android) | Flutter |
|---|---|---|
| Бібліотеки | Trust WalletCore, native SDKs | wallet_core bindings |
| Продуктивність | Висока | Висока (але native чутливіший для анімацій) |
| Термін розробки | 3-4 місяці | 2.5-3.5 місяці |
| Підтримка TON | ton-kotlin, swift-ton | ton_dart (менш зрілий) |
Процес розробки та терміни
- Аналітика: ваші вимоги, вибір стеку, прототипування UI/UX.
- Архітектура: схема деривації, інтеграція RPC, налаштування WalletConnect/TonConnect.
- Реалізація: написання коду, підключення бібліотек, юніт-тести.
- Тестування: TestFlight/Google Play бета, налагодження транзакцій, перевірка безпеки.
- Деплой: публікація в App Store та Google Play, моніторинг.
Базова версія (ETH/BSC/Polygon + Solana + TON, баланси, відправлення, історія, WalletConnect та TonConnect) займає 3–4 місяці для нативної розробки iOS+Android. Додавання swap через агрегатори — ще 3–4 тижні. Вартість розраховується індивідуально після аналізу вимог.
Що входить у розробку
- Архітектурна документація та схеми деривації ключів.
- Доступи до TestFlight та Google Play Console для тестування.
- Вихідний код з коментарями та налаштований CI/CD.
- Інтеграція WalletConnect v2 та TonConnect 2.0.
- Підтримка протягом 30 днів після публікації.
Замовте розробку мультичейн-гаманця з гарантією проходження App Store та Google Play Review. Отримайте консультацію — зв'яжіться з нами для обговорення вашого проєкту. Ми безкоштовно оцінимо вартість вашого проєкту протягом одного робочого дня.







