Pay gas in ERC20 tokens (2024)

Overview

This tutorial demonstrates how to use the Biconomy Smart Account to perform a transaction with ERC-20 token payment. The provided code includes creating a Biconomy Smart Account, encoding a function call, building a transaction, and sending it with ERC-20 token payment.

Prerequisites

  • Node.js installed on your machine
  • A Biconomy API key and Bundler url, get from dashboard

For this tutorial we are going to mint and NFT on Amoy, this means we can use the following:

  • bundlerUrl -->
    https://bundler.biconomy.io/api/v2/80002/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44
  • preferred ERC20 token for gas payment --> 0xf555F8d9Cf90f9d95D34488e6C852796D9acBd31 (USDC)
  • nft address --> 0x1758f42Af7026fBbB559Dc60EcE0De3ef81f665e

Step 1: Create Biconomy Smart Account and Encode Function Call

const smartWallet = await createSmartAccountClient({ signer, // can be viem client or ethers signer bundlerUrl, biconomyPaymasterApiKey,}); const encodedCall = encodeFunctionData({ abi: parseAbi(["function safeMint(address _to)"]), functionName: "safeMint", args: [recipient],});

Create a Biconomy Smart Account instance and encode the function call for the transaction.

Step 2: Build the Transaction

const nftAddress = "0x1758f42Af7026fBbB559Dc60EcE0De3ef81f665e";const transaction = { to: nftAddress, data: encodedCall,};

Build the transaction with the encoded function call.

Step 3: Send Transaction with ERC-20 Preferred Token Payment

const { wait } = await smartWallet.sendTransaction(transaction, { paymasterServiceData: { mode: PaymasterMode.ERC20, preferredToken: "0xf555F8d9Cf90f9d95D34488e6C852796D9acBd31", },}); const { receipt: { transactionHash }, userOpHash, success,} = await wait(); if (success == "true") { console.log("UserOp receipt", receipt); console.log("Transaction receipt", receipt.receipt);}

You can choose from a list of ERC20 tokens to pay for the gas, not giving a preferred token will allow you to select from current supported tokens.

const feeQuotesResponse = await smartWallet.getTokenFees(transaction, { paymasterServiceData: { mode: PaymasterMode.ERC20 },}); const userSelectedFeeQuote = feeQuotesResponse.feeQuotes?.[0]; // Allow user to pick desired token const { wait } = await smartWallet.sendTransaction(transaction, { paymasterServiceData: { mode: PaymasterMode.ERC20, feeQuote: userSelectedFeeQuote, spender: feeQuotesResponse.tokenPaymasterAddress, maxApproval: true, },}); const { receipt: { transactionHash }, userOpHash, success,} = await wait(); if (success == "true") { console.log("UserOp receipt", receipt); console.log("Transaction receipt", receipt.receipt);}

Send the transaction using the Biconomy Smart Account, specifying ERC-20 token payment details. Wait for the transaction to be mined and get the transaction hash.

That's it! You've successfully performed a transaction with ERC-20 token payment using the Biconomy Smart Account. Feel free to customize this example based on your specific use case.

Pay gas in ERC20 tokens (2024)
Top Articles
Seven Things That May Bestow Luck Upon Your Home
Does Harvard Offer Online Degrees?
Omega Pizza-Roast Beef -Seafood Middleton Menu
Craigslist Houses For Rent In Denver Colorado
Methstreams Boxing Stream
Research Tome Neltharus
1movierulzhd.fun Reviews | scam, legit or safe check | Scamadviser
Seething Storm 5E
Dr Lisa Jones Dvm Married
Miles City Montana Craigslist
Mail Healthcare Uiowa
Flat Twist Near Me
Miami Valley Hospital Central Scheduling
Animal Eye Clinic Huntersville Nc
Oro probablemente a duna Playa e nomber Oranjestad un 200 aña pasa, pero Playa su historia ta bay hopi mas aña atras
Vcuapi
Craftology East Peoria Il
Find Such That The Following Matrix Is Singular.
Puretalkusa.com/Amac
Missouri Highway Patrol Crash
Why do rebates take so long to process?
Homeaccess.stopandshop
All Breed Database
Sef2 Lewis Structure
Naval Academy Baseball Roster
پنل کاربری سایت همسریابی هلو
Gma' Deals & Steals Today
Waters Funeral Home Vandalia Obituaries
Why comparing against exchange rates from Google is wrong
Kristen Hanby Sister Name
The Menu Showtimes Near Amc Classic Pekin 14
15 Downer Way, Crosswicks, NJ 08515 - MLS NJBL2072416 - Coldwell Banker
Google Jobs Denver
Family Fare Ad Allendale Mi
Dallas City Council Agenda
Latest Nigerian Music (Next 2020)
Cranston Sewer Tax
Encompass.myisolved
My Locker Ausd
Emily Tosta Butt
Tattoo Shops In Ocean City Nj
Frontier Internet Outage Davenport Fl
3500 Orchard Place
Lesson 5 Homework 4.5 Answer Key
18 Seriously Good Camping Meals (healthy, easy, minimal prep! )
Jimmy John's Near Me Open
Deshuesadero El Pulpo
Game Akin To Bingo Nyt
De Donde Es El Area +63
Best brow shaping and sculpting specialists near me in Toronto | Fresha
Duffield Regional Jail Mugshots 2023
Latest Posts
Article information

Author: Jamar Nader

Last Updated:

Views: 5425

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.