Перейти к содержимому

Cardano NFT-маркетплейс

В партнёрстве с IOHK

stateTransitionCheck :: MarketplaceDatum -> MarketplaceRedeemer -> 
  ScriptContext -> Bool
stateTransitionCheck nftStore (CreateNftRedeemer ipfsCidHash nftEntry) 
  ctx = 
    traceIfFalse "CreateNftRedeemer: "
    traceIfFalse "NFT entry already exists" $
    isNothing $ AssocMap.lookup ipfsCidHash $ nftUnion nftStore

github.com...

Мы спроектировали и разработали первый NFT-маркетплейс на Cardano.

Главной нашей целью было тестирование платформы Plutus — среды для написания смарт-контрактов на блокчейне Cardano.

Команда проекта

Инженер Plutus
Менеджер проекта
Инженер Plutus

Использованные
технологии

Workflow
Workflow
Workflow

  1. Требования
    Мы получили технические требования от IOHK и разбили их на небольшие задачи, чтобы оценить примерный бюджет и сроки.
  2. Процесс
    Решили работать по модели Time and Material из-за высокого уровня неопределённости. Платформу Plutus нужно было тестировать, поэтому риск непредвиденных проблем был реальным.
  3. Коммуникация
    Наши разработчики продуктивно сотрудничали с командой IOHK. Мы принимали участие в Cardano Summit, ежемесячных обновлениях и технических презентациях.
Дарья
Менеджер проекта
Помню, в каком восторге была команда, когда мы начали этот проект: это был шанс углубить наши знания о блокчейне Cardano, попробовать протокол IPFS и завернуть всё это в красивый интерфейс. Я горжусь тем, что стала частью этого проекта!

Особенности проекта

Приложение работает как классический маркетплейс для NFT
Пользователи могут:
  • Создавать свои невзаимозаменяемые токены
  • Объединять карточки (токены) в коллекции (бандлы)
  • Проводить аукционы
  • Устанавливать цены и сроки аукционов
  • Загружать изображения, а также видео- и аудиофайлы

Платформа монетизируется за счет комиссий от продажи NFT и аукционов.

Станислав
Инженер Plutus
Каждое создание NFT происходит в два этапа: сначала загружаются связанные метаданные (это может быть любой файл, например, изображение) в хранилище, затем создается токен, который попадает в криптокошелёк создателя. Первый этап требует очень важного свойства — адресуемости контента, что обеспечивается протоколом IPFS: каждый файл получает уникальный идентификатор контента (Content ID). Основная задача смарт-контракта маркетплейса — обеспечить однозначную связь между токеном в кошельке пользователя и этим идентификатором контента. Приложение NFT-маркетплейса также предоставляет пользователю возможность выставлять NFT на продажу или аукцион, объединять их в коллекции, обеспечивая приватность ссылок на идентификаторы контента для не выставленных на продажу NFT.

Почему IOHK
выбрали нас

Инфраструктура для смарт-контрактов Cardano была написана на Haskell, а наша команда имеет опыт работы с Haskell с 2018 года.

Это стало основной причиной, по которой IOHK обратились к нам.

Наших опытных разработчиков на Haskell увлекают такие сложные и интересные задачи с их постоянными вызовами. Нам пришлось пройти партнёрскую вводную программу для освоения платформы Plutus, принять участие в исследовании различных решений вместе с командой заказчика, а также поработать над уникальными решениями — создать собственное децентрализованное приложение на Cardano.

Опыт, который мы получили
после этого проекта

Разработка децентрализованных приложений на Cardano (на платформе Plutus)

Тестирование и запуск приложений в тестовой сети Cardano

Совместная работа с международным сообществом Haskell и обмен опытом с другими инженерами