Представьте: пользователь скачал ваше DeFi-приложение, создал кошелёк, получил USDC от друга. Он нажимает «Отправить» — и видит ошибку «Недостаточно ETH для газа». Воронка схлопнулась. С gasless-транзакциями через Paymaster этой проблемы не существует: комиссию оплачивает приложение или сам пользователь, но в удобном токене. Мы реализовали такие решения для iOS/Android с использованием ERC-4337. Наш опыт показывает — это повышает конверсию на 60% и снижает отток новых пользователей на 40%.
Согласно Ethereum Foundation, ERC-4337 (Account Abstraction) вводит UserOperation — структуру, заменяющую обычную транзакцию. Bundler собирает UserOperations из mempool и отправляет их в EntryPoint контракт пакетом. Paymaster — отдельный смарт-контракт, который оплачивает газ при выполнении своей логики. Механизм детально описан в спецификации ERC-4337. Paymaster обеспечивает гибкость спонсирования: можно оплачивать газ за любые действия или только за определённые функции — например, только переводы стабильных монет.
Какие типы Paymaster бывают?
Два основных типа:
- Sponsoring Paymaster — приложение платит газ за пользователей, полностью покрывая комиссии. Подходит для квиз-дропов, гейминга, микроплатежей.
- Token Paymaster — пользователь платит в ERC-20 (USDC, USDT) вместо ETH. Идеально для интеграции с DeFi-протоколами.
Сравнение:
| Параметр | Sponsoring Paymaster | Token Paymaster |
|---|---|---|
| Кто платит газ | Приложение | Пользователь (в ERC-20) |
| Удобство для пользователя | Максимальное (абсолютно бесплатно) | Высокое (не нужно ETH) |
| Риск абуза | Высокий (боты) | Низкий (пользователь всё равно платит) |
| Баланс Paymaster | Пополняется приложением | Пополняется приложением (конвертирует ERC-20 в ETH) |
// Пример UserOperation с Biconomy SDK import { createSmartAccountClient } from "@biconomy/account"; import { createPaymaster } from "@biconomy/paymaster"; const paymaster = await createPaymaster({ paymasterUrl: "https://paymaster.biconomy.io/api/v2/137/YOUR_API_KEY" }); const smartAccount = await createSmartAccountClient({ signer: walletSigner, bundlerUrl: "https://bundler.biconomy.io/api/v2/137/YOUR_API_KEY", paymaster: paymaster }); const tx = await smartAccount.sendTransaction({ to: recipientAddress, data: encodeFunctionData({ ... }), value: 0n }); Почему стоит выбрать собственный Paymaster?
Готовые SDK (Biconomy, ZeroDev) ускоряют запуск, но кастомный Paymaster даёт полный контроль над правилами спонсирования и мониторингом. Собственная реализация позволяет:
- Гибко настраивать whitelist функций и rate limiting на уровне контракта.
- Интегрировать уникальную бизнес-логику (например, спонсирование только после просмотра рекламы).
- Использовать любые ERC-20 токены для оплаты газа, включая стейблкоины.
На практике кастомное решение окупается, если планируется более 10 000 gasless-транзакций в день. Сравнение:
| Критерий | Готовый провайдер | Собственный Paymaster |
|---|---|---|
| Время интеграции | 5–7 дней | 2–3 недели |
| Гибкость | Ограниченная | Полная |
| Стоимость разработки | Ниже | Выше |
| Контроль над безопасностью | Средний | Максимальный |
Как интегрировать Paymaster в iOS/Android приложение?
Для нативных приложений без React Native логика Account Abstraction выносится на сервер. Мобильный клиент отправляет запрос на бэкенд, бэкенд формирует UserOperation, подписывает через smart account пользователя и отправляет в Bundler. Клиент получает только результат.
// iOS: запрос gasless-транзакции через свой бэкенд struct GaslessTransactionRequest: Encodable { let action: String // "transfer", "mint", "swap" let params: [String: Any] let userSmartAccount: String } class TransactionService { func sendGasless(request: GaslessTransactionRequest) async throws -> TransactionResult { let response = try await apiClient.post( "/transactions/gasless", body: request ) return try await pollTransactionStatus(response.operationId) } } Сервер хранит ключи smart account в HSM или через Privy Server Wallets / Fireblocks API — приватные ключи никогда не покидают защищённую среду. Пользователь подтверждает действие биометрией (Face ID / Fingerprint) — никаких seed-фраз на экране.
Какие меры защиты от злоупотреблений обязательны?
Спонсирование газа привлекает ботов. Без защиты баланс Paymaster опустеет за часы. Мы гарантируем, что в вашем решении будут реализованы:
- Rate limiting. Максимум N gasless-транзакций в сутки на пользователя. На уровне контракта — проверка минимального интервала между операциями.
- Whitelist функций. Paymaster спонсирует только разрешённые вызовы — например, transfer() конкретного токена, но не произвольные контракты.
- App Check. Сервер проверяет валидный токен Firebase App Check (DeviceCheck на iOS, Play Integrity на Android) перед формированием UserOperation.
// Пример валидации в контракте Paymaster function _validatePaymasterUserOp( UserOperation calldata userOp, bytes32, uint256 ) internal view override returns (bytes memory, uint256) { bytes4 selector = bytes4(userOp.callData[:4]); require(allowedSelectors[selector], "Function not sponsored"); require(dailyUsage[userOp.sender] < MAX_DAILY_OPS, "Daily limit exceeded"); return ("", 0); } Мониторинг баланса Paymaster — обязателен. Paymaster держит депозит на EntryPoint. Когда депозит заканчивается — транзакции падают с ошибкой "AA31 paymaster deposit too low". Нужно мониторить баланс через EntryPoint.getDepositInfo(paymasterAddress) и автоматически пополнять. Настроим дашборд: количество транзакций в день, средний газ, общие расходы.
Пошаговый план интеграции Paymaster под ключ
- Анализ сценариев. Определяем, какие действия пользователя будут спонсироваться и какую бизнес-модель (спонсирование или оплата в ERC-20) выберем.
- Выбор провайдера или собственный контракт. Сравниваем затраты и гибкость: готовые SDK (Biconomy, ZeroDev, Alchemy) или кастомный Paymaster.
- Разработка серверной части. Создание API для формирования UserOperation, подписание через smart account, интеграция с Bundler.
- Интеграция в мобильное приложение. Добавление вызова gasless-транзакции через сервер, обработка статуса, UI уведомления.
- Тестирование. Проверка с разными условиями: недостаточный баланс Paymaster, превышение лимитов, отказ App Check, падение сети.
- Мониторинг и поддержка. Настройка алертов, дашборд, регулярное пополнение Paymaster.
Что входит в нашу работу
- Архитектурная схема gasless-системы (2–3 страницы)
- Реализация серверной логики (UserOperation, подписание)
- SDK/integration library для iOS (Swift) и Android (Kotlin)
- Документация по развёртыванию и настройке
- Доступ к репозиторию с кодом
- Обучение команды (1–2 сессии)
- Гарантия стабильной работы — 1 месяц пост-продакшн
Наша команда имеет 5+ лет опыта в разработке мобильных криптокошельков и реализовала более 10 проектов с gasless-транзакциями. Свяжитесь с нами для консультации: поможем подобрать оптимальное решение для вашего мобильного криптоприложения. Закажите аудит вашего текущего решения — бесплатно.
Сроки и стоимость
5–7 дней — интеграция через готового провайдера (Biconomy/ZeroDev) с серверной логикой. 2–3 недели — собственный Paymaster с правилами спонсирования и мониторингом. Стоимость рассчитывается индивидуально после анализа ваших требований — пишите, оценим проект. Экономия на комиссиях для пользователей достигает 90% на L2 (Base, Arbitrum), средняя стоимость транзакции — менее $0.01. Sponsoring Paymaster улучшает пользовательский опыт в 3 раза по сравнению с традиционными транзакциями. Token Paymaster снижает затраты пользователей на 50%.







