Налаштування зберігання метаданих NFT на Arweave

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Налаштування зберігання метаданих NFT на Arweave
Простий
~1 день
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Налаштування зберігання метаданих NFT на Arweave

IPFS — не постійне хранилище. Файл на IPFS існує, поки хоча б один нод тримає його в pin. Платний пиннінг через Pinata або NFT.Storage коштує грошей — й якщо проект перестає платити, метаданні та зображення зникають. «Ваш» NFT стає токеном, що вказує на 404.

Arweave вирішує це інакше: одноразова плата за постійне зберігання. Економіка протоколу розрахована на зберігання даних 200+ років через storage endowment механізм. Плачуєш один раз — файл існує навіки.

Як працює загрузка на Arweave

Загрузка через Bundlr Network (тепер Irys) — це L2 поверх Arweave. Основні переваги: миттєве підтвердження загрузки (99.9% впевненість відразу, фіналізація на Arweave через кілька хвилин-годин), підтримка оплати в ETH/MATIC/SOL крім AR токена, batch загрузка тисяч файлів через SDK.

import Irys from "@irys/sdk";

const irys = new Irys({ 
  url: "https://node1.irys.xyz",
  token: "ethereum",
  key: process.env.PRIVATE_KEY
});

// Загружаємо одне зображення
const response = await irys.uploadFile("./images/1.png", {
  tags: [{ name: "Content-Type", value: "image/png" }]
});
const permanentUrl = `https://arweave.net/${response.id}`;

Для коллекції 10k токенів: загружаємо спочатку всі зображення, отримуємо масив Arweave transaction IDs, потім формуємо JSON metadata з "image": "https://arweave.net/TxId", загружаємо metadata, отримуємо базовий URI.

Вартість зберігання одного зображення (~50KB PNG) на момент написання — $0.001-0.005. Вся 10k коллекція коштує $10-50 залежно від розміру файлів. Це одноразовий платіж.

Структура URI для смарт-контракту

Після загрузки можливі два підходи до базового URI:

Варіант 1 — Irys manifest (рекомендується для коллекцій): загружаємо всі файли як папку через irys.uploadFolder(), отримуємо один manifest ID. Тоді baseURI = "https://arweave.net/ManifestId/" та tokenURI(1) повертає "https://arweave.net/ManifestId/1". Зручно, але manifest трохи повільніше фіналізується.

Варіант 2 — індивідуальні txIds: кожен metadata JSON має свій txId, записуються в маппінг mapping(uint256 => string) private _tokenURIs. Більш гнучко (можна обновити окремий токен до reveal), але дорожче по газу.

Для стандартної generative коллекції з reveal — Варіант 1 + reveal через setBaseURI(manifestId).

Ориєнтири по термінах і процесі

Налаштування зберігання для готової коллекції (зображення + metadata JSON вже згенеровані) — 1 день:

  • Налаштування Irys SDK, поповнення баланса в ETH
  • Batch загрузка зображень з перевіркою integrity
  • Генерація metadata JSON з arweave.net URLs
  • Загрузка metadata, отримання manifest ID
  • Обновлення baseURI в контракті (якщо вже деплоєний)

Якщо metadata потрібно генерувати з нуля (traits не визначені) — це окрема задача.

Вартість фіксована по обсягу роботи + вартість AR storage (оплачується клієнтом напрямую або включається в кошторис).