ZeroDev Smart Accounts Integration

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1 servicesAll 1306 services
ZeroDev Smart Accounts Integration
Medium
~2-3 business days
FAQ
Blockchain Development Services
Blockchain Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1214
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823

Integration with ZeroDev (Smart Accounts)

ZeroDev is infrastructure for smart accounts based on Kernel — modular implementation of ERC-4337. Kernel supports plugins (validators, executors, hooks), making it one of most flexible smart account frameworks. ZeroDev provides bundler, paymaster and SDK for working with Kernel accounts.

Kernel — Modular Architecture

Kernel divides logic into:

  • Validators — who can sign (EOA, multisig, passkey, session key)
  • Executors — what can be done (custom execution logic)
  • Hooks — pre/post execution (spending limits, access control)

This allows changing authentication logic without deploying new wallet.

Integration via ZeroDev SDK

import { createKernelAccount, createKernelAccountClient, createZeroDevPaymasterClient } from "@zerodev/sdk";
import { signerToEcdsaValidator } from "@zerodev/ecdsa-validator";
import { ENTRYPOINT_ADDRESS_V07, bundlerActions } from "permissionless";
import { http, createPublicClient } from "viem";
import { sepolia } from "viem/chains";

const publicClient = createPublicClient({
  chain: sepolia,
  transport: http(SEPOLIA_RPC_URL),
});

// Create ECDSA validator (standard EOA signature)
const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
  signer: walletClient,
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

// Create Kernel Account
const account = await createKernelAccount(publicClient, {
  plugins: { sudo: ecdsaValidator },
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

// Create client with paymaster
const kernelClient = createKernelAccountClient({
  account,
  chain: sepolia,
  entryPoint: ENTRYPOINT_ADDRESS_V07,
  bundlerTransport: http(BUNDLER_RPC),
  middleware: {
    sponsorUserOperation: async ({ userOperation }) => {
      const paymasterClient = createZeroDevPaymasterClient({
        chain: sepolia,
        entryPoint: ENTRYPOINT_ADDRESS_V07,
        transport: http(PAYMASTER_RPC),
      });
      return paymasterClient.sponsorUserOperation({ userOperation, entryPoint: ENTRYPOINT_ADDRESS_V07 });
    },
  },
});

const txHash = await kernelClient.sendTransaction({
  to: TARGET_ADDRESS,
  data: calldata,
});

Session Keys via ZeroDev

Session keys — killer feature of Kernel. User signs policy once, application works autonomously within this policy:

import { signerToSessionKeyValidator, ParamOperator } from "@zerodev/session-key";

// Create session key validator with limited rights
const sessionKeyValidator = await signerToSessionKeyValidator(publicClient, {
  signer: sessionKeySigner,       // temporary key (stored in app)
  validatorData: {
    paymaster: PAYMASTER_ADDRESS,
    permissions: [
      {
        target: GAME_CONTRACT,
        functionAbi: MOVE_ABI,
        valueLimit: parseEther("0.001"), // max 0.001 ETH per call
        args: [
          {
            offset: 0,
            condition: ParamOperator.LESS_THAN,
            value: pad(toHex(100n)), // first argument < 100
          },
        ],
      },
    ],
  },
});

Passkey Validator

ZeroDev supports WebAuthn passkeys as validator — biometric signature without private key:

import { toPasskeyValidator, toWebAuthnKey, WebAuthnMode } from "@zerodev/passkey-validator";

// Passkey registration
const webAuthnKey = await toWebAuthnKey({
  passkeyName: "My Account",
  passkeyServerUrl: PASSKEY_SERVER_URL,
  mode: WebAuthnMode.Register,
});

const passkeyValidator = await toPasskeyValidator(publicClient, {
  webAuthnKey,
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

ZeroDev integrates in 1-2 weeks. Main advantage over other AA providers — maturity of session keys and passkey support out of the box. Suitable for games, trading applications — anywhere you need frequent transactions without constant user confirmation.