March 2, 2023

Gas War: как не упустить момент?

  • Время на изучение ≈ 25-30 минут

Навигация:

Что такое Gas War?

Плата за газ требуется для обработки транзакций при покупке или продаже NFT на блокчейне.

Плата за газ, также известная как плата за транзакцию, определяется базовой ценой, типом транзакции и активностью блокчейна. Как только вы инициируете транзакцию, она попадает в пул памяти, где майнеры подтверждают ее.

Майнеры отдают предпочтение транзакциям с более высокой платой за газ, подобно тому, как работают аукционы. Во время ажиотажного минта NFT спрос крайне высок, а предложение ограничено, что приводит к конкуренции между покупателями.

Пример: Имеется 7 777 доступных NFT для минта по цене 0.07 ETH, и в настоящее время они продаются на OpenSea по цене 1,5 ETH. 7 777 самых быстрых транзакций будут успешными, остальные же будут либо отклонены, либо обработаны с ошибкой

Настройка Metamask

Для начала мы должны настроить MetaMask для продвинутой работы с газом

  • Нажимаем на профиль
  • Переходим в "Настройки"
  • Переходим в раздел "Дополнительно"
  • Включаем расширенное управление газом

Транзакция

Для редактирования значений мы должны открыть окно транзакции:

  • Нажимаем на "Отправить"
  • Указываем любой адрес кошелька
  • Нажимаем "Далее" (баланс не должен быть нулевым)
  • Переходим в "Рынок"
  • Выбираем пункт "Дополнительно"
  • Настраиваем значение газа

Работа с переменными – Base Fee, Priority Fee & Max Fee

Рассмотрим переменные:

  • «Gas limit» (Лимит газа) — это максимальная плата, которую пользователь готов заплатить за отправку транзакции или выполнение функции смарт-контракта. Она измеряется в «gas units» и выступает в качестве защитного механизма от ошибок или багов в смарт-контрактах.

Для транзакции в сети ETH обычно требуется лимит газа не менее 21 000 единиц, но более высокие лимиты и цены на газ приводят к ускорению транзакций и увеличению комиссии.

Конверсионная таблица GWEI -> ETH

Данное значение нужно редактировать только в том случае, если вы работаете с калькулятором (см. ниже) во всех же остальных случаях система определит значение автоматически

  • Базовая комиссия — каждый блок имеет базовую плату, которая выступает в качестве резервной цены. Чтобы быть включенным в блок, предлагаемая цена за газ должна быть как минимум равна базовой комиссии.

Расчет полной комиссии за транзакцию выполняется следующим образом: Gas units (Лимит газа) * (Base fee + Плата за приоритет)

Узнать значение базовой комиссии вы можете на сайте

  • Плата за приоритет Обновление «London» сети Ethereum внедрило плату за приоритет, чтобы стимулировать майнеров включать транзакцию в блок. Для транзакций, которые должны выполняться преимущественно перед другими транзакциями в том же блоке, потребуется более высокая плата, чтобы попытаться обойти конкурирующие транзакции.

Оптимальная плата за приоритет должна быть близка к 2 GWEI

  • Максимальная базовая комиссия — Чтобы выполнить транзакцию в сети, пользователи могут указать максимальный лимит, который они готовы заплатить за выполнение своей транзакции. Чтобы транзакция была выполнена, максимальная плата должна превышать сумму «базовой комиссии» и «платы за приоритет».

Формула для определения оптимального значения Max Fee = (2 * Базовая комиссия) + Плата за приоритет

Пример:

  • Текущая базовая комиссия в сети 18 GWEI
  • Оптимальная плата за приоритет — 2 GWEI

Применяем формулу — (2* 18) + 2 = 38 GWEI

  • Для уверенности можно увеличить данное значение на 10-20 единиц

Работа с калькулятором

Для чего нам нужен калькулятор газа?

Калькулятор газа вычисляет сумму затрат при тех или иных значениях

