Реалізація Account Abstraction (ERC-4337) у мобільному криптогаманці

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація Account Abstraction (ERC-4337) у мобільному криптогаманці
Складний
від 1 тижня до 3 місяців
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація Account Abstraction (ERC-4337) у мобільному крипто-гаманці

ERC-4337 змінює користувацький досвід у крипто-гаманцях радикально: замість того щоб користувач зберігав seed-фразу та особисто оплачував газ в ETH, транзакції упаковуються в UserOperation, відправляються через Bundler, а gas може оплачувати Paymaster — третя сторона. Для мобільного додатку це означає можливість реалізувати web2-подібний UX: вхід через Face ID, gasless транзакції, відновлення через соціальний акаунт.

Компоненти ERC-4337 та їх роль у мобільному клієнті

Smart Account. Замість EOA (Externally Owned Account) користувач отримує смарт-контракт-гаманець (SimpleAccount, SafeAccount, LightAccount від Alchemy, Kernel від ZeroDev). Адреса контракту детермінована через CREATE2 — його можна обчислити до деплою. Мобільний клієнт зберігає ownerPrivateKey (ключ підписанта) в Secure Enclave (iOS) / Android Keystore, а не сам гаманець.

EntryPoint контракт (0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 — адреса однакова на всіх EVM-мережах) — глобальний синглтон, приймає UserOperation[] від Bundler'ів.

Bundler — ноди, що збирає UserOperation з мемпулу, симулює, упаковує в звичайну on-chain транзакцію. SDK для роботи з bundler'ами: @alchemy/aa-core, permissionless.js, viem/account-abstraction (viem 2.x). У мобільному додатку bundler — це HTTP endpoint, куди клієнт відправляє eth_sendUserOperation.

Paymaster — опціональний контракт, спонсирує газ. Verifying Paymaster підписує дозвіл на оплату на сервері, ERC-20 Paymaster дозволяє платити в USDC. У мобільному клієнті: перед відправкою UserOperation запитуємо pm_sponsorUserOperation у Paymaster API (Alchemy, Pimlico, Biconomy).

Реалізація у мобільному додатку

Підпис UserOperation. Смарт-аккаунт верифікує підпис через isValidSignature (ERC-1271). Підписує власник (owner EOA). На iOS — SecKeyCreateSignature з kSecKeyAlgorithmECDSASignatureMessageX962SHA256 через Secure Enclave (ключ не покидає чіп). На Android — KeyPairGenerator з AndroidKeyStore provider, підпис через Signature.getInstance("SHA256withECDSA").

Biometric authentication перед підписом — LocalAuthentication (iOS) / BiometricPrompt (Android). Приватний ключ доступний тільки після біометричної верифікації — ключ позначений kSecAccessControlBiometryCurrentSet (iOS) або setUserAuthenticationRequired(true) (Android Keystore).

UserOperation структура та Gas estimation. Поля callGasLimit, verificationGasLimit, preVerificationGas потрібно оцінити до відправки. Bundler надає eth_estimateUserOperationGas — викликаємо перед показом користувачу суми газу. Pimlico, Alchemy Gas Manager автоматизують це. Без коректної оцінки bundler відкине операцію з AA21 didn't pay prefund.

Session Keys. ERC-4337 дозволяє делегувати обмежені права підпису. Приклад: мобільна гра запитує session key з правом тратити до 5 USDC за транзакцію — користувач підписує один раз, подальші мікро-транзакції в грі проходять без підтвердження. Реалізація через ISessionKeyPlugin (ERC-6900) або аналог у Kernel (ZeroDev).

Social Recovery. Смарт-аккаунт може підтримувати відновлення через guardians — довірених адрес (наприклад, email-recovery через ZeroDev Email Recovery або телефон через соціальний вхід через Web3Auth). Користувач втрачає ключ → звертається до guardian'ів → через timelock (зазвичай 48h) отримує нового власника. Для мобільного UX: у додатку — розділ "Відновлення", де можна додати guardian'ів та налаштувати threshold.

Кейс. DeFi-мобільний гаманець: Smart Account на базі LightAccount v1.1, bundler — Alchemy, Paymaster спонсирує перші 10 транзакцій нових користувачів. Підпис через Secure Enclave (iOS) та Android Keystore. Onboarding без seed-фрази: користувач створює аккаунт через Apple Sign In → генерується ECDSA keypair в Secure Enclave → адреса смарт-аккаунту обчислюється через getCounterFactualAddress → при першому поповненні аккаунт деплоїтся через initCode в UserOperation. Користувач ніколи не бачить приватного ключа або seed-фрази. Підключення до DApp через WalletConnect v2 (Sign API) — гаманець підписує EIP-712 повідомлення.

Складності та неочевидні моменти

Frontrunning UserOperations. Мемпул ERC-4337 публічний — bundler'и бачать непакровані UserOperations. Для конфіденційних операцій використовуємо private bundler (Flashbots, MEV Blocker) або paymaster з зашифрованими даними.

Multi-chain. EntryPoint v0.6 та v0.7 — різні адреси на різних мережах. Гаманець повинен підтримувати обидва. SmartAccountClient з @alchemy/aa-core абстрагує це, але конфігурація на кожну мережу — своя.

Gas estimation на Optimism/Base. L2 газова модель відрізняється: L1 data fee додається до L2 газу. eth_estimateUserOperationGas від bundler'а враховує це, але варто верифікувати на різних мережах окремо.

Терміни

Масштаб Орієнтовні терміни
Базовий ERC-4337 гаманець, gasless, biometric 10–16 тижнів
Гаманець з session keys та social recovery 5–8 місяців
DeFi-платформа з мультичейн підтримкою 8–14 місяців

Вартість розраховується індивідуально після аналізу вимог до смарт-контрактів, підтримуваних мереж та UX-флоу онбордингу.