Реалізація підключення до DeFi-протоколів з мобільного гаманця

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 1735 послуг
Реалізація підключення до DeFi-протоколів з мобільного гаманця
Складна
від 1 тижня до 3 місяців
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    763
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    649
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1073
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    884
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    466

Реалізація підключення до DeFi-протоколів з мобільного гаманця

DeFi з мобільного гаманця—це не відкрити WebView з dApp. Це пряма робота зі смарт-контрактами: визов методів Uniswap Router, Aave LendingPool, Compound cToken. Інтерфейс будується поверх JSON ABI, транзакції підписуються локально, дані читаються через RPC без посередників.

Архітектура: ABI-first підхід

Кожний DeFi-протокол—набір смарт-контрактів з публічним ABI. Завдання програми: закодувати вклик по ABI, підписати транзакцію, відправити. Для EVM—бібліотека web3swift (iOS) або web3j (Android) надає EthereumContract для динамічної роботи з ABI.

// iOS — виклик Uniswap V3 QuoterV2 для отримання котировки
let quoterABI = try! EthereumContract(json: quoterV2ABI)
let result = try await quoterABI.read(
    "quoteExactInputSingle",
    parameters: [tokenIn, tokenOut, fee, amountIn, sqrtPriceLimitX96] as [AnyObject],
    transactionOptions: nil
)

Для Solana та її протоколів (Raydium, Orca, Jupiter)—Anchor SDK генерує IDL (Interface Definition Language), аналог ABI. SolanaSwift + Anchor дозволяють викликати інструкції програм типізовано.

Uniswap V3: swap через Router

Uniswap V3—найскладніший з популярних протоколів для мобільної інтеграції. SwapRouter02 (0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45) приймає ExactInputSingleParams:

// Android — кодування вызова exactInputSingle
val function = Function(
    "exactInputSingle",
    listOf(
        DynamicStruct(
            Address(tokenIn),
            Address(tokenOut),
            Uint24(fee),         // 500, 3000 або 10000
            Address(recipient),
            Uint256(amountIn),
            Uint256(amountOutMinimum), // з урахуванням slippage
            Uint256(BigInteger.ZERO)   // sqrtPriceLimitX96
        )
    ),
    listOf(Uint256())
)
val encodedData = FunctionEncoder.encode(function)

Перед swap потрібен approve на SwapRouter: ERC-20 approve(routerAddress, amountIn). Без нього транзакція swap упаде з TransferHelper: TRANSFER_FROM_FAILED.

Для отримання котировки—QuoterV2.quoteExactInputSingle (read-only, off-chain). Ніколи не використовувати onchain Quoter для відображення в UI в realtime—це eth_call, який завантажує ноду.

Aave V3: supply та borrow

Aave Pool (0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 на Mainnet) приймає supply(asset, amount, onBehalfOf, referralCode). Логіка:

  1. Approve Pool на amount токена.
  2. Вызвати supply—отримати aToken в обмін.
  3. Для borrowing—перевірити getUserAccountData, переконатися що healthFactor > 1.5 перед рекомендацією суми позики.

HealthFactor нижче 1.0—ліквідація позиції. Мобільна програма повинна відображати HealthFactor у реальному часі та попереджувати при приближенні до 1.1.

WalletConnect для dApp-браузера

Якщо гаманець хоче підтримувати підключення до зовнішніх dApps через мобільний браузер—WalletConnect v2 SDK (com.walletconnect:walletkit для Android, WalletConnectSwift для iOS). Протокол встановлює зашифрований канал між dApp та гаманцем. Гаманець отримує запити на підпис, показує користувачу деталі транзакції, підписує локально та повертає підписаний hex.

Управління станом та кешування даних протоколів

Дані DeFi оновлюються з кожним блоком. Курс пулу Uniswap, процентні ставки Aave—читаються через Multicall3 щих 12–15 секунд. Зберігати в реактивному state (Combine на iOS, Flow/StateFlow на Android). При помилці RPC—graceful degradation: показувати останні актуальні дані з міткою часу.

Типові проблеми

Slippage tolerance захардкоживати нельзя. 0.5% підійде для stablecoin-пар, 1–3%—для волатильних. Слишком низький slippage—транзакція завжди ревертиться на волатильному ринку, занадто високий—sandwich-атака з'їсть різницю.

Gas estimation для DeFi-операцій може промахнутися: Uniswap V3 при деяких маршрутах потребує 200k–500k gas. Мультиплицируй estimation на 1.3, не 1.1.

Сроки: 1–3 місяці в залежності від набору протоколів. Один протокол (наприклад, тільки Uniswap V3 swap)—1–2 тижні з урахуванням тестування на testnet. Повнофункціональний DeFi-хаб з Uniswap + Aave + Compound—2–3 місяці.