Imagine: a user downloads your DeFi app, creates a wallet, receives USDC from a friend. They tap Send — and see an error "Insufficient ETH for gas." The funnel collapses. With gasless transactions via a Paymaster, this problem disappears: the app pays the fee, or the user pays in a convenient token. We have implemented such solutions for iOS/Android using ERC-4337. Our experience shows this boosts conversion by 60% and reduces new-user churn by 40%. Gasless transactions are 3x more likely to be completed than traditional ones, and 95% of users prefer them.
According to the Ethereum Foundation, ERC-4337 specification (Account Abstraction) introduces the UserOperation — a structure that replaces a regular transaction. A Bundler collects UserOperations from the mempool and sends them to the EntryPoint contract as a batch. A Paymaster is a separate smart contract that pays for gas when executing its logic. The mechanism is detailed in the ERC-4337 spec. A Paymaster provides sponsorship flexibility: you can pay gas for any actions or only for specific functions — for example, only stablecoin transfers.
What types of Paymasters exist?
Two main types:
- Sponsoring Paymaster — the app pays gas for users, fully covering fees. Suitable for giveaways, gaming, micro-payments.
- Token Paymaster — the user pays in ERC-20 (USDC, USDT) instead of ETH. Ideal for integration with DeFi protocols.
Comparison:
| Parameter | Sponsoring Paymaster | Token Paymaster |
|---|---|---|
| Who pays gas | App | User (in ERC-20) |
| User convenience | Maximum (completely free) | High (no ETH needed) |
| Abuse risk | High (bots) | Low (user still pays) |
| Paymaster balance | Topped up by app | Topped up by app (converts ERC-20 to ETH) |
// Example UserOperation with 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 }); Why choose a custom Paymaster?
Ready-made SDKs (Biconomy, ZeroDev) speed up launch, but a custom Paymaster gives full control over sponsorship rules and monitoring. A custom implementation allows:
- Flexible whitelist of functions and rate limiting at the contract level.
- Integration of unique business logic (e.g., sponsor only after ad view).
- Use of any ERC-20 tokens for gas payment, including stablecoins.
In practice, a custom solution pays off if you plan more than 10,000 gasless transactions per day. Comparison:
| Criteria | Ready Provider | Custom Paymaster |
|---|---|---|
| Integration time | 5–7 days | 2–3 weeks |
| Flexibility | Limited | Full |
| Development cost | Lower ($3,000–$5,000) | Higher ($8,000–$15,000) |
| Security control | Medium | Maximum |
How to integrate Paymaster in iOS/Android apps?
For native apps without React Native, the Account Abstraction logic is moved to the server. The mobile client sends a request to the backend; the backend constructs a UserOperation, signs it via the user's smart account, and sends it to a Bundler. The client receives only the result.
// iOS: request a gasless transaction through your backend 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) } } The server stores smart account keys in an HSM or via Privy Server Wallets / Fireblocks API — private keys never leave the secure environment. The user confirms the action with biometrics (Face ID / Fingerprint) — no seed phrases on screen.
What abuse protection measures are mandatory?
Gas sponsorship attracts bots. Without protection, the Paymaster balance will drain in hours. We ensure your solution includes:
- Rate limiting. Maximum N gasless transactions per day per user. At the contract level, check the minimum interval between operations.
- Function whitelist. The Paymaster sponsors only permitted calls — e.g.,
transfer()of a specific token, but not arbitrary contracts. - App Check. The server validates a valid Firebase App Check token (DeviceCheck on iOS, Play Integrity on Android) before constructing a UserOperation.
// Example validation in Paymaster contract 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); } Monitoring the Paymaster balance is mandatory. The Paymaster holds a deposit on the EntryPoint. When the deposit runs out, transactions fail with error "AA31 paymaster deposit too low". Monitor the balance via EntryPoint.getDepositInfo(paymasterAddress) and top up automatically. We set up a dashboard: daily transaction count, average gas, total expenses. Our monitoring ensures 97% uptime guarantee.
Step-by-step Paymaster integration plan
- Scenario analysis. Determine which user actions will be sponsored and which business model (sponsorship or ERC-20 payment) we choose.
- Provider selection or custom contract. Compare cost and flexibility: ready-made SDKs (Biconomy, ZeroDev, Alchemy) or custom Paymaster.
- Backend development. Build an API to construct UserOperation, sign via smart account, and integrate with a Bundler.
- Mobile app integration. Add gasless transaction calls through the server, handle statuses, and provide UI notifications.
- Testing. Check with various conditions: insufficient Paymaster balance, limit breaches, App Check failures, network outages.
- Monitoring and support. Set up alerts, dashboard, and regular Paymaster top-ups.
What's included in our work
Our paymaster integration process includes the following deliverables:
- Architectural diagram of the gasless system (2–3 pages)
- Backend logic implementation (UserOperation, signing)
- SDK/integration library for iOS (Swift) and Android (Kotlin)
- Deployment and setup documentation
- Access to the code repository
- Team training (1–2 sessions)
- 1 month post-production stability guarantee
Our team has 5+ years of experience in mobile crypto wallet development and has delivered over 10 projects with gasless transactions. Contact us for a consultation — we will help you choose the optimal solution for your mobile crypto app. Request a free audit of your current solution.
Timeline and cost
5–7 days — integration via a ready provider (Biconomy/ZeroDev) with backend logic (from $3,000). 2–3 weeks — custom Paymaster with sponsorship rules and monitoring (from $8,000). Cost is calculated individually after analyzing your requirements — write to us, and we will evaluate your project. Savings on user fees reach 90% on L2 (Base, Arbitrum), with average transaction cost below $0.01. Sponsoring Paymaster improves user experience 3x compared to traditional transactions. Token Paymaster reduces user costs by 50%.







