Send transactions

Sending user operations has never been easier

Considering that the authentication part is done, you can start to send transactions. You'll just need to create the transaction and send it to the SDK.

Depending on the UX you want to provide, there are different ways of sending transactions.

For non sponsored transactions, each wallet will have to pay a prefund to the Entrypoint contract or be filled with native tokens.

To enable sponsored transactions, see the following documentation.

Send a single transaction

import { encodeFunctionData } from "viem";
import countContractAbi from "@/contract/counterABI.json";

const COUNTER_CONTRACT_ADDRESS = "0x4FbF9EE4B2AF774D4617eAb027ac2901a41a7b5F";

const calldata = encodeFunctionData({
  abi: countContractAbi,
  functionName: "count",
});

const txHash =  await smartAccountClient.sendTransaction(
  {
    to: COUNTER_CONTRACT_ADDRESS,
    data: calldata,
  }
);

Send transactions batches

With Cometh Connect, you can execute multiple actions in the same transaction.

import { encodeFunctionData } from "viem";
import countContractAbi from "@/contract/counterABI.json";

const COUNTER_CONTRACT_ADDRESS = "0x4FbF9EE4B2AF774D4617eAb027ac2901a41a7b5F";

const txHash =  await smartAccountClient.sendTransactions(
      {
        transactions: [
          {
            to: COUNTER_CONTRACT_ADDRESS,
            data: calldata,
          },
          {
            to: COUNTER_CONTRACT_ADDRESS,
            data: calldata,
          },
        ],
      }
    )

Last updated