Skip to main content

Cardano NFT-marketplace

Partnership with 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

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

Plutus engineer
Project manager

we used


  • Requirements
    We received technical requirements from IOHK and decomposed them to small tasks to provide an approximate budget and term.
  • 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.
  • Communication
    Our developers had productive partnership with IOHK members. Our team took part in Cardano summit, some monthly updates and technical presentations.
Darya Trifonova
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
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.

You can leave this field empty and we will contact you by email.

By submitting the form, you agree to the Privacy Policy

Stanislav Zhdanovich
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.

chosen us

Infrastructure for Cardano smart-contracts was written in Haskelll, 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