При отправке транзакции пользователь сталкивается с дилеммой: какую комиссию выбрать? Слишком низкая — транзакция может зависнуть на часы, слишком высокая — переплата в несколько раз. Многие кошельки используют фиксированные значения, что приводит к потерям или задержкам. Наша команда с 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







