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...
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.
Использованные
технологии
Workflow
Workflow
Workflow
- ТребованияМы получили технические требования от IOHK и разбили их на небольшие задачи, чтобы оценить примерный бюджет и сроки.
- ПроцессРешили работать по модели Time and Material из-за высокого уровня неопределённости. Платформу Plutus нужно было тестировать, поэтому риск непредвиденных проблем был реальным.
- КоммуникацияНаши разработчики продуктивно сотрудничали с командой IOHK. Мы принимали участие в Cardano Summit, ежемесячных обновлениях и технических презентациях.
Дарья
Менеджер проекта
Помню, в каком восторге была команда, когда мы начали этот проект: это был шанс углубить наши знания о блокчейне Cardano, попробовать протокол IPFS и завернуть всё это в красивый интерфейс. Я горжусь тем, что стала частью этого проекта!
Особенности проекта
Приложение работает как классический маркетплейс для NFT
Пользователи могут:
- Создавать свои невзаимозаменяемые токены
- Объединять карточки (токены) в коллекции (бандлы)
- Проводить аукционы
- Устанавливать цены и сроки аукционов
- Загружать изображения, а также видео- и аудиофайлы
Платформа монетизируется за счет комиссий от продажи NFT и аукционов.
Станислав
Инженер Plutus
Каждое создание NFT происходит в два этапа: сначала загружаются связанные метаданные (это может быть любой файл, например, изображение) в хранилище, затем создается токен, который попадает в криптокошелёк создателя. Первый этап требует очень важного свойства — адресуемости контента, что обеспечивается протоколом IPFS: каждый файл получает уникальный идентификатор контента (Content ID). Основная задача смарт-контракта маркетплейса — обеспечить однозначную связь между токеном в кошельке пользователя и этим идентификатором контента. Приложение NFT-маркетплейса также предоставляет пользователю возможность выставлять NFT на продажу или аукцион, объединять их в коллекции, обеспечивая приватность ссылок на идентификаторы контента для не выставленных на продажу NFT.
Почему IOHK
выбрали нас
Инфраструктура для смарт-контрактов Cardano была написана на Haskell, а наша команда имеет опыт работы с Haskell с 2018 года.
Это стало основной причиной, по которой IOHK обратились к нам.
Наших опытных разработчиков на Haskell увлекают такие сложные и интересные задачи с их постоянными вызовами. Нам пришлось пройти партнёрскую вводную программу для освоения платформы Plutus, принять участие в исследовании различных решений вместе с командой заказчика, а также поработать над уникальными решениями — создать собственное децентрализованное приложение на Cardano.