Інтеграція з ZeroDev (smart accounts)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з ZeroDev (smart accounts)
Середній
~2-3 дні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Інтеграція з ZeroDev (смарт-рахунки)

ZeroDev — інфраструктура для смарт-рахунків на базі Kernel — модульної реалізації ERC-4337. Kernel підтримує плагіни (validators, executors, hooks), що робить його одним з найбільш гнучких смарт-рахунок фреймворків. ZeroDev надає bundler, paymaster та SDK для роботи з Kernel рахунками.

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

Kernel розділяє логіку на:

  • Validators — хто може підписувати (EOA, multisig, passkey, session key)
  • Executors — що можна робити (кастомна execution логіка)
  • 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"), // макс 0.001 ETH за вызов
        args: [
          {
            offset: 0,
            condition: ParamOperator.LESS_THAN,
            value: pad(toHex(100n)), // перший аргумент < 100
          },
        ],
      },
    ],
  },
});

Passkey validator

ZeroDev підтримує WebAuthn passkeys як validator — біометрична підпис без приватного ключа:

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 застосунків — везде де потрібні частові транзакції без постійного підтвердження користувачем.