Интеграция с ZeroDev (smart accounts)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с ZeroDev (smart accounts)
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с ZeroDev (smart accounts)

ZeroDev — инфраструктура для smart accounts на базе Kernel — модульной реализации ERC-4337. Kernel поддерживает плагины (validators, executors, hooks), что делает его одним из наиболее гибких smart account frameworks. ZeroDev предоставляет bundler, paymaster и SDK для работы с Kernel аккаунтами.

Kernel — модульная архитектура

Kernel разделяет логику на:

  • Validators — кто может подписывать (EOA, multisig, passkey, session key)
  • Executors — что можно делать (custom execution logic)
  • Hooks — pre/post выполнение (spending limits, access control)

Это позволяет менять логику аутентификации без деплоя нового кошелька.

Интеграция через 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),
});

// Создание ECDSA validator (стандартная EOA подпись)
const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
  signer: walletClient,
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

// Создание Kernel Account
const account = await createKernelAccount(publicClient, {
  plugins: { sudo: ecdsaValidator },
  entryPoint: ENTRYPOINT_ADDRESS_V07,
});

// Создание клиента с 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 через ZeroDev

Session keys — killer feature Kernel. Пользователь подписывает policy один раз, приложение работает автономно в рамках этой policy:

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

// Создание session key validator с ограниченными правами
const sessionKeyValidator = await signerToSessionKeyValidator(publicClient, {
  signer: sessionKeySigner,       // временный ключ (хранится в приложении)
  validatorData: {
    paymaster: PAYMASTER_ADDRESS,
    permissions: [
      {
        target: GAME_CONTRACT,
        functionAbi: MOVE_ABI,
        valueLimit: parseEther("0.001"), // max 0.001 ETH за вызов
        args: [
          {
            offset: 0,
            condition: ParamOperator.LESS_THAN,
            value: pad(toHex(100n)), // первый аргумент < 100
          },
        ],
      },
    ],
  },
});

Passkey validator

ZeroDev поддерживает WebAuthn passkeys как validator — биометрическая подпись без private key:

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

// Регистрация passkey
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 интегрируется за 1-2 недели. Главное преимущество перед другими AA провайдерами — зрелость session keys и passkey поддержка из коробки. Подходит для игр, trading приложений — везде где нужны частые транзакции без постоянного подтверждения пользователем.