ERC-4337 / ERC-7579 smart account infrastructure built on Kernel — the most widely deployed modular smart account. Provides bundler, paymaster, and a viem-compatible SDK with pluggable validators (passkeys, ECDSA, session keys, multisig).
- 01modular smart accounts
- 02session keys
- 03passkey signers
- 04gas sponsorship
- 05recovery flows
- pnpm add @zerodev/sdk @zerodev/ecdsa-validator viem
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_ZERODEV_PROJECT_ID | Client | ZeroDev project ID from the ZeroDev dashboard; used to derive bundler and paymaster RPC URLs. |
Use ZeroDev for ERC-4337 smart accounts on EVM chains. Build a Kernel account with `createKernelAccount({ plugins: { sudo: ecdsaValidator }, entryPoint, kernelVersion })` and wire it through `createKernelAccountClient({ account, chain, bundlerTransport, paymaster })`. Use `signerToEcdsaValidator` for an EOA signer or the WebAuthn / passkey validator for keyless flows. Send sponsored UserOps with `kernelClient.sendUserOperation({ calls: [...] })` and wait via `waitForUserOperationReceipt`. Pull the project ID from `NEXT_PUBLIC_ZERODEV_PROJECT_ID`.
- ⚑Kernel ships multiple versions — `KERNEL_V3_1` requires EntryPoint v0.7, older versions use v0.6. Mismatched versions cause silent UserOp reverts.
- ⚑Session keys are powerful but easy to misconfigure: scope permissions tightly (target, selector, value cap, expiry) or you risk granting full account control.
- ⚑ZeroDev is EVM-only and per-chain — each chain needs its own bundler URL; deploying to a new chain requires enabling it in the dashboard first.
- ⚑Paymaster sponsorship is policy-gated on the server: free tiers cap monthly sponsored gas, and policy rejection returns at submission time, not simulation.
- ⚑Smart account address is counterfactual until first deploy — don't assume the account contract exists on-chain before its first transaction.