Реалізація Gasless-транзакцій (Paymaster) у мобільному криптододатку

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

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

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

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

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

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

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

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

  • 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

Реалізація Gasless-транзакцій (Paymaster) у мобільному крипто-додатку

Головний бар'єр для масового прийняття крипто-додатків — газ. Новий користувач встановив додаток, створив гаманець, отримав USDC від друга. Хоче відправити — йому говорять: "У вас 0 ETH для оплати комісії". Це кінець воронки. Gasless-транзакції через Paymaster розв'язують цю проблему: газ спонсирується додатком або оплачується ERC-20 токеном замість нативного.

Як працює ERC-4337 та Paymaster

Account Abstraction (ERC-4337) вводить UserOperation — структуру, яка замінює звичайну транзакцію. Bundler збирає UserOperations з mempool та відправляє їх у EntryPoint контракт пакетом. Paymaster — окремий смарт-контракт, який бере на себе оплату газу при умові виконання своєї логіки.

Два основних типи Paymaster:

  • Sponsoring Paymaster: додаток платить газ для користувачів безплатно
  • Token Paymaster: користувач платить у ERC-20 (USDC, USDT) замість ETH
// UserOperation з Paymaster через 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
});

// Відправка транзакції — користувач не платить ETH
const tx = await smartAccount.sendTransaction({
    to: recipientAddress,
    data: encodeFunctionData({ ... }),
    value: 0n
});

На мобільному клієнті користувач просто натискає "Підтвердити" — біометрія (Face ID / Fingerprint), транзакція уходить. Ніякого ETH-балансу, ніякого питання про газ.

Інтеграція у 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
        )
        // Polling або WebSocket для отримання txHash
        return try await pollTransactionStatus(response.operationId)
    }
}

Бекенд зберігає ключі smart account у HSM або через Privy Server Wallets / Fireblocks API — ніяких приватних ключів на мобільному пристрої.

Обмеження та захист від зловживань

Спонсирування газу — це гроші. Без обмежень botnet опустошить баланс Paymaster за години. Необхідні заходи:

Rate limiting. Максимум N gasless-транзакцій на день на користувача. На рівні Paymaster контракту — перевірка через маппинг lastTxTime[sender] з мінімальним інтервалом.

Whitelist дій. Paymaster спонсирує тільки певні виклики — наприклад, тільки transfer() конкретного токена, але не довільні контракти.

App Check верифікація. Перевіряємо що запит йде з легітимного додатка через Firebase App Check (використовує DeviceCheck на iOS, Play Integrity на Android). Без валідного App Check токена бекенд не формує UserOperation.

// Paymaster контракт: whitelist функцій
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) та автоматичний топап через Chainlink Automation або простий cron-воркер.

Варто завести дашборд: скільки транзакцій на день, середній газ, загальні витрати. Biconomy Dashboard, Alchemy Gas Manager Dashboard — готові рішення якщо використовуєте їхню інфраструктуру.

Вибір провайдера

Провайдер Підтримувані сети Особливості
Biconomy 50+ сетей SDK для React Native, JS
ZeroDev Ethereum, Polygon, Arbitrum Kernel account, простий API
Alchemy Gas Manager 10+ сетей Інтегрований з Alchemy RPC
Pimlico Більшість EVM Хороший bundler, Token Paymaster
Власний Будь-яка EVM Повний контроль, вища складність

Для продакшн-додатка з > 10K DAU — рекомендуємо власний Paymaster на Ethereum L2 (Base, Arbitrum, Optimism): газ на 90% дешевше порівняно з mainnet, але повний контроль над логікою спонсирування.

Сроки

5–7 днів для інтеграції через готового провайдера (Biconomy/ZeroDev) з серверною логікою UserOperation. 2–3 тижні для власного Paymaster з кастомними правилами спонсирування та моніторингом. Вартість розраховується індивідуально після аналізу вимог.