Розробка мінтингу NFT у мобільному додатку: повний цикл

Мінтинг NFT з мобільного пристрою — завдання з підводним камінням. Потрібно завантажити медіа в IPFS, згенерувати коректні метадані ERC-721 та викликати смарт-контракт, при цьому на телефоні можливі обриви зв'язку та нестача пам'яті. Ми реалізували понад 15 проєктів з інтеграцією NFT, включаючи інте

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мінтингу NFT у мобільному додатку: повний цикл
Складний
~5 днів

Наші компетенції:

Часті запитання

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Мінтинг NFT з мобільного пристрою — завдання з підводним камінням. Потрібно завантажити медіа в IPFS, згенерувати коректні метадані ERC-721 та викликати смарт-контракт, при цьому на телефоні можливі обриви зв'язку та нестача пам'яті. Ми реалізували понад 15 проєктів з інтеграцією NFT, включаючи інтеграцію з великими маркетплейсами, і накопичили практичні рішення цих проблем.

Наш досвід охоплює мережі Ethereum, Polygon та Solana, роботу з IPFS через Pinata та NFT.Storage, а також налаштування push-сповіщень про статус транзакцій. Lazy minting дозволяє відкласти сплату газу до моменту продажу, заощаджуючи до 90% витрат — це в 10 разів вигідніше для творця. Для порівняння: стандартна комісія газу в Ethereum може сягати $100, а на Polygon — менше $0.01. У цій статті розберемо технічні деталі кожного етапу, щоб ви могли уникнути типових помилок і зробити мінтинг зручним для користувача.

Як виконати мінтинг NFT з мобільного пристрою?

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

Завантаження медіа в IPFS

Для зберігання медіа використовуємо децентралізоване сховище IPFS. На iOS застосовуємо PHPickerViewController (доступний з iOS 14), на Android — PhotoPicker (Android 13) з fallback на GetContent. Файл відправляється на API Pinata або NFT.Storage. Наведемо приклад завантаження на Swift:

Приклад завантаження на iOS Swift
// iOS — завантаження файлу в Pinata IPFS func pinFileToIPFS(fileURL: URL, fileName: String) async throws -> String { var request = URLRequest(url: URL(string: "https://api.pinata.cloud/pinning/pinFileToIPFS")!) request.httpMethod = "POST" request.setValue("Bearer \(pinataJWT)", forHTTPHeaderField: "Authorization") let boundary = UUID().uuidString request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") var body = Data() body.append("--\(boundary)\r\nContent-Disposition: form-data; name=\"file\"; filename=\"\(fileName)\"\r\n") body.append("Content-Type: image/jpeg\r\n\r\n") body.append(try Data(contentsOf: fileURL)) body.append("\r\n--\(boundary)--\r\n") request.httpBody = body let (data, _) = try await URLSession.shared.data(for: request) let response = try JSONDecoder().decode(PinataResponse.self, from: data) return "ipfs://\(response.ipfsHash)" } 

Для великих файлів (відео від 100 МБ) налаштовуємо фонове завантаження через URLSession з background-конфігурацією на iOS та WorkManager з setExpedited на Android. Відображаємо прогрес у вигляді смуги та сповіщень.

Формування метаданих ERC-721

Після завантаження медіа необхідно згенерувати JSON‑метадані за стандартом OpenSea. Приклад на Kotlin:

// Android — формування NFT metadata JSON data class NftMetadata( val name: String, val description: String, val image: String, // ipfs://QmXxx... (CID завантаженого файлу) val externalUrl: String?, val attributes: List<NftAttribute> ) data class NftAttribute( val traitType: String, val value: String ) // Приклад результату val metadata = NftMetadata( name = "My NFT #1", description = "Created via mobile app", image = "ipfs://QmImageHash...", attributes = listOf( NftAttribute("Background", "Blue"), NftAttribute("Rarity", "Rare") ) ) 

Цей JSON завантажується в IPFS, і отриманий URI передається в функцію mint смарт‑контракту. Ми автоматизуємо генерацію атрибутів — користувач може додавати пари «ключ‑значення» в інтерфейсі.

UI форми мінтингу

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

  1. Завантаження медіа в IPFS
  2. Завантаження метаданих
  3. Транзакція мінтингу

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

Чому lazy minting вигідний для авторів?

Високі комісії за газ — головний бар'єр для творців. Lazy minting дозволяє відкласти запис токена в блокчейн до моменту першого продажу. Замість негайної транзакції творець підписує EIP-712 ваучер, який містить ціну та URI метаданих. Покупець при покупці активує мінтинг і оплачує газ.

Порівняємо два підходи:

Характеристика Звичайний мінтинг Lazy minting
Оплата газу Платить творець (upfront) Платить покупець при покупці
Ризик для творця Газ може виявитися дорожчим, ніж виручка Мінімальний — газ лише при продажу
Швидкість появи в блокчейні Негайно Лише після покупки
Складність інтеграції Базова Потрібна генерація та перевірка ваучерів (EIP-712)

Ми рекомендуємо lazy minting для маркетплейсів та колекцій з низьким обсягом продажів. Економія газу може сягати 90% — це в 10 разів вигідніше за звичайний мінтинг.

Процес роботи над мінтингом у мобільному додатку

  1. Аналіз — визначаємо вимоги до NFT: стандарт (ERC‑721/1155), мережа (Ethereum, Polygon, Solana), способи оплати газу.
  2. Проектування — розробляємо архітектуру: вибір IPFS‑провайдера, схему метаданих, інтеграцію з гаманцем (WalletConnect або вбудований).
  3. Реалізація — пишемо модуль мінтингу: вибір медіа, завантаження в IPFS, генерація метаданих, виклик контракту. Для lazy minting додаємо підпис та перевірку ваучера NFT.
  4. Тестування — перевірка на тестовій мережі (Goerli, Mumbai), емуляція обривів зв'язку, тести з різними розмірами файлів.
  5. Деплой — публікація в App Store та Google Play, інтеграція з серверною частиною (якщо потрібно).

Етапи та терміни:

Етап Тривалість
Аналіз 1 день
Проектування 1-2 дні
Реалізація 3-5 днів
Тестування 1-2 дні
Деплой 1 день

Що входить у результат

  • Вихідний код модуля мінтингу (iOS Swift, Android Kotlin)
  • Інтеграція з IPFS (Pinata або NFT.Storage)
  • Документація по смарт‑контракту та API
  • Налаштування push-сповіщень для статусу транзакції
  • Керівництво з адміністрування (заміна провайдера, оновлення контракту)
  • Підтримка протягом 30 днів після здачі

Терміни

Проєкт займає від 5 до 10 робочих днів залежно від складності: базовий мінтинг — 5 днів, з lazy minting — до 8 днів, з інтеграцією кількох мереж — до 10 днів. Пропонуємо розробку під ключ — зв'яжіться з нами для точної оцінки вашого кейсу.

Ми гарантуємо сумісність з правилами App Store та Google Play, а також повну документацію для самостійного розвитку. Напишіть нам — оцінимо проєкт безкоштовно. Понад 5 років на ринку блокчейн-розробки, 15+ успішних проєктів. Замовте розробку мінтингу — отримайте готовий модуль за 5-10 днів.