Мультичейн-гаманець (Ethereum, BSC, Polygon, Solana, TON)

Коли додаток працює з кількома мережами, транзакції зависають, а ключі зберігаються в різних місцях — втрачаються гроші та час. Ми розробляємо мультичейн-гаманець під ключ: єдина логіка для Ethereum, BSC, Polygon, Solana і TON, прозорі політики доступу та управління ключами. Зменшуємо частку завислих транзакцій і час на підтримку.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Мультичейн-гаманець (Ethereum, BSC, Polygon, Solana, TON)
Складний
від 2 тижнів до 3 місяців
Часті запитання

Мультичейн гаманець: де ламається логіка при зростанні мереж

Мультичейн гаманець ламається не на першій мережі, а на третій-четвертій. Поки підтримується один ланцюжок, логіка підпису, обліку балансів і відстеження транзакцій живе в одному місці й працює передбачувано.

Щойно додаються Ethereum, BSC, Polygon, Solana і TON, кожна мережа приносить свої правила: різний формат адрес, свою модель комісій, свій момент фінальності транзакції. І тоді починають спливати збої, які на тестах в одній мережі просто не відтворюються.

Перший і найпомітніший — розсинхрон балансів. Гаманець показує залишок по одній мережі, а списання проходить по іншій; після відправки токенів інтерфейс ще якийсь час тримає стару суму, бо оновлення по мережах надходить з різною затримкою.

Користувач бачить «неправильний» баланс і або повторює операцію, або втрачає довіру до застосунку. Причина — не одна спільна шина даних, а розрізнені запити до кожної мережі без єдиної точки узгодження стану.

Другий клас відмов — завислі транзакції. У мережах з різним навантаженням комісія, адекватна для одного ланцюжка, виявляється недостатньою для іншого, і операція надовго застрягає в очікуванні.

Без коректної обробки статусів такі транзакції не замінюються і не скасовуються, а просто висять — і користувач не розуміє, списалися кошти чи ні.

Третій — помилки підпису. Різні мережі вимагають різного формату підпису і різної схеми виведення ключів, і одна помилка в цьому шарі призводить до того, що транзакція відхиляється мережею або підписується не тим ключем. Нижче розбираємо, як ці збої закриваються на рівні архітектури, а не точковими правками.

Що дає єдина архітектура мультичейн гаманця

Єдина архітектура гаманця будується навколо одного шару підпису та одного шару обліку стану, а відмінності мереж виносяться в адаптери.

Ethereum, BSC, Polygon, Solana і TON працюють через різні моделі акаунтів і формати підпису, але клієнт бачить один баланс, одну історію та один сценарій надсилання.

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

Другий ефект — частка успішних транзакцій. Коли невірний nonce, застаріла ціна газу або відхилений вузол обробляються в одному місці, а не на кожному екрані по-своєму, користувач отримує зрозумілу причину відмови та коректний повтор замість «транзакція не пройшла».

На практиці це підвищує частку доведених до підтвердження операцій і знижує потік звернень до підтримки щодо типових збоїв.

Третій — час відновлення після збою вузла або провайдера.

Адаптери ізольовані, тому відмова одного постачальника даних не валить інші мережі: трафік перемикається на резервне джерело, стан підтягується з локального кешу, а черга непідтверджених операцій дограється після повернення зв'язку. Клас відмов звужується з «гаманець не працює» до «одна мережа тимчасово недоступна».

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

Підходи до реалізації: вбудовані модулі, зовнішні сервіси, гібрид

Коли застосунок підтримує Ethereum, BSC, Polygon, Solana і TON одночасно, ключовий вибір — де живе логіка підпису транзакцій і робота з мережами. Від цього залежать терміни запуску, контроль над ключами і те, як поводитиметься гаманець при додаванні шостої-сьомої мережі. Розберемо три схеми, між якими реально обирають на старті.

Варіант Коли підходить Обмеження
Вбудовані модулі Потрібен повний контроль ключів і передбачувана робота офлайн Кожна нова мережа — окрема робота з інтеграції, зростання кількості мереж сповільнює релізи
Зовнішні сервіси Швидкий запуск, підтримка багатьох мереж «з коробки» Ключі та підпис проходять через чужу інфраструктуру, залежність від чужого аптайму
Гібридна схема Власний контур для ключів + зовнішні вузли для читання мережі Складніша архітектура, потрібна акуратна синхронізація стану

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

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

Зовнішні сервіси знімають це навантаження: підключення нової мережі часто зводиться до налаштування, а не до розробки. Але контроль ключів розмивається — частина операцій іде через чужий контур, і будь-який збій на боці сервісу стає збоєм гаманця.

Гібрид — компроміс, який найчастіше і обирають: ключі та підпис залишаються в захищеному контурі застосунку, а читання балансів і надсилання транзакцій ідуть через зовнішні вузли. Так зберігається контроль над ключами, а додавання мережі не перетворюється на окремий проєкт.

Етапи впровадження: від аудиту поточної схеми до передачі регламентів

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

