Socket
Socket
Sign inDemoInstall

@biconomy/account

Package Overview
Dependencies
34
Maintainers
7
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @biconomy/account

SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.


Version published
Weekly downloads
2.4K
increased by12.4%
Maintainers
7
Created
Weekly downloads
 

Readme

Source

Biconomy License MIT codecov

SDK 🚀

Open in GitHub Codespaces

The Biconomy SDK is your all-in-one toolkit for building decentralized applications (dApps) with ERC4337 Account Abstraction and Smart Accounts. It is designed for seamless user experiences and offers non-custodial solutions for user onboarding, sending transactions (userOps), gas sponsorship and much more.

📚 Table of Contents

🛠️ Quickstart

Installation

  1. Add the package and install dependencies:
bun add @biconomy/account viem
  1. Install dependencies:
bun i
import { createSmartAccountClient } from "@biconomy/account";

const smartAccount = await createSmartAccountClient({
  signer: viemWalletOrEthersSigner,
  bundlerUrl: "", // From dashboard.biconomy.io
  paymasterUrl: "", // From dashboard.biconomy.io
});

const { wait } = await smartAccount.sendTransaction({ to: "0x...", value: 1 });

const {
  receipt: { transactionHash },
  success,
} = await wait();

Documentation and Resources

For a comprehensive understanding of our project and to contribute effectively, please refer to the following resources:

💼 Examples

Initialise a smartAccount

KeyDescription
signerThis signer will be used for signing userOps for any transactions you build. Will accept ethers.JsonRpcSigner as well as a viemWallet
paymasterUrlYou can pass in a paymasterUrl necessary for sponsoring transactions (retrieved from the biconomy dashboard)
bundlerUrlYou can pass in a bundlerUrl (retrieved from the biconomy dashboard) for sending transactions
import { createSmartAccountClient } from "@biconomy/account";
import { createWalletClient, http, createPublicClient } from "viem";
import { privateKeyToAccount, generatePrivateKey } from "viem/accounts";
import { mainnet as chain } from "viem/chains";

const account = privateKeyToAccount(generatePrivateKey());
const signer = createWalletClient({ account, chain, transport: http() });

const smartAccount = await createSmartAccountClient({
  signer,
  bundlerUrl,
  paymasterUrl,
});

Send some eth with sponsorship

KeyDescription
oneOrManyTxSubmit multiple or one transactions
userOpReceiptReturned information about your tx, receipts, userOpHashes etc
const oneOrManyTx = { to: "0x...", value: 1 };

const { wait } = await smartAccount.sendTransaction(oneOrManyTx, {
  paymasterServiceData: {
    mode: PaymasterMode.SPONSORED,
  },
});

const {
  receipt: { transactionHash },
  userOpHash,
  success,
} = await wait();

Send a multi tx and pay gas with a token

KeyDescription
buildUseropDtoOptions for building a userOp
paymasterServiceDataPaymasterOptions set in the buildUseropDto
import { encodeFunctionData, parseAbi } from "viem";
const preferredToken = "0x747A4168DB14F57871fa8cda8B5455D8C2a8e90a"; // USDC

const tx = {
  to: nftAddress,
  data: encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
  }),
};

const buildUseropDto = {
  paymasterServiceData: {
    mode: PaymasterMode.ERC20,
    preferredToken,
  },
};

const { wait } = await smartAccount.sendTransaction(
  [tx, tx] /* Mint twice */,
  buildUseropDto
);

const {
  receipt: { transactionHash },
  userOpHash,
  success,
} = await wait();

License

This project is licensed under the MIT License. See the LICENSE file for details

Connect with Biconomy 🍊

Website Telegram Twitter LinkedIn Discord YouTube GitHub

Keywords

FAQs

Last updated on 29 Apr 2024

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc