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.
Users can pay gas in USDC, USDT, or any ERC-20—no need for native tokens like ETH.
Basic Usage
Pass feeToken when getting a quote:
const quote = await meeClient.getQuote({
instructions: [/* your calls */],
feeToken: {
address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Base
chainId: 8453
}
});
const { hash } = await meeClient.executeQuote({ quote });
Cross-Chain Gas Payment
Pay for transactions on one chain using tokens from another:
// Execute on Arbitrum, pay gas from Base USDC
const quote = await meeClient.getQuote({
instructions: [{
chainId: 42161, // Arbitrum
calls: [/* your calls */]
}],
feeToken: {
address: USDC_BASE,
chainId: 8453 // Pay from Base
}
});
By Wallet Type
Smart Account
EIP-7702
Fusion (EOA)
Most flexible—any token from any chain:const quote = await meeClient.getQuote({
instructions: [instruction],
feeToken: { address: USDC, chainId: base.id }
});
Same flexibility, requires delegate: true:const quote = await meeClient.getQuote({
instructions: [instruction],
delegate: true,
authorization, // From wallet
feeToken: { address: USDC, chainId: base.id }
});
Fee token must match trigger token, same chain only:const trigger = {
chainId: base.id,
tokenAddress: USDC_BASE,
amount: parseUnits("10", 6)
};
const quote = await meeClient.getFusionQuote({
trigger,
instructions: [instruction],
feeToken: { address: USDC_BASE, chainId: base.id }
});
Supported Tokens
Any ERC-20 with liquidity can be used for gas:
- Stablecoins: USDC, USDT, DAI
- Wrapped tokens: WETH, WBTC
- LP tokens: Uniswap, Curve positions
- Yield tokens: aUSDC, stETH
- Governance tokens: UNI, AAVE, etc.
Example: Swap with Gas in USDC
import { parseUnits } from "viem";
const swapInstruction = await account.buildComposable({
type: "default",
data: {
chainId: base.id,
to: UNISWAP_ROUTER,
abi: UniswapAbi,
functionName: "exactInputSingle",
args: [{ tokenIn: USDC, tokenOut: WETH, amountIn: parseUnits("100", 6), /* ... */ }]
}
});
const quote = await meeClient.getQuote({
instructions: [swapInstruction],
feeToken: { address: USDC, chainId: base.id }
});
// User sees fee in USDC, not ETH
console.log("Fee:", quote.paymentInfo.tokenAmount, "USDC");
const { hash } = await meeClient.executeQuote({ quote });
Next Steps
Sponsor Gas
Cover gas costs entirely for your users