Partnership with IOHK
ScriptContext -> Bool
stateTransitionCheck nftStore (CreateNftRedeemer ipfsCidHash nftEntry)
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.
- RequirementsWe received technical requirements from IOHK and decomposed them to small tasks to provide an approximate budget and term.
- ProcessWe 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.
- CommunicationOur developers had productive partnership with IOHK members. Our team took part in Cardano summit, some monthly updates and technical presentations.
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!
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.
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.