Lazy Minting NFT: розробка без передоплати за газ

Замовнику потрібна колекція, але передоплата за газ з'їдає бюджет ще до першого продажу. Ми розробляємо відкладений мінт під ключ: токен випускається в момент купівлі, за випуск платить покупець. Витрати перестають бути бар'єром, а колекція виходить до старту вчасно.
Часті запитання

Lazy minting NFT: чому випуск токена впирається в газ

Колекція оголошена, обкладинка й метадані готові, тираж розписано — але випуск колекції токенів упирається в оплату газу під час випуску. У класичній схемі мінт кожного токена — окрема транзакція, яку творець оплачує заздалегідь, до того як з’явився покупець.

Передоплата за газ перетворюється на вузьке місце мінту: що більший тираж, то більше потрібно заморозити марно.

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

Заявки на мінт губляться в найневдаліший момент — покупець бачить помилку й іде, а заздалегідь оплачене місце виявляється зайнятим невдалою спробою.

Далі арифметика бюджету. Випуск колекції на десять тисяч одиниць означає десять тисяч авансових оплат, хоча реально продасться десята частина — решта залишається замороженим капіталом, який власник не може перекинути ні на маркетинг, ні на розвиток самого продукту. Через це релізи дроблять на хвилі, розтягують у часі й усе одно втрачають заявки.

Звідси й обхідний шлях: lazy minting NFT перекладає оплату газу на момент покупки, і творець не платить за токени, які ніхто не купив. Розбираємо, як це закривається і які обмеження у схеми залишаються.

Що змінює відкладений мінт: охоплення, швидкість, клас відмов

Газ платить покупець

За відкладеного мінту (lazy minting) токен не створюється заздалегідь: у мережі лежить підписаний дозвіл, а запис з’являється в момент, коли покупець сам ініціює угоду.

Газ переїжджає з підготовки колекції на момент покупки — не потрібно резервувати його під токени, які ніхто не купив. На тиражі, де продається десята частина випуску, це основна частка витрат на запуск.

Обсяг не впирається в разовий резерв

Звичайна схема вимагає закупити газ під весь тираж заздалегідь, тому розмір колекції обмежений тим, що готові зарезервувати до першого продажу.

За відкладеної схеми витрати зростають пропорційно реальним продажам: можна оголосити 10 000 позицій замість 500 і не платити за непродане. Масштаб колекції стає рішенням щодо продукту, а не щодо розміру резерву.

Зникає клас відмов «мінт не пройшов»

Вичерпання газу в момент випуску, стрибок базової комісії, ліміт на блок — за пакетного мінту це масовий збій, який ламає реліз і вимагає повторного прогону всієї партії.

За відкладеної схеми транзакцію ініціює покупець, тому збій локалізується на одній покупці й повторюється однією кнопкою.

Вихід колекції пришвидшується

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

Порівняння схем випуску: прямий мінт і lazy minting

Схема випуску — це відповідь на два питання: хто платить за газ і в який момент запис про токен потрапляє в мережу. Прямий мінт фіксує токен одразу під час створення, відкладений переносить запис на момент покупки, гібрид комбінує обидва підходи.

Нижче — зіставлення робочих схем за застосовністю та обмеженнями, щоб вибір спирався на сценарій колекції, а не на смак.

Схема Коли підходить Обмеження
Прямий мінт Закритий склад, передбачувана кількість токенів, потрібен повний список власників одразу Газ за кожен екземпляр на боці того, хто випускає; на масовому випуску це основна витрата
Відкладений мінт (lazy minting) Відкриті колекції, випуск на вимогу, платить покупець Токена немає до першого продажу — вітрини й гаманці не показують його заздалегідь
Гібридний випуск Частина складу — ексклюзив, частина — масова; потрібен швидкий старт продажів Дві логіки в одному контракті: складніше тести й розподіл роялті між випусками
Випуск за підписом Потрібні ліміти, білі списки, ціна й строк життя дозволу на боці випуску Залежність від сервісу, який видає підписи: компрометація ключа відкриває необмежений мінт

Обмеження схем одне одного не скасовують: відкладений випуск знімає витрату з боку того, хто випускає, але додає залежність від вітрини, а гібрид частково закриває цей ризик для якірної частини колекції.

На оцінці ми зіставляємо сценарій випуску із цими схемами й фіксуємо, який клас відмов залишається допустимим.

Впровадження за кроками: аудит, схема підпису, приймання, передача

