Разработка NFT-коллекции на TON: смарт-контракты, mint, маркетплейсы

Почему разработка NFT на TON — это вызов для EVM-разработчиков? TON — архитектурно другой блокчейн. Если вы привыкли работать с Solidity и EVM, где NFT — это запись в маппинге контракта, здесь каждый токен — самостоятельный смарт-контракт. Это меняет всё: деплой, mint, transfer и даже простые опе

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

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

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

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

Почему разработка NFT на TON — это вызов для EVM-разработчиков?

TON — архитектурно другой блокчейн. Если вы привыкли работать с Solidity и EVM, где NFT — это запись в маппинге контракта, здесь каждый токен — самостоятельный смарт-контракт. Это меняет всё: деплой, mint, transfer и даже простые операции вроде листинга на маркетплейсе. Мы, наша команда, специализируемся на TON с самого запуска основной сети. За 7+ лет опыта в блокчейне и более 50 выпущенных NFT-коллекций на Ethereum и TON мы набили руку на таких проектах. Работаем под ключ: аналитика, разработка контрактов, mint-сайт, интеграция с маркетплейсами. Оценим ваш проект бесплатно — просто напишите.

Архитектура TEP-62

Collection и Item контракты

Коллекция на TON состоит из двух типов контрактов: NFT Collection contract и NFT Item contract. Collection хранит owner_address, next_item_index, content (metadata коллекции), nft_item_code (код для деплоя item контрактов). При минте деплоит новый NFT Item контракт через internal message.

Item контракт каждого токена хранит: index, collection_address, owner_address, individual_content. Адрес item-контракта вычисляется детерминированно из collection_address и index через stateInit:

cell calculate_nft_item_state_init(int item_index, cell nft_item_code) { cell data = begin_cell() .store_uint(item_index, 64) .store_slice(my_address()) .end_cell(); return begin_cell() .store_uint(0, 2) .store_dict(nft_item_code) .store_dict(data) .store_uint(0, 1) .end_cell(); } 

Это позволяет вычислять адрес любого NFT off-chain, что важно для индексаторов и маркетплейсов.

Процесс передачи NFT

Transfer NFT на TON — это отправка internal message от текущего владельца к NFT Item контракту с operation code transfer. Item контракт меняет owner_address и опционально отправляет ownership_assigned notification новому владельцу:

if (op == op::transfer()) { slice new_owner = in_msg_body~load_msg_addr(); slice response_destination = in_msg_body~load_msg_addr(); throw_unless(401, equal_slices(sender_address, owner)); owner = new_owner; save_data(); send_msg(new_owner, 0, op::ownership_assigned(), ...); } 

В отличие от EVM, где transferFrom — синхронная операция, в TON transfer — это async message. Новый владелец получит уведомление через следующий блок. Это влияет на логику маркетплейсов: листинг и delisting требуют обработки async confirmation.

Хранение метаданных

TON NFT metadata хранится в двух форматах: on-chain (TL-B encoded прямо в контракте) и off-chain (URL на JSON файл). Для коллекций с generative metadata типичен snake encoding URL:

Cell content = begin_cell() .store_uint(0x01, 8) .store_slice("https://example.com/nft/") .end_cell() 

Individual content хранит суффикс (например, 123.json), коллекция хранит base URL. get_nft_data() getter объединяет их для полного URI. Формат JSON идентичен EVM: name, description, image, attributes. Хранение на IPFS работает так же — разница только в способе передачи URI.

Сколько стоит mint на TON и как сэкономить?

Каждый mint — это деплой нового контракта, что стоит дороже чем EVM SLOAD. На TON деплой одного NFT Item стоит около 0.05 TON. При batch mint 10 000 токенов сразу — это 500 TON только на storage fees.

Оптимизация: lazy mint — NFT Item деплоится при первом transfer или явном claim, что экономит до 50% затрат. Альтернатива — предварительный деплой с распределением по батчам с задержкой между блоками. Благодаря шардинговой архитектуре TON позволяет mint-ить 10 000 NFT за один блок, что в 20 раз быстрее, чем на Ethereum.

Как задеплоить NFT-коллекцию за 4 шага

  1. Подготовка метаданных: сгенерируйте JSON файлы для каждого токена (name, description, image, attributes) и загрузите на IPFS.
  2. Разработка контрактов Collection и Item на FunC с поддержкой TEP-62 и TEP-64. Используйте проверенные шаблоны из ton-blockchain/token-contract.
  3. Деплой Collection контракта на testnet через TEP-62. Укажите owner_address, nft_item_code, content metadata.
  4. Mint токенов: отправьте internal message с operation code deploy_nft_item для каждого индекса. Используйте batch mint для группы токенов, чтобы снизить нагрузку.

Выбор языка для продакшна

Критерий FunC Tact
Уровень Низкий, явное управление памятью Высокий, ближе к TypeScript
Зрелость Продакшн-контракты, много аудитов Экосистема молодая
Производительность Максимум Незначительно ниже
Рекомендуем для продакшна Да Только для малых проектов

Для продакшн-коллекций мы используем FunC с проверенными шаблонами. Tact упрощает прототипирование, но требует дополнительного аудита.

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

  • Смарт-контракты Collection и Item на FunC (TEP-62, TEP-64, TEP-66)
  • Скрипты деплоя через ton/core и @ton/ton
  • Метаданные в формате TEP-64 (on-chain или off-chain с IPFS)
  • Mint dApp с TonConnect (опционально)
  • Полная документация по интеграции и управлению
  • Поддержка в течение 30 дней после запуска

Процесс работы и сроки

Этап Длительность
Аналитика 0.5-1 день
Разработка контрактов (FunC) 3-4 дня
Mint-сайт (опционально) 1-2 дня
Деплой на testnet/mainnet и интеграция с маркетплейсами 1-2 дня
Итого 5-7 дней

Наши инженеры проводят аудит смарт-контрактов TON с использованием формальной верификации и статического анализа. Свяжитесь с нами, чтобы обсудить вашу коллекцию: Telegram или почта.