Gas fee: розрахунок та налаштування в мобільному криптогаманці
При відправленні транзакції користувач стикається з дилемою: яку комісію обрати? Занадто низька — транзакція може зависнути на години, занадто висока — переплата в кілька разів. Багато гаманців використовують фіксовані значення, що призводить до втрат або затримок. Наша команда з 5-річним досвідом розробляє алгоритми, які аналізують поточне завантаження мережі та пропонують оптимальну комісію в трьох режимах. Це економить гроші та час користувачів.
Наприклад, один із наших клієнтів — криптогаманець з аудиторією 100 тис. користувачів — після впровадження скоротив середній час підтвердження на 40% та зменшив кількість завислих транзакцій на 80%. Економія на комісіях склала до 30% для активних трейдерів.
Чому важливий динамічний розрахунок gas fee?
Gas fee безпосередньо впливає на користувацький досвід. Якщо гаманець показує надто високу комісію, користувач іде. Якщо надто низьку — транзакція зависає. Ключовий інструмент — eth_feeHistory (EIP-1559) та eth_gasPrice для legacy-мереж. Без них точний розрахунок неможливий.
Для Ethereum Mainnet використовуємо eth_feeHistory з перцентилями 10, 50, 90 за останні 10 блоків. Це дає реалістичну картину навантаження мережі. Нижче приклад запиту на Kotlin/Android через web3j:
val feeHistory = web3j.ethFeeHistory(10, DefaultBlockParameterName.LATEST, listOf(10.0, 50.0, 90.0)).send() val baseFee = feeHistory.feeHistory.baseFeePerGas.last() val slowPriorityFee = feeHistory.feeHistory.reward[0][0] val avgPriorityFee = feeHistory.feeHistory.reward[0][1] val fastPriorityFee = feeHistory.feeHistory.reward[0][2] Для iOS аналогічна логіка на web3swift:
let feeHistory = try await web3.eth.feeHistory(blockCount: 10, newestBlock: .latest, rewardPercentiles: [10, 50, 90]) let baseFee = feeHistory.baseFeePerGas.last! let slowPriority = feeHistory.reward[0][0] let avgPriority = feeHistory.reward[0][1] let fastPriority = feeHistory.reward[0][2] Для Polygon використовуємо Gas Station API — він адаптований під локальні стрибки газу.
Як працюють три режими: Slow / Average / Fast?
Користувач обирає швидкість підтвердження. Додаток автоматично розраховує maxFeePerGas = baseFee * multiplier + priorityFee. Множник та перцентиль priority fee задають режим:
| Режим | Base Fee | Priority Fee | Очікуваний час |
|---|---|---|---|
| Повільно | base + 0% | 10-й percentile | 3–5 хвилин |
| Середнє | base + 10% | 50-й percentile | ~30 секунд |
| Швидко | base + 20% | 90-й percentile | ~15 секунд |
Підсумкова вартість конвертується в USD за поточним курсом ефіру. Для ETH-transfer gasLimit фіксований — 21000. Для контрактів — eth_estimateGas з запасом 20%. Для складних смарт-контрактів ми виконуємо eth_estimateGas у кожному блоці, додаючи буфер 20% на непередбачені opcodes. Результат множиться на підвищений baseFee для режиму Fast, щоб гарантувати виконання.
Як обрати оптимального провайдера для розрахунку gas fee?
Вибір провайдера (Infura, Alchemy, QuickNode) впливає на швидкість та точність даних. Ми рекомендуємо Alchemy для мейннету — їх API повертає eth_feeHistory з малим latency. Для тестнетів достатньо Infura. Важливо налаштувати polling feeHistory з інтервалом 10–15 секунд, щоб дані завжди були актуальні.
Що таке ручне налаштування і як його реалізувати?
Режим «Кастом» — поля maxFeePerGas та maxPriorityFeePerGas у Gwei. Валідація:
-
maxPriorityFeePerGasне може перевищуватиmaxFeePerGas -
maxFeePerGasмає бути не нижчим за поточнийbaseFee(інакше транзакція зависне) - Попередження при надто низьких значеннях
Вводити в Gwei зручніше: 1 Gwei = 10^9 Wei.
Як ми тестуємо коректність gas fee?
Тестування проводимо на мейннеті та тестнеті (Goerli, Sepolia). Симулюємо різні навантаження мережі, перевіряємо час підтвердження для кожного режиму. Використовуємо моніторинг транзакцій на Etherscan. Усі розрахунки порівнюємо з реальними даними. Результати фіксуємо в звіті.
Які результати ми гарантуємо?
За 5 років на ринку ми реалізували понад 50 проєктів, пов'язаних з криптогаманцями, включаючи інтеграцію gas fee для Ethereum, Polygon, BNB Chain та інших мереж. Наші клієнти економлять до 30% на комісіях завдяки точному розрахунку. Користувачі отримують прозорі комісії та передбачуваний час підтвердження.
Що входить в нашу роботу
| Етап | Результат |
|---|---|
| Аналіз мережі та інтеграція | Підключення Web3-провайдера, polling feeHistory |
| Розрахунок комісії | Slow/Average/Fast режими, конвертація в USD |
| UI вибору швидкості | Кастомний слайдер + ручне введення |
| Валідація та тестування | Перевірка на мейннеті та тестнеті |
| Документація та підтримка | Інтеграція в ваш код, консультації |
Процес роботи та терміни
- Аналітика — вивчаємо поточну архітектуру гаманця, обираємо провайдера (Infura, Alchemy).
- Проєктування — протокол взаємодії з блокчейном, UI/UX швидкості.
- Реалізація — код розрахунку, інтеграція API, інтерфейс кастомних налаштувань.
- Тестування — симуляція різних навантажень мережі.
- Деплой — завантаження в App Store/Google Play.
Орієнтовні терміни — від 2 до 5 днів залежно від складності. Вартість розраховується індивідуально. Зв'яжіться з нами для оцінки вашого проєкту. Замовте впровадження розрахунку gas fee у ваш гаманець — користувачі оцінять прозорість комісій. Отримайте консультацію з інтеграції вже сьогодні.
Джерело: Ethereum Documentation on Gas







