Реализация 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 — опциональный контракт, спонсирующий gas. 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 — вызываем перед показом пользователю суммы gas. 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'ы видят незапакованные UserOperation. Для конфиденциальных операций используем private bundler (Flashbots, MEV Blocker) или paymaster с зашифрованными данными.

Multi-chain. EntryPoint v0.6 и v0.7 — разные адреса на разных сетях. Кошелёк должен поддерживать оба. SmartAccountClient из @alchemy/aa-core абстрагирует это, но конфигурация на каждую сеть — своя.

Gas estimation на Optimism/Base. L2 gas модель отличается: L1 data fee добавляется к L2 gas. eth_estimateUserOperationGas от bundler'а учитывает это, но стоит верифицировать на разных сетях отдельно.

Сроки

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

Стоимость рассчитывается индивидуально после анализа требований к смарт-контрактам, поддерживаемым сетям и UX-флоу онбординга.