Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@cometh/connect-sdk-4337

Package Overview
Dependencies
Maintainers
4
Versions
106
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cometh/connect-sdk-4337

SDK Cometh Connect 4337

latest
Source
npmnpm
Version
1.0.20
Version published
Weekly downloads
520
57.58%
Maintainers
4
Weekly downloads
 
Created
Source

Cometh Connect SDK

This SDK help any dApps to get a smoother UX for your end-users (control a wallet with biometrics, pay for his gas fees, social recovery...)

Installation

bun add viem @cometh/connect-sdk-4337

NPM publication

//go to the root of the selected package and run
bun format

bun build

//for prod version
npm publish

// for dev version
npm publish --tag dev

Setup

import {
  createComethPaymasterClient,
  createSafeSmartAccount,
  createSmartAccountClient,
} from "@cometh/connect-sdk-4337";
import { arbitrumSepolia } from "viem/chains";
import { http } from "viem";

const apiKey = process.env.NEXT_PUBLIC_COMETH_API_KEY;
const bundlerUrl = process.env.NEXT_PUBLIC_4337_BUNDLER_URL;

const smartAccount = await createSafeSmartAccount({
  apiKey,
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

const paymasterClient = await createComethPaymasterClient({
  transport: http(paymasterUrl),
  chain,
});

const smartAccountClient = createSmartAccountClient({
  account: smartAccount,
  chain,
  bundlerTransport: http(bundlerUrl),
  paymaster: paymasterClient,
  userOperation: {
    estimateFeesPerGas: async () => {
      return await paymasterClient.getUserOperationGasPrice();
    },
  },
});

Send transaction

import { smartAccountClient } from "./client";
import countContractAbi from "../contract/counterABI.json";

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

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

Send batch transactions

import { smartAccountClient } from "./client";
import countContractAbi from "../contract/counterABI.json";

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

const txHash = await smartAccountClient.sendUserOperation({
  calls: [
    {
      to: COUNTER_CONTRACT_ADDRESS,
      data: calldata,
    },
    {
      to: COUNTER_CONTRACT_ADDRESS,
      data: calldata,
    },
  ],
});

Handle owners

import { smartAccountClient } from "./client";

// get owners
const owners = await smartAccountClient.getOwners();

// get enriched owners (with passkey credentials)
const enrichedOwners = await smartAccountClient.getEnrichedOwners();

// add a new owner
await smartAccountClient.addOwner({ ownerToAdd: OWNER_ADDRESS_TO_ADD });

// remove an owner
await smartAccountClient.removeOwner({
  ownerToRemove: OWNER_ADDRESS_TO_REMOVE,
});

Keywords

cometh

FAQs

Package last updated on 23 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts