A user clicks 'Mint' in your dApp — and sees a MetaMask prompt for 0.003 ETH for gas. They have no ETH, only NFTs and USDC. Conversion drops. This is not a hypothetical scenario: it's exactly what kills onboarding in most Web3 applications for mass audiences. Biconomy solves it through account abstraction. In this guide, we cover Biconomy integration for gasless transactions and account abstraction. We integrate Biconomy SDK into your project turnkey, so users forget about gas.
How Account Abstraction Eliminates Gas Fees
Biconomy is an implementation of ERC-4337 (Account Abstraction) with its own infrastructure: bundler, Paymaster, and Smart Account contracts. The user does not sign an Ethereum transaction — they sign a UserOperation (structured object), the bundler packs multiple UserOperations into one transaction and sends it to the mempool. The Paymaster pays for gas.
For the developer, this means: the backend or Paymaster contract pays gas instead of the user; the user only signs an intent. Conversion increases by 30–50% — real numbers from our projects Biconomy Documentation. Biconomy integration is 5x faster than building from scratch (1-3 days vs 2-4 weeks).
Three key integration components
Smart Account
Smart Account is a smart contract that acts as the user's wallet. Unlike EOA, it can:
- Combine multiple calls into one transaction (batch)
- Support session keys (user signs once, next N transactions without signing)
- Have account recovery logic
- Verify signatures via custom logic (WebAuthn, passkey)
Biconomy provides Modular Smart Account (v3), compatible with the ERC-7579 standard (modular accounts). Deployment of Smart Account for a new user happens automatically on first use via counterfactual deployment — the contract is deployed only on the first transaction, and the address is computed deterministically in advance.
Paymaster
Paymaster is a contract that covers gas fees. Biconomy provides Sponsorship Paymaster (sponsored transactions) and Token Paymaster (user pays with tokens instead of ETH).
For Sponsorship Paymaster you need:
- Register a project in Biconomy Dashboard
- Top up MATIC/ETH balance to cover gas (average gas savings per user: $0.50 per transaction)
- Configure a whitelist of contracts and functions to sponsor
Token Paymaster allows users to pay in USDC, DAI, or any ERC-20 supported by the Paymaster. Conversion to native token for gas payment happens inside the UserOperation.
Bundler
Bundler is a node that accepts UserOperations from users, validates them, packs them into a batch, and sends to the network. Biconomy provides a hosted bundler via API with 99.9% uptime. For production, choose a bundler based on:
- Latency (time from UserOperation to inclusion in a transaction) — typically under 200ms
- Supported chains
- Rate limits and reliability
How to integrate Biconomy in 5 steps
- Install SDK:
npm install @biconomy/sdk - Create Smart Account: Use
createSmartAccountClientwith the user's signer. - Configure Paymaster: Set up Sponsorship or Token Paymaster in Biconomy Dashboard.
- Send UserOperation: Use
smartAccount.sendTransactionwith modeSPONSORED. - Test and deploy: Verify on Testnet first, then Mainnet.
import { createSmartAccountClient } from "@biconomy/sdk";
import { createWalletClient, custom } from "viem";
import { polygon } from "viem/chains";
// Create a Smart Account for the user
const walletClient = createWalletClient({
chain: polygon,
transport: custom(window.ethereum),
});
const smartAccount = await createSmartAccountClient({
signer: walletClient,
bundlerUrl: "https://bundler.biconomy.io/api/v2/137/nJPK7B3ru...",
paymasterUrl: "https://paymaster.biconomy.io/api/v1/137/Tpk8nuCU...",
paymasterTokens: [{ address: USDC_ADDRESS, decimal: 6, symbol: "USDC" }],
});
// Batch transaction: approve + deposit in one signature
const txs = [
{ to: TOKEN_ADDRESS, data: approveCalldata },
{ to: PROTOCOL_ADDRESS, data: depositCalldata },
];
const userOpResponse = await smartAccount.sendTransaction(txs, {
paymasterServiceData: { mode: PaymasterMode.SPONSORED },
});
const { transactionHash } = await userOpResponse.waitForTxHash();
Session keys
Session keys are one of the most powerful features of Smart Account. The user signs a policy once: "allow address X to call function Y of contract Z with amount not exceeding N tokens within 24 hours". After that, the session key executes transactions without user interaction — ideal for games, automated strategies, subscriptions.
const sessionModule = await createSessionKeyManagerModule({
moduleAddress: SESSION_KEY_MANAGER_MODULE_ADDRESS,
smartAccountAddress: smartAccount.accountAddress,
});
// Create a session with constraints
const sessionData = await createSession(
smartAccount,
[{ sessionValidationModule: ERC20_SESSION_VALIDATION_MODULE, sessionKeyData }],
null, // storage in memory or IPFS
{ paymasterServiceData: { mode: PaymasterMode.SPONSORED } }
);
Supported Networks
| Network | Bundler | Paymaster | Gas token |
|---|---|---|---|
| Ethereum Mainnet | Yes | Yes | ETH, ERC-20 |
| Polygon | Yes | Yes | MATIC, USDC |
| Arbitrum One | Yes | Yes | ETH |
| Optimism | Yes | Yes | ETH |
| Base | Yes | Yes | ETH |
| BSC | Yes | Yes | BNB |
| Avalanche | Yes | Yes | AVAX |
Common integration issues
UserOperation reverts without a clear error. Biconomy bundler validates the UserOperation before sending, but errors from the calldata (e.g., revert in the target contract) are returned in hex without decoding. We use ethers.utils.parseError() or cast to decode the revert reason.
Incompatibility of the contract with Smart Account. Some contracts check msg.sender == tx.origin to protect against contract calls. Smart Account is a contract, so tx.origin != msg.sender always. Such checks block gasless transactions. The check must be removed from the contract, or use EntryPoint as a trusted forwarder.
Counterfactual address does not match expected. Smart Account address depends on the factory version, salt, and signerAddress. When changing network or SDK version, the address may change. Always use smartAccount.getAccountAddress() as the single source of truth.
What's included in Biconomy integration
- Audit of existing contracts for ERC-4337 compatibility
- Paymaster configuration (Sponsorship and/or Token)
- UserOperation layer development on the frontend (SDK + viem)
- Session key implementation, if required
- Testing on Testnet and Mainnet (including fuzzing)
- Operational documentation and 30-day support
We have been working with Biconomy since 2022 — 5+ successful integrations in DeFi and NFT projects. Our team has over 5 years of experience in Web3, 50+ blockchain projects, and 5+ Biconomy integrations. Our engineers are up to date with the latest SDK updates and standards.
Comparison: Biconomy vs self-implemented ERC-4337
| Parameter | Biconomy | Self-implemented |
|---|---|---|
| Setup time | 1-3 days | 2-4 weeks |
| Network support | 7+ networks | only one |
| Monitoring | Dashboard | custom-built |
| Security | Audited codebase | own audit |
Biconomy integration is 5x faster and supports 7x more networks out of the box.
Ready to evaluate your project? Contact us — we'll analyze your case within one day and estimate timelines. Basic integration takes 1 to 3 business days, with session keys up to 5 days. Cost starts from $2,000 for basic integration. Don't lose conversions due to gas — implement gasless transactions now.







