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.