На цьому етапі фіксуємо ризики — від одного спільного ключа на всі мережі до відсутності журналу операцій — і тільки після цього проєктуємо цільову архітектуру мультичейн гаманця.

  1. Аудит схеми та інвентаризація активів. Зводимо список мереж (Ethereum, BSC, Polygon, Solana, TON), типів адрес і поточних сховищ ключів. На виході — карта: де активи, хто має доступ, які операції йдуть повз гаманець.
  2. Проєктування моделі ключів і доступів. Визначаємо, які мережі працюють на спільній seed-фразі, які потребують окремої, як розділяються ролі оператора й адміністратора. Розкладаємо, що йде в захищене сховище, а що залишається в гарячому контурі.
  3. Налаштування підпису транзакцій. Збираємо підпис під кожну мережу з урахуванням її формату: різні схеми адресації, різні поля комісії, різні вимоги до nonce. Перевіряємо, що підпис формується локально і приватний ключ не залишає захищений контур.
  4. Перевірка транзакцій на тестових мережах. Проганяємо повний цикл — збірка, підпис, відправлення, підтвердження — на кожному блокчейні окремо. Окремо перевіряємо сценарії збою: відхилена транзакція, зависла в мемпулі, нестача коштів на комісію.
  5. Регламенти експлуатації. Описуємо порядок додавання нової мережі, ротації ключів, відновлення доступу та реакції на інцидент. Регламент має читатися черговим інженером без додаткових пояснень.
  6. Передача документації та навчання команди. Віддаємо схеми архітектури, інструкції з операцій, чек-листи перевірок. Проводимо розбір на живих сценаріях, щоб команда замовника могла супроводжувати гаманець самостійно.

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

Політики доступу та управління ключами в мультичейн гаманці

Управління ключами — та частина гаманця, де помилка в конфігурації коштує найдорожче: витік одного seed-файлу обнуляє весь баланс за всіма мережами одразу.

Тому ми віддаємо замовнику не «працюючий застосунок», а комплект артефактів, за якими команда може безпечно експлуатувати та розвивати продукт без нас.

  • Схема зберігання ключів — де живе приватний ключ (захищене сховище пристрою, апаратний модуль, серверне сховище з шифруванням), як розділені гарячий і холодний контури, що відбувається при компрометації пристрою.
  • Політики доступу — матриця ролей: хто підписує транзакції, хто змінює ліміти, хто лише переглядає баланс; правила підтвердження великих операцій і розподіл обов'язків між адміністраторами.
  • Конфігурації мереж — файли з параметрами підключення до Ethereum, BSC, Polygon, Solana і TON: адреси вузлів, резервні провайдери, комісії, таймаути, правила перемикання при недоступності основного каналу.
  • Регламент резервного копіювання та відновлення — як і з якою періодичністю зберігаються зашифровані копії, де вони лежать, як перевіряється відновлення доступу на тестовому контурі.
  • Схема потоків підпису — діаграма, що показує шлях транзакції від інтерфейсу до відправлення в мережу: де перевіряються ліміти, де спрацьовує підтвердження, де логується подія.
  • Документація з ротації ключів — покроковий порядок планової заміни ключів і відкликання скомпрометованих без зупинки сервісу.
  • Журнал аудиту операцій — які події пишуться, у якому форматі, скільки зберігаються і як вивантажуються для розбору інцидентів.

Кожен артефакт узгоджений з вашою службою безпеки і передається в робочому вигляді — не як чернетка, а як документ, за яким новий інженер вводиться в проєкт за лічені дні.

Кейс: як скоротили частку завислих транзакцій утричі

Завдання надійшло від команди, яка вела мультичейн-гаманець із підтримкою Ethereum, BSC, Polygon, Solana та TON. Користувачі скаржилися на «завислі» транзакції: списання з рахунку проходило, а підтвердження в мережі не надходило.

Частка успішних транзакцій трималася на рівні 82%, а підтримка тонула в однотипних зверненнях — кожна друга заявка була про «гроші пішли, але не дійшли».

Що було до

Розбір показав три причини. Перша — єдиний таймаут підтвердження для всіх мереж: там, де блок виходить швидко, транзакція вже була в блоці, а гаманець усе ще чекав і показував статус «в обробці».

Друга — невірний розрахунок комісії при піковому навантаженні: транзакція йшла із заниженою ставкою і висіла в мемпулі годинами. Третя — ручне відновлення: інженер піднімав історію за логами, це займало до 40 хвилин на звернення.

Що змінили

Налаштували окрему політику підтвердження під кожну мережу і додали автоматичний перерахунок комісії за поточним навантаженням перед відправкою.

Ввели фоновий моніторинг статусу: якщо транзакція не підтвердилася за розрахункове вікно, система сама перевідправляє її з коректною ставкою, а користувач бачить зрозумілий статус замість нескінченного очікування.

Що стало

Частка успішних транзакцій зросла з 82% до 96%. Час додавання нової мережі скоротився з двох тижнів до трьох днів — конфігурація мережі описується декларативно, без правок у ядрі.

Час відновлення завислої операції впав з 40 хвилин до 5: сценарій відпрацьовує автоматика, інженер підключається лише до нестандартних випадків. Потік звернень у підтримку з цієї теми скоротився приблизно втричі.

