Разработка NFT-коллекции

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка NFT-коллекции
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Разработка NFT-коллекции

Контракт NFT-коллекции на первый взгляд прост — OpenZeppelin ERC-721 с mint() функцией. На практике большинство проблем возникает не в самом контракте, а в связке метаданных, хранения, механики минтинга и деплоя. Коллекция, где метаданные хранятся на централизованном сервере (HTTP URL в tokenURI), уязвима к «rug pull» в части NFT — владелец сервера может изменить изображения в любой момент. Это не гипотетика: несколько коллекций в 2022-2023 годах заменили artwork после продажи.

Выбор стандарта и механики минтинга

ERC-721 vs ERC-1155

ERC-721 — один токен, один owner. Подходит для PFP-коллекций и уникального арта. ERC-1155 — один контракт, несколько типов токенов, возможен fungible и semi-fungible. Правильный выбор для игровых предметов, где одинаковые items могут быть у тысяч игроков.

Для стандартной PFP-коллекции (10 000 уникальных токенов) — ERC-721A (Azuki) вместо стандартного ERC-721. ERC-721A оптимизирует batch mint: mint 10 токенов за одну транзакцию стоит почти столько же газа, сколько mint одного в стандартном ERC-721. Экономия для пользователя — 50-80% на газе при mint нескольких токенов.

Механики минтинга

Whitelist / allowlist — адреса из списка минтят раньше публики. Реализация через Merkle Tree (не через маппинг): корень дерева хранится в контракте (32 байта), пользователь предоставляет Merkle proof при минтинге. Экономия газа на деплой и хранение — колоссальная по сравнению с mapping(address => bool) на тысячи адресов.

Signature-based allowlist — альтернатива Merkle Tree. Backend подписывает разрешение конкретному адресу через ECDSA (EIP-712), пользователь предоставляет подпись при минтинге. Удобнее для динамических allowlist (можно добавлять адреса без обновления Merkle root), но требует backend инфраструктуру.

Dutch Auction — цена начинается высокой и снижается каждые N минут до floor price. Позволяет рынку самому найти равновесную цену, снижает газ войны в момент старта. Сложнее в реализации — нужен корректный расчёт цены on-chain без оффчейн данных.

Метаданные и хранение

tokenURI должен возвращать JSON с полями name, description, image, attributes. Критичный вопрос — где хранится этот JSON и сами изображения.

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

Arweave — permanent storage, одноразовая оплата за вечное хранение. Более надёжно чем IPFS с точки зрения persistence. Используется для ценных коллекций и PFP.

On-chain SVG — изображения генерируются прямо в контракте как SVG строки. Полностью децентрализовано, невозможно изменить. Дорого по газу на деплой (если trait-данные хранятся on-chain), но для простых геометрических arт-проектов — идеально.

Reveal механика: при деплое все tokenURI указывают на placeholder. После минта — reveal, контракт обновляет baseURI на финальный IPFS путь. Randomness для генерации traits берём из Chainlink VRF (верифицируемо случайный) или из blockhash (манипулируемо, но дёшево для non-high-value коллекций).

Стек и процесс

Контракт — Solidity 0.8.x, ERC-721A или OpenZeppelin ERC-721. Тесты в Foundry: coverage >90%, тест на газ batch mint, тест Merkle proof verification.

Метаданные генерируем скриптом перед деплоем: берём trait layers, генерируем combinatorics, проверяем rarity distribution, загружаем на IPFS через Pinata API. Финальный IPFS CID фиксируем до деплоя.

Этап Содержание
Контракт ERC-721A + whitelist + public mint + withdraw
Метаданные JSON генерация, upload на IPFS, CID в контракт
Тесты Foundry unit + fuzz, газ-репорт
Деплой Sepolia testnet → Ethereum mainnet через Gnosis Safe
Верификация Etherscan + OpenSea collection verify

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

Базовая коллекция (ERC-721, whitelist через Merkle, public mint, IPFS метаданные) — 1-1.5 недели включая тесты и деплой. С Dutch auction, кастомной reveal механикой, Chainlink VRF — 2 недели. Стоимость зависит от сложности mint механики и объёма работ по метаданным.