Впровадження відкладеного мінту — не вмикання кнопки, а послідовність, де підпис, права й сховище мають узгоджено лягти на вже працюючий випуск. Спочатку знімаємо поточну схему, щоб новий порядок не конфліктував із ролями та метаданими. Далі йдуть етапи, кожен завершується перевірюваним артефактом.

  1. Розбір поточної схеми випуску. Дивимося, які ролі є в контракті, хто ініціює мінт, звідки беруться метадані, яка пікова частота випуску. На виході — карта процесів і список місць, де відкладений мінт змінює поведінку.
  2. Проєктування підпису. Визначаємо склад повідомлення, яке підписується: колекція, отримувач, ціна, строк дії, лічильник одноразових значень. Вирішуємо, де зберігається ключ підпису і як контракт гасить повторне використання того самого підпису.
  3. Налаштування контрактів і сховища. Збираємо контракт із перевіркою підпису, розгортаємо в тестовій мережі, підключаємо розподілене сховище для метаданих і фіксуємо адресу колекції до релізу.
  4. Перевірка під навантаженням. Прогоняємо сценарії: успішний мінт, прострочений підпис, гонка за одним і тим самим токеном, відмова сховища. Заміряємо час відгуку й частку шляхів, закритих перевірками.
  5. Приймання контрактів. Звіряємо поведінку з узгодженими критеріями: коректна передача прав, відмова на простроченому підписі, читабельні події для обліку. Ведемо протокол приймання.
  6. Передача й навчання. Віддаємо доступи, ключі в захищеному сховищі з регламентом ротації, схему потоку мінту та інструкцію для підтримки.

Опишіть, як випуск влаштований зараз — повернемося з оцінкою та планом за цими етапами.

Артефакти передачі: конфігурація, схеми, регламент випуску

Передача проєкту — це не архів з вихідними кодами, а робоча система, яку ваша команда може розвивати без нас. Ми фіксуємо не лише код, а й рішення, які до нього привели: чому вибрано такий спосіб підпису, як влаштовані права, що станеться за недоступності зовнішнього сервісу. Нижче — те, що залишається в замовника після здачі.

  • Конфігурація випуску: параметри відкладеного мінту (lazy minting) — розмір партії, ліміти на адресу, умови розкриття підпису, поведінка за недоступності вузла. Винесені у файли середовища, а не зашиті в код: зміна умов не потребує перезбирання.
  • Ключі підпису та схема їх зберігання: де живе закритий ключ, як ставиться підпис на кожен токен, порядок ротації й відкликання вже виданих дозволів до моменту мінту.
  • Політики доступу: матриця ролей на випуск, паузу й відкликання, правила сервісних акаунтів, перелік дій, що потребують підтвердження другої особи.
  • Документація з випуску: покроковий порядок публікації колекції — від підготовки метаданих до перевірки першого мінту в тестовій мережі, з очікуваним результатом кожного кроку.
  • Регламент мінту: що робити при розходженні кількості, завислій транзакції або повторному підписі; хто реагує і в який строк.
  • Схеми інтеграцій та інструкція із супроводу: зв’язки вітрини, сервісу підпису й мережі з точками відмови; порядок оновлення залежностей, де дивитися журнали й які перевірки прогнати перед правкою конфігурації.

Кейс: колекція на 12 000 токенів без передоплати за газ

Точка старту

Клієнт готував колекцію на 12 000 токенів на стандарті ERC-721. Карбування йшло пакетним скриптом заздалегідь, газ за всю колекцію проєкт оплачував до старту продажів.

На піках завантаження мережі транзакції з пакета зависали, частина падала через ліміт газу й конфлікти порядку транзакцій — до 18% заявок покупців губилося у відкатах. Один реліз розтягувався на п’ять-шість годин, команда чергувала вночі й вручну перезапускала хвіст пакета.

Що змінили

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

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

Що стало

  • Частка успішних карбувань у години пік: 82% → 99,4%.
  • Відкриття релізу: п’ять-шість годин пакетного прогону → хвилини на підготовку підписів.
  • Втрачені заявки на піках: 18% → менше 1%, і лише скасовані самими покупцями.
  • Чергування на релізі: нічна зміна → нуль, повідомлення надходить лише при падінні частки підтверджень.

Метрики знято з логів вузлів і воронки покупки за першу добу після запуску — це той самий профіль навантаження, що й на минулому релізі, тому порівняння коректне.

Чим відкладений мінт відрізняється від прямого випуску

До моменту мінту токена не існує в жодній мережі. Контракт колекції зберігає лише метадані й підпис творця — набір даних, який лежить поза блокчейном і не є записом про володіння. Перевірити таку заявку можна офчейн, а баланс покупця в цей момент дорівнює нулю.