Проєкт вів Trust Wallet-класу сценарій мультичейн-підписів — ми перенесли логіку на свою архітектуру і закрили клас завислих транзакцій на рівні відправки, а не розбору наслідків.

Чим відрізняється мультичейн гаманець від набору окремих гаманців?

Окремі гаманці — це кілька незалежних сховищ ключів, кожне зі своїм форматом, своєю seed-фразою та своїм способом підпису.

Користувач тримає N застосунків або N профілів, між якими немає спільного стану: баланси не зводяться, історія не збирається, а переказ між мережами вимагає ручного перенесення адреси з одного вікна в інше.

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

Мультичейн гаманець будується навколо єдиного інтерфейсу та спільного реєстру. Ключовий матеріал виводиться один раз з однієї seed-фрази різними шляхами, і для кожної мережі виходить своя коректна адреса — при цьому користувач бачить один список активів і одну історію операцій.

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

Наскрізний підпис — головна технічна відмінність. Транзакція збирається в спільному шарі, підписується один раз і йде в потрібну мережу в її власному форматі: десь це account-модель з nonce, десь UTXO-подібна логіка або інша схема підтверджень.

Користувач підтверджує дію один раз, а гаманець сам приводить підпис до вимог мережі — без перемикання застосунків і повторного введення пароля.

Звідси й різниця в експлуатації. Набір окремих гаманців дає N точок відмови, N оновлень і N місць, де може витекти ключ. Єдиний гаманець зводить це до одного контуру: одна політика доступу, один аудит, один сценарій відновлення.

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

Що робити, якщо вже розгорнуто один гаманець і потрібно додати мережі

Розширення мультичейн гаманця майже ніколи не вимагає переписування з нуля — якщо архітектура з самого початку розділяла ядро та мережеві адаптери.

Ключі, підпис транзакцій, робота з seed-фразою та локальним сховищем залишаються спільними: вони не залежать від того, у якій мережі ви підписуєте. Змінюється лише шар інтеграції — клієнт ноди, формат адрес, правила комісій та модель підтверджень.

Якщо цей шар винесено в окремий модуль з єдиним інтерфейсом, додавання мережі перетворюється на підключення нового адаптера, а не на ревізію всього застосунку.

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

Кожне таке місце — точка, яку доведеться узагальнити. Далі описуємо єдиний контракт адаптера: отримання балансу, побудова та підпис транзакції, відстеження статусу, робота з токенами.

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

Міграція тут — не перенесення даних, а розширення моделі. Існуючі гаманці продовжують працювати в попередній мережі, нова додається поруч: той самий seed, окрема гілка деривації адрес, свій список токенів і своя історія операцій.

Користувач не втрачає доступ і не перестворює гаманець. Ми окремо перевіряємо, що деривація адрес для нової мережі дає коректні значення і що відновлення з seed-фрази повертає всі мережі одразу.

Інтеграція із зовнішніми сервісами — оглядачами блоків, провайдерами котирувань, сервісами обміну — йде через той самий адаптерний шар, щоб збій одного провайдера не валив інші мережі. Ми додаємо ізоляцію: помилки в новій мережі не впливають на роботу вже підключених. Тести розширюються на новий сценарій — підпис, відправлення, підтвердження, відкат при відхиленні.

Практика показує: при розділеному ядрі додавання мережі займає тижні, а не місяці, і не вимагає заморозки поточного релізу. Якщо ядро монолітне, ми спочатку виділяємо адаптерний шар на існуючій мережі — це безпечний рефакторинг без зміни поведінки, — а потім підключаємо нові. Так розширення йде без переписування і без ризику для працюючих користувачів.

Обговоримо задачу: повернемося з оцінкою та планом

Щоб оцінка була реалістичною, а не «середньою по ринку», нам потрібно зрозуміти межі задачі: які мережі в першій версії, звідки беруться ключі, хто відповідає за інфраструктуру вузлів. Нижче — питання, які ми ставимо на старті. Відповіді на них перетворюються в план робіт з етапами, термінами та зонами відповідальності.

  • Які мережі обов'язкові в першій версії, а які можна додати пізніше без переробки архітектури?
  • Як зберігаються ключі: тільки на пристрої користувача чи передбачається відновлення через резервну фразу та хмару?
  • Чи потрібні апаратні гаманці та підключення зовнішніх підписувачів?
  • Хто надає доступ до вузлів мереж: власна інфраструктура чи сторонні провайдери, і чи є вимоги щодо відмовостійкості?
  • Які операції критичні: перекази, обмін усередині застосунку, стейкінг, робота з токенами стандартів різних мереж?
  • Чи потрібна підтримка кількох акаунтів, мультипідпис або ролі для командного доступу?
  • Які перевірки безпеки обов'язкові: аудит коду, тестування на проникнення, програма пошуку вразливостей?
  • Чи є вимоги регуляторів і правила зберігання даних користувачів у конкретних юрисдикціях?

Після розбору ми повертаємося з оцінкою за етапами, планом релізів і описом того, як буде влаштована підтримка після запуску. Опишіть задачу у зручному форматі — листування, дзвінок або короткий опис із прикладами сценаріїв.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714