Розробка мобільного HD-гаманця (BIP-39/BIP-44)

Розробка мобільного HD-гаманця (BIP-39/BIP-44) Ми часто бачимо, як команди намагаються реалізувати HD-гаманець, просто згенерувавши seed-фразу з бібліотеки й отримавши адресу, але при перенесенні фрази в MetaMask або Trust Wallet адреси не збігаються. Причина — ігнорування стандартів деривації (B

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мобільного HD-гаманця (BIP-39/BIP-44)
Складний
від 1 тижня до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Розробка мобільного HD-гаманця (BIP-39/BIP-44)

Ми часто бачимо, як команди намагаються реалізувати HD-гаманець, просто згенерувавши seed-фразу з бібліотеки й отримавши адресу, але при перенесенні фрази в MetaMask або Trust Wallet адреси не збігаються. Причина — ігнорування стандартів деривації (BIP-44) і відмінностей у кривих (secp256k1 vs Ed25519). У цій статті розберемо, як уникнути таких помилок і побудувати сумісний гаманець.

Як забезпечити сумісність HD-гаманця з MetaMask і Ledger?

Сумісність досягається точним дотриманням BIP-44 шляхів і використанням перевірених криптобібліотек. Наприклад, WalletCore (від Trust Wallet) підтримує 60+ монет і коректно обробляє hardened derivation для Ed25519. Починаємо з аудиту вимог: які монети, чи потрібна сумісність з конкретним гаманцем. Потім обираємо бібліотеку: WalletCore для iOS/Android або noble-curves + поліфіли для React Native. Ентропія генерується апаратно: SecRandomCopyBytes (iOS) або SecureRandom (Android).

Чому готові бібліотеки не вирішують усіх проблем?

Проблема 1: BigInt і нативні модулі

У React Native старі версії Hermes не підтримують BigInt. Бібліотека @scure/bip32 (noble-curves) вимагає його, і додаток падає з ReferenceError: BigInt is not defined. Рішення — явний поліфіл або перехід на react-native-quick-crypto з нативним модулем.

Проблема 2: Різниця кривих

BIP-32/44 спочатку писалися для secp256k1 (Bitcoin, Ethereum). Solana використовує Ed25519 і SLIP-0010 деривацію, де всі шляхи hardened. Якщо змішувати криві без урахування цього, адреси будуть невірними. WalletCore обробляє це коректно.

Проблема 3: Тестування сумісності

Вектори з BIP-39 та BIP-32 специфікацій — обов'язкова частина тест-сьюту. Якщо ваш mnemonicToSeed("abandon abandon ... about") видає не c55257... — у PBKDF2 баг. BIP-39 визначає тестові вектори для всіх kdf параметрів.

Як реалізувати HD-гаманець за 5 кроків?

  1. Аудит вимог: визначити монети, цільову платформу (iOS/Android/Flutter/RN) та необхідну сумісність з іншими гаманцями.
  2. Вибір бібліотеки: WalletCore (нативний або через Flutter/RN мости) або noble-curves з поліфілом BigInt.
  3. Генерація seed: апаратна ентропія з Secure Enclave/StrongBox, мнемоніка створюється за BIP-39.
  4. Деривація ключів: за BIP-44 для secp256k1 або SLIP-0010 для Ed25519, усі hardened шляхи.
  5. Тестування: юніт-тести на офіційні вектори та інтеграційні тести відновлення адрес.

Як ми будуємо реалізацію, що гарантує сумісність?

Структура гаманця в пам'яті:

HDWallet ├── mnemonic: String (тільки в пам'яті, ніколи в UserDefaults) ├── seed: Data (512 біт, ephemeral) └── accounts: [CoinType: [HDAccount]] ├── ETH: account 0 → m/44'/60'/0' ├── BTC: account 0 → m/44'/0'/0' └── SOL: account 0 → m/44'/501'/0'/0' 

Приватні ключі — у Secure Enclave (iOS) або StrongBox (Android). Seed та мнемоніка знищуються через Data.resetBytes / Arrays.fill(). Для мультиакаунту фіксуємо вибір account' або address_index у ТЗ.

Таблиця порівняння підходів:

Параметр WalletCore noble-curves + поліфіли bitcoinj
Підтримка Ed25519 Так Так Ні
Кількість монет 60+ 3–5 вручну Bitcoin only
Нативна продуктивність C++/JNI JavaScript Java
Сумісність MetaMask, Ledger Залежить від бібліотеки Bitcoin Core

WalletCore забезпечує сумісність з 60+ монетами, тоді як noble-curves вимагає ручної реалізації для кожної, що у 5 разів збільшує час розробки.

Порівняння термінів по платформах:

Платформа Один блокчейн Мультичейн (5 монет) Аудит безпеки
iOS (Swift) 1-2 тижні 4-6 тижнів +2 тижні
Android (Kotlin) 1-2 тижні 4-6 тижнів +2-3 тижні
React Native 1-2 тижні 3-5 тижнів +1-2 тижні

Типові помилки при реалізації

  • Зберігання seed-фрази в SharedPreferences/UserDefaults — грубе порушення безпеки. Використовуйте Secure Enclave/StrongBox.
  • Ігнорування hardened derivation — при normal derivation витік child private key призводить до відновлення parent ключа.
  • Змішування BIP-44 та SLIP-0010 — для Ed25519 всі шляхи hardened, для secp256k1 — mixed.

Що входить у нашу роботу

  • Аудит вимог та вибір криптобібліотеки.
  • Реалізація генерації та відновлення seed-фрази (BIP-39).
  • Деривація ключів за BIP-44 та SLIP-0010.
  • Інтеграція з Secure Enclave/StrongBox.
  • Написання unit-тестів на офіційні вектори.
  • Тестування сумісності з гаманцями (MetaMask, Trust Wallet, Ledger).
  • Деплой в App Store/Google Play та документація.

Готові оцінити ваш проєкт? Зв'яжіться з нами — ми допоможемо реалізувати HD-гаманець під ключ з гарантією сумісності та безпеки.

Докладніше про стандарти: BIP-39 та BIP-44.