Абстракція облікових записів в Ethereum має дві канонічні адреси, які варто запам’ятати. EntryPoint v0.6 розташований за адресою 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789. EntryPoint v0.7, розгорнутий на початку 2024 року, — за адресою 0x0000000071727De22E5E9d8BAf0edAc6f37da032. Кожна транзакція ERC-4337 у мейннеті, Arbitrum, Optimism, Base, Polygon та більшості інших EVM-мереж проходить через один із цих двох одиничних контрактів. Якщо ви розумієте, що роблять ці контракти та які ще п’ять ролей взаємодіють із ними, ви розумієте ERC-4337.
Це друга частина нашої серії про смарт-акаунти. У першій частині ми розглянули, чому EOA — невдалий варіант за замовчуванням. Тут зазирнемо під капот: розберемо шість ролей, структуру UserOperation, що саме відбувається під час обміну токенів зі смарт-акаунта, зміни між v0.6 і v0.7, пеймастерів, публічні альтернативні мемпули й приватних бандлерів, а також очікувані додаткові витрати.
Шість ролей на одній схемі
ERC-4337 розподіляє завдання, яке EOA виконує за один крок, між шістьма учасниками, що співпрацюють. Для цього не знадобилося хардфорку Ethereum — уся система складається з контрактів і позаланцюгової інфраструктури.
- Відправник (смарт-акаунт): контрактний гаманець, який зберігає ваші активи та реалізує
validateUserOp. Для будь-якого DApp, із яким він взаємодіє, він єmsg.sender. Приклади: Safe, Kernel, Biconomy Nexus, Coinbase Smart Wallet, Light Account від Alchemy. - UserOperation: структура псевдотранзакції (це не справжня транзакція Ethereum), яка описує, що відправник хоче зробити. Користувачі підписують UserOp, а не транзакції.
- Бандлер: позаланцюговий вузол, який збирає UserOp із мемпулу, симулює їх, об’єднує в один виклик
handleOpsі сплачує комісію за газ L1. Бандлери заробляють на різниці між сумою відшкодування відправника (або пеймастера) та сумою, яку вони сплачують валідатору. - EntryPoint: довірений одиничний контракт, який перебирає операції в пакеті, викликає
validateUserOpкожного відправника, виконує дані виклику й обробляє повернення коштів і відкат транзакцій. Для кожної версії на кожному блокчейні є рівно один EntryPoint. - Пеймастер (необов’язково): контракт, який погоджується сплачувати комісію за газ від імені відправника — за рахунок спонсора (безкоштовно для користувача) або в обмін на токен ERC-20, наприклад USDC.
- Агрегатор (необов’язково): контракт, який перевіряє багато UserOp за допомогою однієї перевірки підпису. Це корисно для схем BLS або доказів із нульовим розголошенням. Наразі такі контракти рідко використовують у продакшені.
Пам’ятайте про ці шість ролей. Решта статті — це лише їхня взаємодія.
Структура UserOperation
UserOperation — це набір полів у форматі, сумісному з JSON-RPC. Після підписання він виражає намір, але ще не фіксує його в L1. Структура v0.7 містить 11 логічних полів:
sender— адреса смарт-акаунта.nonce— 256-бітне значення: верхні 192 біти містять ключ (паралельний канал nonce), а нижні 64 — порядковий номер. Завдяки цьому ERC-4337 підтримує паралельні nonce, тоді як EOA обробляють усе послідовно.factoryіfactoryData— для першого розгортання через CREATE2; після розгортання мають значення null.callData— виклик, який смарт-акаунт має виконати після валідації.callGasLimit,verificationGasLimit,preVerificationGas— три окремі ліміти газу.maxFeePerGas,maxPriorityFeePerGas— ті самі семантичні правила EIP-1559, що й для звичайної транзакції.paymasterAndData(v0.6) розділено наpaymaster,paymasterVerificationGasLimit,paymasterPostOpGasLimit,paymasterData(v0.7).signature— непрозорий набір байтів, який смарт-акаунт інтерпретує за власноюvalidateUserOp.
Схему підпису обирає гаманець. Поширений варіант — ECDSA на secp256k1, але за тим самим інтерфейсом можуть працювати перевірка P-256/passkey, мультипідпис, порогові схеми соціального відновлення та підписанти з ключами сеансу. Уся суть саме в цій гнучкості.
Від початку до кінця: як смарт-акаунт обмінює USDC на ETH
Розгляньмо реальний обмін і простежмо, як послідовно спрацьовують усі ролі.
- Користувач натискає «Обмін» в інтерфейсі гаманця. Гаманець формує UserOperation:
sender = 0xUserSafe,callData = swapUSDCforETH(amount)для виклику Uniswap. - Оцінка комісії за газ. Гаманець викликає
eth_estimateUserOperationGasчерез RPC бандлера. Бандлер симулює операцію через EntryPoint і повертає три ліміти газу. - Користувач підписує. Гаманець хешує UserOp разом з адресою EntryPoint і ідентифікатором мережі, запитує підпис у користувача (passkey, апаратний ключ тощо) і додає його.
- Надсилання. Підписану UserOp надсилають через
eth_sendUserOperationодному чи кільком бандлерам. Вона потрапляє до альтернативного мемпулу — окремої P2P-мережі, відокремленої від звичайного мемпулу транзакцій Ethereum. - Симуляція бандлером. Бандлер повторно симулює операцію за допомогою
eth_callщодоsimulateValidation. Він перевіряє правила доступу до сховища ERC-7562: під час валідації UserOp може звертатися лише до власного сховища, інакше зловмисники можуть завдати бандлеру збитків. - Об’єднання в пакет. Бандлер об’єднує цю UserOp із приблизно 10 іншими в один виклик
handleOps([...userOps], beneficiary)до EntryPoint. - Виконання в блокчейні. EntryPoint перебирає операції: для кожної викликає
validateUserOpвідправника, списує попередньо внесену суму, а потім виконуєcallData. Обмін через Uniswap запускається зі смарт-акаунта. - Повернення коштів. EntryPoint повертає відправнику (або пеймастеру) кошти за невикористаний газ і сплачує на адресу бенефіціара бандлера.
Якщо крок 5 завершується невдало, бандлер відхиляє операцію, а користувач бачить код помилки AAxx. Найчастіше це AA21 (не сплачено попередньо внесену суму), AA23 (помилка підпису), AA25 (недійсний nonce), AA33 (відкат пеймастера) і AA40 (перевищено ліміт газу на перевірку). Запам’ятайте ці коди — ви з ними зіткнетеся.
EntryPoint v0.6 і v0.7
v0.6 запустили в березні 2023 року за адресою 0x5FF1…2789. Він працював, але мав три прикрі недоліки: єдиний блок paymasterAndData, що об’єднував три параметри газу, незручне пакування initCode і облік газу, через який із відправників стягували забагато. У v0.7 виправили всі три проблеми.
Основні зміни у v0.7, про які варто знати:
- Адреса:
0x0000000071727De22E5E9d8BAf0edAc6f37da032(зверніть увагу на нулі на початку: цю адресу підібрали майнінгом, щоб зменшити витрати газу на дані виклику, адже кожен нульовий байт коштує 4 одиниці газу, а ненульовий — 16). - Окремі поля пеймастера:
paymaster,paymasterVerificationGasLimit,paymasterPostOpGasLimit,paymasterDataтепер є окремими полями. Їх простіше оцінювати, і складніше забути про якийсь ліміт. - Окремі поля фабрики: той самий принцип —
factoryіfactoryDataтепер окремі поля замість упакованогоinitCode. - Штраф за невикористаний газ: із відправників стягують 10% невикористаного
callGasLimit/paymasterPostOpGasLimit, щоб заохотити точніше оцінювати потребу в газі. - Сумісність із EIP-7702: у v0.7 додали механізм, який дає змогу звичайному EOA тимчасово делегувати повноваження реалізації смарт-акаунта. Це стало основою для шляху оновлення EIP-7702, випущеного в Pectra.
v0.6 і досі працює та використовується: багато гаманців почали постачати сумісні з v0.7 модулі лише протягом 2024 року. На більшості блокчейнів обидва EntryPoint працюють паралельно роками.
Пеймастери: хто сплачує комісію за газ
Пеймастер — це контракт, який тримає ETH у стейку в EntryPoint і погоджується покривати комісію за газ для UserOp, що відповідають його політиці. Найпоширеніші три різновиди:
- Пеймастер із перевіркою (спонсорований). Бекенд підписує дозвіл поза блокчейном; пеймастер перевіряє підпис у блокчейні та сплачує комісію. Такий варіант використовують застосунки, які хочуть забезпечити реєстрацію без комісії за газ, — Coinbase Smart Wallet, Farcaster Frames і більшість NFT-мінтів.
- Пеймастер ERC-20. Користувач сплачує в USDC, USDT або DAI, а пеймастер обмінює їх на ETH на бекенді (або використовує запас ETH). Pimlico, Biconomy і Stackup мають такі публічні рішення.
- Пеймастер токена з permit. Використовує permit EIP-2612, щоб користувач міг одним підписом підписати і UserOp, і дозвіл на використання токенів.
validatePaymasterUserOp пеймастера виконується під час фази валідації EntryPoint. Якщо вона завершується відкатом, ви отримуєте AA33. Якщо в пеймастера закінчується стейк, EntryPoint стягує його, а бандлер зазнає збитків — саме тому бандлери ведуть списки репутації пеймастерів. ERC-7562 визначає ці правила репутації, щоб мемпул бандлера залишався стійким до спаму. Ті самі базові принципи пояснюють, чому безпечна робота з дозволами DeFi та мультипідписами так само добре застосовується у світі 4337: загрози ті самі, змінюється лише оболонка.
Публічний alt-mempool чи приватний бандлер
Є два способи розмістити UserOp у блокчейні.
Публічний alt-mempool: бандлери, сумісні з ERC-7562, поширюють UserOp через мережу libp2p. Вашу операцію може підхопити будь-хто, хто запускає вузол Pimlico, Stackup, Alchemy, Etherspot або Voltaire. Це не потребує дозволу й захищає від цензури, але ви зазнаєте тих самих ризиків MEV, що й зі звичайними транзакціями Ethereum: пошукові системи бачать вашу операцію ще до включення в блок.
Приватний бандлер: ви надсилаєте eth_sendUserOperation безпосередньо до RPC одного провайдера. Той моделює виконання, формує пакет і надсилає його приватно (часто через Flashbots). Це швидше й захищає від MEV, але ви покладаєтеся на те, що бандлер не цензуруватиме вашу операцію й не випереджатиме її. У 2026 році більшість споживчих гаманців за замовчуванням використовують приватних бандлерів.
Цей компроміс подібний до вибору між публічним мемпулом і Flashbots Protect для звичайних транзакцій. Якщо ви ще не знайомі з життєвим циклом транзакції з часів L1, у цьому огляді пояснено, що змінюється, коли до процесу долучається бандлер.
Агрегатори, поширення й вартість
Агрегатори — це контракти, які перевіряють пакети за допомогою однієї перевірки підпису. Типовий приклад — BLS: ви збираєте 50 UserOp, підписаних за допомогою BLS, об’єднуєте підписи в одну перевірку парингу й заощаджуєте близько 95% витрат газу на підписи. Технологія повільно поширюється, адже створювати гаманці з підписами BLS складно, а економія на газі виправдовує зусилля лише за великого обсягу операцій. Станом на середину 2026 року агрегатори використовують менш ніж 1% UserOp у мейннеті.
Дані про поширення (Q1 2026, bundlebear.com): приблизно 380 мільйонів UserOp сукупно в усіх мережах; більшість припадає на Base, Polygon і Arbitrum. Частка мейннету становить близько 6–8% — це найменший показник за обсягом, але найбільший за вартістю переказаних активів. Основний потік споживчих операцій забезпечують Coinbase Smart Wallet, Farcaster і Argent.
Додаткові витрати: UserOp у версії v0.7 потребує приблизно на 30,000–40,000 одиниць газу більше, ніж еквівалентна транзакція EOA. Ці витрати йдуть на цикл EntryPoint, перевірку й обслуговування пакета. У мейннеті за ціни 20 gwei це частка долара за операцію. Перше розгортання акаунта через factoryData додає ще близько 250,000 одиниць газу. У L2, де основні витрати припадають на calldata, накладні витрати становлять менше 10%. Спонсоровані UserOp переносять ці витрати на dApp, тому в споживчих застосунках ви бачите безкоштовні транзакції, а в серйозних DeFi-застосунках — ні. У ширшому огляді комісій за транзакції пояснено, як ці додаткові витрати впливають на різні ринки комісій.
Коротко: ERC-4337 — це шість ролей (відправник, UserOp, бандлер, EntryPoint, пеймастер, агрегатор), одна структура, дві адреси EntryPoint, які варто запам’ятати, і близько 30–40 тис. одиниць газу додаткових витрат. Натомість ви отримуєте довільні схеми підпису, спонсорування газу, пакетування й паралельні nonce. У третій частині цієї серії йтиметься про EIP-7702 — паралельний напрям Pectra, який дає змогу вашому наявному EOA використовувати той самий механізм без зміни адреси.



