Интеграция с Pimlico (AA infrastructure)
Pimlico — инфраструктурный провайдер для Account Abstraction: bundler (упаковывает UserOperations в транзакции) и paymaster (спонсирует gas). Это managed сервис поверх ERC-4337, который снимает необходимость запускать собственный bundler и управлять paymaster контрактом.
Что даёт Pimlico
Bundler API — принимает UserOperations, валидирует, упаковывает в bundle транзакции и отправляет on-chain. Поддерживает eth_sendUserOperation, eth_estimateUserOperationGas, eth_getUserOperationByHash — стандартный ERC-4337 интерфейс.
Paymaster API — спонсирование gas без необходимости ETH на кошельке пользователя. Два режима: verifying paymaster (подписывает разрешение спонсировать конкретную операцию) и ERC-20 paymaster (пользователь платит газ в USDC/другом токене).
Alto — open-source bundler Pimlico, который можно развернуть самостоятельно если нужна независимость от их инфраструктуры.
Интеграция через permissionless.js
Pimlico поддерживает permissionless.js — TypeScript библиотеку для работы с AA:
import { createSmartAccountClient } from "permissionless";
import { createPimlicoBundlerClient, createPimlicoPaymasterClient } from "permissionless/clients/pimlico";
import { createPublicClient, http } from "viem";
import { sepolia } from "viem/chains";
const publicClient = createPublicClient({
chain: sepolia,
transport: http("https://rpc.ankr.com/eth_sepolia"),
});
const bundlerClient = createPimlicoBundlerClient({
transport: http(`https://api.pimlico.io/v2/sepolia/rpc?apikey=${PIMLICO_API_KEY}`),
entryPoint: ENTRYPOINT_ADDRESS_V07,
});
const paymasterClient = createPimlicoPaymasterClient({
transport: http(`https://api.pimlico.io/v2/sepolia/rpc?apikey=${PIMLICO_API_KEY}`),
entryPoint: ENTRYPOINT_ADDRESS_V07,
});
Создание smart account (на базе Safe или Kernel):
import { signerToSafeSmartAccount } from "permissionless/accounts";
const safeAccount = await signerToSafeSmartAccount(publicClient, {
signer: walletClient,
entryPoint: ENTRYPOINT_ADDRESS_V07,
safeVersion: "1.4.1",
});
const smartAccountClient = createSmartAccountClient({
account: safeAccount,
entryPoint: ENTRYPOINT_ADDRESS_V07,
chain: sepolia,
bundlerTransport: http(`https://api.pimlico.io/v2/sepolia/rpc?apikey=${API_KEY}`),
middleware: {
sponsorUserOperation: paymasterClient.sponsorUserOperation,
},
});
// Отправка транзакции без ETH на кошельке
const txHash = await smartAccountClient.sendTransaction({
to: "0xTarget",
value: 0n,
data: "0xCalldata",
});
Paymaster интеграция
Для sponsored транзакций — paymaster подписывает разрешение спонсировать конкретный UserOperation:
// Получение sponsorship от Pimlico
const sponsorResult = await paymasterClient.sponsorUserOperation({
userOperation: userOp,
});
// sponsorResult содержит:
// - paymasterAndData (для EntryPoint V0.6)
// - paymaster + paymasterData + paymasterVerificationGasLimit + paymasterPostOpGasLimit (V0.7)
ERC-20 paymaster позволяет пользователям платить газ в USDC. Pimlico поддерживает это через pimlicoPaymasterClient.getTokenQuotes для получения курса и approveTokenPaymaster для одобрения токена.
Лимиты и ценообразование
Pimlico работает по freemium модели: бесплатный tier с лимитами на количество UserOperations в день. Production требует API key с оплатой за операцию или фиксированного плана. При выборе paymaster — Pimlico берёт комиссию поверх реальной стоимости газа.
Сроки интеграции базового AA флоу с Pimlico bundler и paymaster — 1-2 недели. Включает выбор smart account implementation (Safe, Kernel, Biconomy), настройку paymaster политик, тестирование на testnets.







