Интеграция с StackUp (AA infrastructure)
StackUp — инфраструктурный провайдер для ERC-4337 Account Abstraction: hosted bundler и paymaster API. Альтернатива Pimlico с похожим набором возможностей. StackUp также поддерживает открытую разработку через userop.js — их TypeScript SDK для работы с UserOperations.
Ключевые компоненты
Bundler — принимает UserOperations, симулирует их (проверяет валидность без on-chain транзакции), формирует bundle и отправляет в EntryPoint контракт. StackUp поддерживает EntryPoint v0.6 и v0.7.
Paymaster — спонсирование gas. StackUp предоставляет Verifying Paymaster, который подписывает разрешение оплатить газ за конкретный UserOperation. Средства спонсора хранятся на paymaster контракте, пополняются через депозит.
Интеграция через userop.js
import { Client, Presets } from "userop";
// Создание AA клиента
const client = await Client.init(
`https://api.stackup.sh/v1/node/${STACKUP_API_KEY}`,
{
entryPoint: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
}
);
// Создание SimpleAccount (простейшая реализация AA wallet)
const simpleAccount = await Presets.Builder.SimpleAccount.init(
signer, // ethers Signer
`https://api.stackup.sh/v1/node/${STACKUP_API_KEY}`,
{
paymasterMiddleware: Presets.Middleware.verifyingPaymaster(
`https://api.stackup.sh/v1/paymaster/${STACKUP_API_KEY}`,
{ type: "payg" } // pay-as-you-go спонсирование
),
}
);
// Отправка транзакции
const response = await client.sendUserOperation(
simpleAccount.execute(
"0xTargetAddress",
ethers.utils.parseEther("0"),
"0xCalldata"
)
);
const receipt = await response.wait();
console.log(`Transaction included in block ${receipt.receipt.blockNumber}`);
Отличия от Pimlico
| Аспект | StackUp | Pimlico |
|---|---|---|
| SDK | userop.js | permissionless.js |
| Open-source bundler | stackup-bundler | Alto |
| ERC-20 paymaster | Через кастомный paymaster | Встроенная поддержка |
| Smart account поддержка | SimpleAccount, Safe | Safe, Kernel, Biconomy |
| Документация | Хорошая | Отличная |
Собственный bundler через stackup-bundler
Для проектов, требующих независимости от внешней инфраструктуры, StackUp предоставляет open-source bundler на Go:
# Запуск через Docker
docker run -e ERC4337_BUNDLER_ETH_CLIENT_URL=https://mainnet.infura.io/v3/KEY \
-e ERC4337_BUNDLER_PRIVATE_KEY=0x... \
-p 4337:4337 stackupwallet/stackup-bundler:latest
Bundler подключается к Ethereum ноде, управляет mempool UserOperations, выполняет simulation перед включением в bundle.
Интеграция с StackUp занимает 1-2 недели для стандартного AA флоу. Выбор между StackUp и Pimlico на практике определяется удобством SDK, ценообразованием и поддерживаемыми smart account implementations.







