Skip to content

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...
 
  transport: http('BUNDLER_RPC'),
})

Interop with Paymasters

Paymasters are not perfectly interoperable between providers. To integrate with a paymaster, you need to implement the sponsorUserOperation function:

import { createKernelAccountClient } from "@zerodev/sdk"
 
const kernelClient = createKernelAccountClient({
  // other options...
 
  sponsorUserOperation: async ({ userOperation }) => {
    // return a UserOperation with the `paymasterAndData` field filled
  },
})

Check out Permissionless's documentation for integrating with a custom paymaster.