Реализация подключения к 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% подойдёт для стейблкоин-пар, 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 месяца.