Архитектура NFT проекта: стандарты, метаданные и газ-оптимизация

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

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Проектирование архитектуры NFT: ключевые решения

Большинство проблем NFT-проектов возникают не в момент разработки, а при масштабировании или выходе на маркетплейсы. Коллекция задеплоена, продана, а потом выясняется: метаданные хранятся на централизованном сервере и при его падении трейдеры видят пустые картинки; роялти не работают на Blur и LooksRare; контракт не поддерживает batch operations и газ на transfer достигает $5 при загруженной сети. Мы проектируем архитектуру так, чтобы такие сюрпризы не случились через полгода. Наши инженеры с 10-летним опытом в блокчейн-разработке провели архитектурное проектирование для 50+ NFT-проектов, поэтому знают типичные подводные камни. Получите консультацию, чтобы избежать этих ошибок.

Как выбрать стандарт токена: ERC-721, ERC-1155 или ERC-721A?

Классический ERC-721 — стандарт для уникальных NFT. Каждый tokenId уникален, каждый имеет своего owner. Широко поддерживается маркетплейсами. Слабое место: _mint в loop — каждый mint это отдельная запись в _owners mapping, каждая запись = SSTORE = ~20k gas. Mint 100 NFT в одной транзакции = 2M gas.

ERC-721A (Azuki) решает именно это: batch mint записывает минимум данных — только запись для первого tokenId в batch, остальные вычисляются on-demand через ownerOf. Экономия при batch mint — 60-80% газа. Компромисс: ownerOf и transferFrom стоят дороже чем в ERC-721 из-за дополнительных вычислений. Для проектов, где после mint активно торгуют — взвесьте.

ERC-1155 — мультитокен: один контракт содержит несколько ID, каждый ID может иметь несколько copies (fungible или semi-fungible). Идеально для: edition NFT (1000 одинаковых), gaming items (1000 мечей одного типа), сертификаты. Маркетплейсы поддерживают ERC-1155, но UX иногда хуже чем у ERC-721 (не все агрегаторы показывают edition корректно).

Пример расчета газа для batch mint Mint 10 ERC-721 токенов в цикле: ~200k gas. Mint 10 ERC-721A токенов: ~80k gas. Экономия 60% при цене газа 50 gwei = экономия $18 за 10 токенов. Для коллекции 10 000 NFT экономия составит более $18 000.
Стандарт Лучше для Gas на mint Gas на transfer
ERC-721 Уникальные PFP Высокий Низкий
ERC-721A Batch mint PFP Очень низкий Средний
ERC-1155 Edition, gaming Низкий Очень низкий

Что такое апгрейдаемость и когда она нужна?

Для большинства NFT-коллекций — нет. Immutable контракт вызывает больше доверия у коллекционеров. Proxy добавляет attack surface: storage collision при апгрейде может corrupt _owners mapping — и все токены станут «ничьими». Когда апгрейдаемость оправдана: gaming NFT с evolving mechanics, протокольные NFT в рамках DeFi системы. В этом случае — UUPS с timelock: любой апгрейд имеет delay 48-72 часа, community может отреагировать.

Как обеспечить перманентное хранение метаданных?

IPFS — децентрализованное хранилище, но файл существует только пока кто-то его «пинит». Если пинер отключится — ipfs://QmXxxx... станет недоступным. Решение: платный pinning сервис (Pinata, NFT.Storage, Filebase) + несколько пинеров. NFT.Storage (Filecoin) хранит данные перманентно через Filecoin deals — это ближе к настоящей децентрализации, чем просто IPFS pinning.

Arweave — pay-once-store-forever. Один платёж при загрузке, данные хранятся перманентно (~200 лет по расчётам протокола). Используется Metaplex (Solana NFT стандарт) и многими серьёзными ETH проектами. Для 10,000 NFT изображений Arweave обходится в $200-500 — дешевле чем постоянный pinning сервис за несколько лет.

Для полностью on-chain NFT (generative art, fully on-chain games) метаданные и изображение хранятся в контракте. tokenURI возвращает base64-encoded JSON с base64-encoded SVG внутри. Дорого при деплое, но абсолютно перманентно. Пример: Loot Project, Nouns DAO.

Решение Стоимость за 10K NFT Перманентность Децентрализация
IPFS + Pinata ~$99/мес Нет (пока платишь) Средняя
NFT.Storage Бесплатно (лимиты) Да (Filecoin deals) Высокая
Arweave $200–500 разово Да (200+ лет) Высокая
On-chain >$10,000 разово Да Полная

Как реализовать роялти через EIP-2981 и оператор фильтр?

Стандарт EIP-2981royaltyInfo(uint256 tokenId, uint256 salePrice) возвращает (receiver, royaltyAmount). Поддерживается OpenSea, Rarible, Foundation. Не enforced — advisory. Реализуется через ERC2981 из OpenZeppelin:

According to OpenZeppelin documentation, _setDefaultRoyalty sets a default royalty for all tokens, which can be overridden per token.

_setDefaultRoyalty(treasury, 500); // 5% = 500 basis points 

Для проектов, желающих enforced royalty: наследование от OperatorFilterer, регистрация в OpenSea Operator Filter Registry. Этот подход блокирует transfer через non-compliant маркетплейсы и реализует оператор фильтр NFT. Требует взвешенного решения — ограничивает transferability, вызывает споры в комьюнити.

Какие mint механики выбрать?

Dutch Auction — для проектов с высоким спросом. Снижает газ-войны (нет смысла перебивать цену), справедливая price discovery. Refund механизм для разницы между уплаченной и итоговой ценой.

Whitelist + Public фазы — стандарт. Merkle proof для WL, Public с rate limiting (max N per wallet per tx).

Lazy mint — NFT существует off-chain, создаётся on-chain только при первой покупке. Collector платит mint gas. Используется Zora, Foundation. Снижает риск creator'а — не платишь за деплой 10,000 токенов, которые могут не продаться.

Процесс архитектурного проектирования

  1. Аналитика (1-2 дня). Тип проекта (PFP / gaming / art / membership), целевые маркетплейсы, требования к royalty, планируемый utility (стейкинг, governance, доступ к контенту).
  2. Архитектурный документ (1-2 дня). Выбор стандарта с обоснованием, схема хранения метаданных, mint механика, royalty подход, roadmap апгрейдов если нужны.
  3. Технический аудит архитектуры. Проверяем совместимость с целевыми маркетплейсами (OpenSea, Blur, LooksRare), потенциальные газ-проблемы, attack surface.
  4. Сдача результата. Markdown-документ с архитектурными решениями, ER-диаграмма контрактов, storage layout, список рисков. На основе документа — разработка.

Что входит в работу

  • Архитектурный документ (выбор стандарта, схема метаданных, mint логика)
  • ER-диаграмма контрактов и storage layout
  • Анализ газ-оптимизаций для batch mint и transfer
  • Проверка совместимости с маркетплейсами
  • Список рисков и рекомендации по безопасности
  • Консультация по итогам (до 1 часа)

Ориентиры по срокам

Архитектурное проектирование NFT-проекта — 3-5 дней. Включает документ с решениями, схемы, ревью рисков. Стоимость рассчитывается после первичного брифинга о проекте. Закажите архитектурное проектирование — мы подготовим документ и схемы за 3–5 дней. Свяжитесь, чтобы обсудить ваш проект и получить оценку. Получите консультацию по стандартам токенов NFT и хранению метаданных.