Прямий випуск працює інакше: токен створюється в момент завантаження в контракт, і газ за кожен екземпляр платить автор колекції. Для серії це фіксована вартість, яка зростає лінійно з кількістю предметів — навіть якщо продано один екземпляр із тисячі.

У відкладеній схемі автор підписує параметри випуску: ціну, ідентифікатор екземпляра, адресу отримувача, обмеження за кількістю — і публікує цей підпис. Покупець надсилає її в контракт, контракт перевіряє підпис за відкритим ключем творця й створює токен рівно в момент мінту. Газ несе покупець, і лише за один екземпляр.

До мінту в покупця не токен, а право на нього. Підпис має строк життя й одноразовий лічильник, який захищає від повторного використання, а сам автор може його відкликати — до виклику контракту це нічий актив.

Маркетплейси на кшталт OpenSea показують такі заявки у вітрині, але запис про володіння з’являється лише під час покупки.

Для власника колекції це змінює порядок роботи: випуск каталогу перестає бути витратною операцією, зате підписи стають виробничим секретом.

Їх зберігають у захищеному вигляді, ведуть реєстр виданих, стежать за лічильниками й прописують процедуру відкликання при компрометації ключа.

Технічні сумніви: газ, повторний мінт, доступ до файлів

Сумніви зазвичай стосуються не самої схеми, а крайових випадків: що вже випущено, що станеться при збої і чи можна переїхати на інший контракт без втрати колекції. Нижче — п’ять питань, які найчастіше спливають на етапі проєктування.

Що відбувається з неоплаченим мінтом?

До оплати газу токен не існує в мережі — є лише підписаний дозвіл на випуск із фіксованими параметрами. Покупець нічого не втрачає: дозвіл або спрацьовує під час оплати, або спливає за строком, і його можна відкликати.

Що буде, якщо сервіс підпису недоступний?

Підписи зберігаються окремо від вузла видачі, тому недоступність сервісу зупиняє лише нові підписи, а не показ вітрини й не вже випущені токени. Відновлення — питання перемикання на резервний вузол, цілісність виданих дозволів при цьому зберігається.

Чи може токен випуститися повторно?

Ні. Кожен дозвіл одноразовий: контракт позначає використаний ідентифікатор і повторний мінт із тим самим підписом відхиляє. Це ж захищає від спроби випустити один токен двом покупцям при паралельних запитах.

Де зберігаються файли колекції?

Медіа розміщуються в розподіленому сховищі із закріпленням за вмістом, тому адреса файлу змінюється разом із вмістом. Ми дублюємо копії на незалежних вузлах і стежимо за доступністю, щоб метадані колекції не посилалися на зниклий файл.

Як перевести вже розгорнуту колекцію?

Можливі два шляхи: перенесення прав випуску на новий контракт або фіксація знімка власників і обмін за незмінним правилом. Вибір залежить від того, чи потрібна зворотна сумісність із поточними адресами; обидва сценарії перевіряємо в тестовій мережі до перемикання.

Обговорімо колекцію: що надіслати для оцінки та плану

Щоб повернутися з оцінкою розробки та планом робіт із відкладеного випуску, нам потрібні не готові тексти завдання, а вхідні дані щодо колекції. За ними ми рахуємо обсяг контрактів, склад і порядок підпису, а також роботи з вітрини мінту.

Опишіть задачу у вільній формі — уточнювальні питання поставимо самі, це швидше, ніж узгоджувати довге ТЗ.

  • Мережа й стандарт токена: де випускається колекція і що за одиниця — унікальний екземпляр чи взаємозамінний, від цього залежить логіка відкладеного випуску та розподілу.
  • Обсяг і метадані: скільки екземплярів у колекції, як готуються зображення й атрибути, де лежить вміст до мінту і що потрапляє до реєстру після.
  • Хто підписує випуск: гаманець-підписант із боку замовника, у кого зберігаються ключі і як права передаються при зміні відповідального.
  • Умови мінту: ціна в нативній монеті мережі, ліміт на один гаманець, часове вікно, відкритий доступ або закритий список адрес.
  • Ролі й виплати: кому і в якій частці йде відрахування з продажів, чи є привілейовані адреси й зарезервовані екземпляри.
  • Вітрина: де покупець виконує мінт — власний сайт, сторонній майданчик або обидва варіанти, які гаманці мають підтримуватися.

Надішліть вхідні дані в будь-якому форматі — документ, таблиця або коротке повідомлення. Ми повернемося з оцінкою строків, планом робіт за етапами та списком спірних місць, які варто обговорити до старту.

Якщо щодо колекції є обмеження за строками запуску, скажіть про них одразу — врахуємо в порядку етапів.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141