Перед вами появится окно с несколькими полями, давайте рассмотрим каждое из них:

  • Gas Limit Used Per Mint — введите общее количество газа, используемого для минта одного экземпляра (ранее Gas Limit)
  • Mint Cost — стоимость минта одного экземпляра (пример — 0.22 $ETH за 1 NFT "Momoguro")
  • Mint Amount — введите, сколько NFT вы собираетесь минтить за одну транзакцию (пример — 2 NFT за 1 транзакцию)
  • Option 1: Target Max GWEI — введите планируемую цену GWEI, чтобы узнать ожидаемую стоимость в ETH (ранее Max Fee)
  • Option 2: Target Spend in Eth Per Mint — введите целевую сумму ETH, которую вы хотите потратить на оплату транзакции (включая стоимость минта), чтобы узнать, сколько GWEI нужно использовать (пример — 0.22 $ETH за 1 NFT + 0.1 $ETH на покрытие комиссионных сборов)

Если вам уже известен контракт NFT-коллекции, которую вы собираетесь минтить, мы можем взять значение Gas Limit Used Per Mint из Etherscan

Рассмотрим пример с коллекцией Kaiju Frenz:

  • Переходим на Opensea коллекции
  • Нажимаем на любую NFT
  • Листаем в самый низ и переходим в "Details"
  • Находим строку с нужным нам смарт-контрактом
  • Находим транзакцию связанную с успешным минтом (Presale Mint)
  • Нажимаем на нее
  • Кликаем на "Click to show more"
  • Находим пункт Gas Limit, в нашем случае это 123 367

Важно учесть, что в нашей транзакции был приобретен 1 экземпляр NFT, если вам нужно значение для >2 NFT, прибавьте 15 000-20 000 за каждую NFT.

  • Возвращаемся к калькулятору

Вводим данные:

  • Gas Limit Used Per Mint — 123 367 за одну Kaiju Frenz NFT
  • Mint Cost — 0.12 за одну Kaiju Frenz NFT
  • Mint Amount — 1 экземпляр
  • Option 1: Target Max GWEI — используем формулу (Max Fee = (2 * Базовая комиссия) + Плата за приоритет), получаем значение 70 GWEI
  • Option 2: Target Spend in Eth Per Mint — вводим максимальную сумму, которую мы готовы потратить (с учетом цены минта), к примеру 0.14 $ETH

На боковой панели вы увидите 2 значения:

  • Первое значение покажет ожидаемую стоимость транзакции при указанных значениях
  • Второе значение покажет какое значение Max Fee нужно установить в Metamask, чтобы потратить указанное количество $ETH

Сохраняем значения для будущих транзакций

После того, как мы определились со всеми значениями, мы должны отредактировать их заранее, чтобы не тратить время впустую в процессе минта.

  • Ставим галочку
  • Сохраняем обновленные значения

Важно! Эти значения следует применять только перед значимыми минтами, не забудьте вернуть базовые показатели после завершения работы

  • Отклоняем транзакцию

Инструменты

Blocknative — данный инструмент позволит определить текущее значение Base Fee в блоке и подскажет какие значения Max Fee и Priority Fee будут оптимальными.

Одобряем коллекцию заранее

Для чего нужно одобрять коллекции заранее?

  • Низкие комиссии
  • Мгновенная продажа NFT

  • Копируем адрес кошелька
  • Переходим на Etherscan
  • Вставляем адрес кошелька в текстовое поле
  • Производим поиск
  • Находим транзакцию с обозначением "Set Approval For"
  • Нажимаем на нее

Если транзакция с методом «Set Approval For» отсутствует в кошельке, попробуйте одобрить любой из ваших токенов на Uniswap

  • Кликаем на "Click to show more"
  • Нажимаем на "Decode Input Data"
  • Копируем значение "operator"
  • Переходим на контракт проекта (в нашем случае это Kaiju Frenz)
  • Нажимаем на пункт "Contract"
  • Переходим в раздел "Write contract"
  • Подключаем кошелек
  • Выбираем MetaMask
  • Находим пункт "Set Approval For"
  • Нажимаем на него

Заполняем данные:

  • operator (address) — вставляем то значение, которое мы скопировали ранее
  • approved (bool) — указываем "true" (без кавычек!)
  • Нажимаем на "Write"

На этом все!