Cardano NFT-marketplacePartnership with IOHK

See all cases
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...

We designed and developed the first NFT marketplace on Cardano.

Our main purpose was testing Plutus platform — an environment for writing smart contracts on the Cardano blockchain.

Project team

Olga, Plutus engineer
Plutus engineer
Darya, Project manager
Project manager
Stanislav, Plutus engineer
Plutus engineer

Technology
we used

Workflow

  1. Requirements

    We received technical requirements from IOHK and decomposed them to small tasks to provide an approximate budget and term.
  2. Process

    We decided to work by Time and Material because of the high level of uncertainty. Plutus platform needed to be tested, so risk of unexpectable troubles was real.
  3. Communication

    Our developers had productive partnership with IOHK members. Our team took part in Cardano summit, some monthly updates and technical presentations.
Darya, Project manager
Darya
Project manager
I remember how excited the team was when we kicked off this project: it was a chance to deepen our expertise in Cardano blockchain, try out IPFS protocol and wrap this all up in a pretty interface. So proud to be a part of this project!

Project's features

Application works as a classic marketplace for NFT
NFT marketplace with a list of NFT singletonsCalendar for choosing the auction end dateNFT bundle card with sale and auction settingsNFT card on auction with a bid form

Users can:

  • Create their non fungible tokens
  • Unite cards (tokens) in collections (bundles)
  • Make auction
  • Set price and auction period
  • Upload images, as well as video and audio files

The platform is monetizing through commissions from the sale of NFTs and auctions.

Stanislav, Plutus engineer
Stanislav
Plutus engineer
Every NFT creation is done in two steps, first — uploading associated metadata (this could be any file e.g. a picture) into storage, second — minting a token that goes into creators wallet on blockchain. First step requires a very important property — content addressability, this is ensured by IPFS: every file gets a unique content ID. The main purpose of the marketplace smart contract is to ensure a one to one link between a token in users wallet and that content ID. NFT marketplace app also provides user ability to list NFTs for sale or auction and bundling them up, ensuring privacy of content ID links for not listed NFTs.

Why IOHK
chosen us

Infrastructure for Cardano smart-contracts was written in Haskell, and our team has experience in working with Haskell since 2018.

This was the main reason why IOHK turned to us.

Our Haskell team of experienced developers is passionate about such complex and interesting tasks, as well as constant challenges to their capabilities. We had to go through an affiliate introductory program to master the Plutus platform, take part in the research of various solutions together with the customer’s team, and also work on our own solutions — create our own decentralized application on Cardano.

Experience we received
after this project

Developing of decentralized applications on the Cardano (on the Plutus platform)
Testing and dropping applications into the Cardano test network
Working together with the international Haskell community and sharing experience with other Haskell engineers
Telegram
Calendly
WhatsApp