Як створити додаток для торгівлі NFT: технічні рішення для мобільних платформ
Уявіть: користувач заходить у ваш NFT-маркетплейс на смартфоні, знаходить рідкісний токен, натискає «Купити» — і... нічого не розуміє. Замість звичного списання картки — запит підпису в гаманці, транзакція висить без підтвердження. Ми стикалися з цим десятки разів. Наш досвід — 5+ років у мобільній розробці та 30+ проєктів з Web3 — дозволяє проектувати UX так, щоб користувач не втрачав конверсію. Нижче розберемо, як ми це робимо на Swift та Kotlin.
Які завдання вирішує мобільний маркетплейс
- Підписування транзакцій без втрати контексту. Користувач не повинен гадати, що робить. Кожен крок пояснюємо: «Підпишіть approve, щоб виставити токен на продаж». Використовуємо WalletConnect v2 для плавного переходу.
- Швидке завантаження галереї. IPFS-шлюзи повільні — завантаження 100 токенів може зайняти 30 секунд. Ми кешуємо метадані на пристрої (до 500 МБ) і підключаємо індексатори — The Graph або Alchemy NFT API, час відповіді 50–200 мс, що в 5 разів швидше за прямі запити до блокчейну.
- Підтримка роялті. За стандартом ERC-2981 маркетплейс автоматично вираховує комісію творцю та показує її покупцю. Жодних прихованих списань.
Як вибрати підхід: Web3 Native чи WalletConnect?
Два основні шляхи:
Native SDK (web3.swift / web3j) — повний контроль над транзакціями, вбудована робота з ABI. Дає кращий UX: користувач не перемикається в сторонній гаманець. Але вимагає більше коду для подій смарт-контрактів.
WalletConnect v2 + WebView — швидше в розробці, підходить, якщо команда знає React Native або Unreal Engine. QR-код або deep link підключають зовнішній гаманець. Мінус — два переходи для непідготовленого користувача.
Докладніше про протокол WalletConnect — в офіційній документації на WalletConnect
Ми рекомендуємо нативний SDK для маркетплейсів з високою активністю користувачів, WalletConnect — для MVP та тестових запусків.
Чи варто використовувати індексатори?
Так, індексатори (The Graph, Alchemy, Moralis) агрегують метадані NFT, забезпечуючи час відповіді 50–200 мс замість 10+ секунд. Для колекцій понад 1000 токенів це обов'язково.
Як уникнути помилок з IPFS?
Використовуйте 2–3 шлюзи з fallback (Cloudflare, NFT.storage, власний вузол) та кешування на пристрої до 500 МБ.
Технічна реалізація: кешування NFT та індексація
// Android — кешування метаданих NFT з Coil + OkHttp val imageLoader = ImageLoader.Builder(context) .memoryCache { MemoryCache.Builder(context) .maxSizePercent(0.25) // 25% RAM .build() } .diskCache { DiskCache.Builder() .directory(context.cacheDir.resolve("nft_images")) .maxSizeBytes(500L * 1024 * 1024) // 500 MB .build() } .okHttpClient { OkHttpClient.Builder() .addInterceptor(IpfsGatewayInterceptor()) // замінює ipfs:// на https:// .build() } .build() IpfsGatewayInterceptor перехоплює URI виду ipfs://Qm... і підставляє швидкий шлюз — Cloudflare (cloudflare-ipfs.com), NFT.storage, або власний. Додайте fallback: якщо перший шлюз не відповідає за 3 секунди — пробуй наступний.
Для колекцій від кількох тисяч токенів — не завантажувати метадані безпосередньо з блокчейну. Використовуйте індексатор: The Graph, Alchemy NFT API, Moralis, OpenSea API. Вони вже агрегували метадані — час відповіді 50–200 мс замість 10+ секунд.
Що входить в роботу: deliverables
- Документація з архітектури: діаграми потоків даних (сигнатури транзакцій, взаємодія з контрактами).
- Доступ до репозиторію з CI/CD (GitHub Actions) та налаштуванням Firebase App Distribution.
- Навчання команди: воркшоп з роботи з WalletConnect та підписування транзакцій.
- Підтримка протягом місяця: моніторинг, виправлення багів, оновлення API.
Строки та вартість
| Компонент | Строк |
|---|---|
| Гаманець (WalletConnect v2 / embedded) | 1 тиждень |
| Каталог з IPFS, пагінацією, фільтрами | 1–2 тижні |
| Профіль: NFT користувача | 1 тиждень |
| Fixed Price покупка/продаж | 1.5 тижня |
| Аукціон | 1.5 тижня |
| Офери | 1 тиждень |
| Пошук та фільтри по traits | 1 тиждень |
MVP з каталогом, покупкою за фіксованою ціною та профілем: 6–8 тижнів, від $15 000. Повноцінний маркетплейс з аукціонами, оферами, колекціями та рейтингами: 2–3 місяці, від $40 000. Вартість розраховується індивідуально — напишіть нам, оцінимо проєкт за 1 день.
Типові помилки та як їх уникнути
- Немає індексатора для великих колекцій. Прямі запити до блокчейну викликають таймаути. Підключайте The Graph або Alchemy до старту розробки.
- Ігнорування роялті. Без ERC-2981 творці не отримують комісію — це порушує ліцензійні угоди.
- Одна точка відмови для IPFS. Використовуйте 2–3 шлюзи з fallback, щоб не втратити метадані.
Чек-лист для запуску
- [ ] Підключено WalletConnect v2 з підтримкою Sign API - [ ] Налаштовано кешування IPFS з fallback-шлюзами - [ ] Реалізовано індексацію NFT через Alchemy або The Graph - [ ] Додано підтримку ERC-2981 з відображенням роялті - [ ] Проведено навантажувальне тестування транзакцій (200+ за хвилину)Наші інженери мають сертифікати з Swift (iOS 15+) та Kotlin (Jetpack Compose). 5+ років досвіду, 30+ реалізованих Web3-проєктів. Гарантуємо дотримання App Store Review Guidelines (Section 4.2/5.1) та вимог Google Play Console. Замовте консультацію — ми підготуємо комерційну пропозицію з архітектурою та строками.







