Submitting a contract transaction request

This method allows you to send a contract transaction request.
Before requesting a transaction, ensure that you encode the value in hexadecimal format.
const value = "0x0"
You also need to add the necessary parameters before requesting a transaction.
const from = userAddress //the address you're sending from (connected users address)
const to = "0x0000000000000000000000000000000000000000" // the address you're sending the transaction to
Now we need to get the data to send to represent the contract data. In this example we are approving 0.1 BUSD
// create the tx object
// BUSD contract address: 0x78867BbEeF44f2326bF8DDd1941a4439382EF2A7
const contractAddress = "0x78867BbEeF44f2326bF8DDd1941a4439382EF2A7";
// Approve function ABI
const abi = [
inputs: [
{ internalType: "address", name: "spender", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" },
name: "approve",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "nonpayable",
type: "function",
const contract = new ethers.Contract(contractAddress, abi);
// Set the parameters for the transaction
const spender = userAddress; // the address of the spender (user connected)
const amount = ethers.parseEther("0.1"); // the amount to approve
const data = contract.interface.encodeFunctionData("approve", [
Next, create the transaction object
const tx = {
Finally, obtain the chain ID, which can be found at the following URL: (
const chainId = 1; // ETH chain id