Infrastructure
For the complete documentation index, see llms.txt. This page is also available as markdown.

Choosing an infra provider

ZeroDev is compatible with any account abstraction infra provider.

Check out these guides for integrating with a specific provider:

Read on to learn how to integrate with a custom provider.

Interop with Bundlers

For the most part, bundlers are perfectly interoperable between different providers. You simply specify the bundler RPC when you construct a Kernel client:

import { createKernelAccountClient } from "@zerodev/sdk";
import { http } from "viem";

const kernelClient = createKernelAccountClient({
  // other options...

  bundlerTransport: http("BUNDLER_RPC"),
});

Interop with Paymasters

If the Paymaster supports ERC-7677 paymaster methods, you can simply pass the Paymaster RPC URL to createZeroDevPaymasterClient:

import { createKernelAccountClient, createZeroDevPaymasterClient } from "@zerodev/sdk"

const paymasterClient = createZeroDevPaymasterClient({
  chain,
  transport: http('PAYMASTER_RPC'),
})

const kernelClient = createKernelAccountClient({
  // other options...

  paymaster: paymasterClient
})

To integrate with a paymaster which doesn't support ERC-7677, you need to implement the getPaymasterData function:

const kernelClient = createKernelAccountClient({
  // other options...

  paymaster: {
    getPaymasterData(userOperation) {
      // return `paymasterAndData` for `EntryPoint 0.6` or `paymaster` and `paymasterData` for `EntryPoint 0.7`
    }
  }
})

On this page