Користувач надсилає ETH, а транзакція зависає на години або списується величезна комісія. До впровадження EIP-1559 гаманці вгадували gasPrice і часто помилялися. Ми, як команда з 5-річним досвідом розробки мобільних гаманців, впроваджуємо цей стандарт, щоб виключити переплати та затримки. EIP-1559 робить комісії передбачуваними: користувач задає максимальну ціну газу (maxFeePerGas) та чайові валідатору (maxPriorityFeePerGas), а протокол автоматично розраховує базову комісію (baseFee), яка спалюється. Результат — економія до 40% порівняно зі старим форматом і жодних завислих транзакцій. Офіційна специфікація: EIP-1559. Сьогодні підтримка EIP-1559 стала стандартом для сучасних гаманців — без неї користувачі йдуть до конкурентів. Наше рішення забезпечує плавну інтеграцію з мінімальними доробками.
Як працюють type-2 транзакції в мобільному гаманці?
Транзакція type 2 містить три ключових параметри замість одного gasPrice:
- baseFee — автоматично розраховується протоколом, спалюється (не йде майнеру). Збільшується на 12.5% при заповненому блоці, зменшується при порожньому. Отримати поточний:
eth_getBlockByNumber("pending", false)→ полеbaseFeePerGas. - maxPriorityFeePerGas (tip) — винагорода майнеру/валідатору. Мінімальний tip для включення в блок — зазвичай 0.1–2 Gwei.
- maxFeePerGas — абсолютний максимум, який готовий заплатити користувач. Фактично списується: min(maxFeePerGas, baseFee + maxPriorityFeePerGas). Різниця повертається.
// iOS — web3swift: побудова EIP-1559 транзакції var transaction = CodableTransaction( type: .eip1559, to: recipientAddress, value: amount, data: Data() ) transaction.maxFeePerGas = baseFee + maxPriorityFee + buffer transaction.maxPriorityFeePerGas = maxPriorityFee transaction.chainID = BigUInt(1) // Ethereum Mainnet Як правильно відображати комісії користувачу?
Користувач бачить maxFeePerGas = 50 Gwei, але якщо baseFee в момент майнінгу дорівнює 20 Gwei, а tip — 2 Gwei, заплатить 22 Gwei. Решта 28 Gwei повернуться. В UI краще показувати очікувану комісію (baseFee + tip) і максимально можливу (maxFeePerGas * gasLimit). Це знижує тривогу у користувачів, які бачать великий максимум. Зниження витрат на комісії досягає 30-50%.
Динамічні підказки комісій: як налаштувати?
Рекомендовані значення оновлювати кожні 12 секунд (час блоку Ethereum). Джерела:
-
eth_feeHistory— розрахунок percentile priority fee самостійно -
eth_maxPriorityFeePerGas— MetaMask-метод, підтримується Infura, Alchemy, QuickNode - Blocknative Gas API — платний, але дуже точний для Mainnet
// Android — отримати рекомендований priority fee val maxPriorityFeeResponse = web3j.send( Request("eth_maxPriorityFeePerGas", emptyList<Any>(), web3jService, EthMaxPriorityFeePerGas::class.java) ) val priorityFeeWei = maxPriorityFeeResponse.maxPriorityFeePerGas Порівняння legacy та EIP-1559 транзакцій
| Параметр | Legacy (type 0) | EIP-1559 (type 2) |
|---|---|---|
| Ціна газу | gasPrice (один параметр) | baseFee + maxPriorityFeePerGas + maxFeePerGas |
| Повернення переплати | Ні | Так (різниця між maxFee та фактичною комісією) |
| Передбачуваність | Низька (залежить від аукціону) | Висока (baseFee оновлюється протоколом) |
| Підтримка мереж | Всі EVM | Не всі (BNB Chain, Arbitrum, Optimism) |
Порівняння джерел динамічних комісій
| Джерело | Безкоштовний | Точність | Оновлення |
|---|---|---|---|
| eth_feeHistory | Так | Середня (залежить від percentile) | кожен блок |
| eth_maxPriorityFeePerGas | Так (Infura/Alchemy) | Висока (MetaMask-алгоритм) | кожен блок |
| Blocknative Gas API | Ні | Дуже висока | real-time |
Як обробляти мережі без підтримки EIP-1559?
BNB Chain використовує legacy-формат з фіксованим gasPrice (за замовчуванням 3 Gwei). Polygon підтримує EIP-1559 з версії мережі 26.x. Arbitrum і Optimism — власні механізми поверх EIP-1559. Додаток повинен визначати тип мережі і вибирати відповідний формат транзакції автоматично. Відправка type-2 транзакції в мережу без EIP-1559 поверне помилку unsupported transaction type. При отриманні такої помилки додаток повинен переключитися на legacy-формат: замінити type: .eip1559 на type: .legacy і вказати gasPrice замість maxFeePerGas та maxPriorityFeePerGas. Рекомендується кешувати тип мережі після першої успішної відправки.
Покрокова реалізація EIP-1559 в мобільному гаманці
- Визначте підтримувані мережі за chainID і збережіть маппінг: для мереж з EIP-1559 використовуйте type-2, для інших — legacy.
- Отримуйте baseFee через
eth_getBlockByNumber("pending", false)кожні 12 секунд і кешуйте. - Обчисліть рекомендований priority fee через
eth_maxPriorityFeePerGasабоeth_feeHistory. - Сформуйте транзакцію type-2: задайте
maxFeePerGas= (baseFee + priorityFee) * 1.1 (буфер),maxPriorityFeePerGas= priorityFee. - В UI відобразіть очікувану комісію (baseFee + priorityFee) та максимальну (maxFeePerGas * gasLimit).
- При помилці
unsupported transaction typeпереключіться на legacy-формат і повторіть відправку.
Чому варто оновити гаманець до EIP-1559?
Застарілі гаманці з одним gasPrice змушують користувачів переплачувати або чекати підтвердження годинами. Впровадження EIP-1559 дає передбачуваність, економію до 40% на комісіях та довіру користувачів. Більшість сучасних гаманців (MetaMask, Trust Wallet) вже підтримують EIP-1559 — ваш гаманець не повинен відставати. Отримайте консультацію з інтеграції EIP-1559 у ваш проект.
Що входить у реалізацію
- Аудит поточного гаманця та виявлення необхідних змін.
- Реалізація type-2 транзакцій з коректним розрахунком параметрів.
- Інтеграція динамічних підказок через RPC-методи.
- UI/UX: відображення очікуваної та максимальної комісії, автооновлення.
- Підтримка множини EVM-мереж з автовизначенням та fallback.
- Тестування в mainnet та testnet з екстремальними сценаріями.
- Документація, доступ до репозиторію, навчання команди та підтримка після впровадження.
Ми гарантуємо коректну роботу в усіх популярних мережах, спираючись на перевірені методи та досвід понад 50 реалізованих проектів. Замовте аудит поточного гаманця — ми підготуємо план переходу на EIP-1559.
Терміни та вартість: 2–3 дні на базову інтеграцію, від 5 днів для складних проектів з кількома мережами. Вартість робіт визначається після аудиту та залежить від складності інтеграції. Зв'яжіться з нами для консультації та оцінки вашого проекту.







