Documentation Index
Fetch the complete documentation index at: https://docs.biconomy.io/llms.txt
Use this file to discover all available pages before exploring further.
Remove gas friction entirely—sponsor transactions so users never see or pay fees.
Set sponsorship: true when getting a quote:
const quote = await meeClient.getQuote({
sponsorship: true,
instructions: [/* your calls */]
});
const { hash } = await meeClient.executeQuote({ quote });
By Wallet Type
Smart Account
EIP-7702
Fusion (EOA)
const quote = await meeClient.getQuote({
sponsorship: true,
instructions: [instruction]
});
Best for embedded wallets (Privy, Dynamic):const quote = await meeClient.getQuote({
sponsorship: true,
delegate: true,
authorization,
instructions: [instruction]
});
Works with MetaMask, Rabby, etc. Token must support permit() for fully gasless:const quote = await meeClient.getFusionQuote({
sponsorship: true,
trigger: {
amount: 1n, // Minimal amount
chainId: base.id,
tokenAddress: USDC_BASE
},
instructions: [instruction]
});
If trigger token doesn’t support permit, user needs gas for one approval tx.
Hosted vs Self-Hosted
Biconomy-Hosted
Self-Hosted
Simplest setup—uses Biconomy’s managed gas tanks:const meeClient = await createMeeClient({
account,
apiKey: "your_project_api_key"
});
const quote = await meeClient.getQuote({
sponsorship: true,
instructions: [...]
});
- No infrastructure to manage
- Pay via dashboard (credit card or crypto)
- Works across all supported chains
Full control with your own backend:const quote = await meeClient.getQuote({
sponsorship: true,
sponsorshipOptions: {
url: "https://your-backend.com/sponsor",
gasTank: {
address: "0xYourGasTank",
token: "0xTokenAddress",
chainId: 84532
}
},
instructions: [...]
});
- Custom approval logic
- User-based policies
- Your own gas tank
Example: Gasless NFT Mint
const mintInstruction = await account.buildComposable({
type: "default",
data: {
chainId: base.id,
to: NFT_CONTRACT,
abi: nftAbi,
functionName: "mint",
args: [userAddress, tokenId]
}
});
const quote = await meeClient.getQuote({
sponsorship: true,
instructions: [mintInstruction]
});
// User signs, you pay gas
const { hash } = await meeClient.executeQuote({ quote });
When to Use
| Scenario | Recommendation |
|---|
| Onboarding new users | ✅ Sponsor |
| Premium/paid features | ✅ Sponsor |
| High-value actions | ✅ Sponsor |
| Frequent transactions | Consider user-pays |
| Cost-sensitive apps | Consider user-pays in tokens |
Next Steps
Composable Batch Calls
Execute multiple operations atomically