Last updated a year ago
Listing NFTs on Cardano requires using established marketplaces even when a simple in-house hosted solution can work, because creating testable and secure Buy/Sell/Close functionality is not trivial.
We have built a Haskell library and a corresponding testing module as well as an API (in Python) and a React GUI frontend available at cardanoops.intellart.ca that can be integrated to any project.
This is the total amount allocated to Unified End-to-End Marketplace Transaction Library.
Whole team: Intellart
Partner: Thespian Agency
No dependencies.
Project will be fully open source.
Onchain
We started this project as part of our Open Science NFT Marketplace because we needed to give our users the ability to mint, buy, sell and close (delist) NFTs using smart-contracts. We also needed to thoroughly test these smart-contracts to ensure our user's funds would not be at risk. To that end, we based our Buy/Sell Plutus smart contracts on MartifyLabs’s martify.contracts repo, modified them to fit our needs and added a full testing module on top. The testing module, written in Haskell, uses concepts from IOHK's plutus-contract library to implement unit tests crucial for a unique onchain smart-contract.
Offchain
To interact with these contracts, we created another standalone GitHub repo for the backend. As you can already tell, we are big fans of composability! For that end, we built a REST API using PyCardano, Flask and a Blockfrost connection. This in itself made the code reusable and independent of any specific dApp. But we didn't stop there; we went further and accessorized this backend with a React frontend that interacts with the Nami wallet (with more wallet support coming soon) that we deployed on cardanoops.intellart.ca for anyone to test.
Open-sourcing the above toolset will allow any new Cardano project to fully benefit from the work that we've done until now.
As is notoriously known in the ecosystem, writing smart-contracts in Haskell and Plutus is challenging. New smart contract programming languages such as Aiken are making strides in simplifying code complexity, but these are still new and, more importantly, they don't abstract rigorous testing implementations. Case-in-point, testing these smart-contracts has proven to be a tremendous hurdle as we have performed this work throughout June, July and August of 2022, during which period the old Cardano testnet was experiencing issues, the Vasil hard-fork was bringing in new paradigms, the Cardano node was experience syncing problems and older tools such as the PAB were becoming obsolete.
By having this open-source library with testable functionalities and a constant maintenance from our team, we ensure that, should similar circumstances arise, Cardano developers and projects will have a toolset ready to be used, letting them focus on building and focusing on their own products.
By adoption this open-source library, and/or using the GUI that ships with it, Cardano projects will:
After we receive the funding, our first priority would be to clean the codebase, add documentation and open-source the whole thing. Everyone would then be able to follow along by viewing the project's GitHub activity and hopefully participating as well.
Anyone can already use this product by going on cardanoops.intellart.ca. This should be enough proof that we can deliver on our promises. Moreover, you can also have a look at our GitHub to see for yourself the activity derived from our previous work. Our monthly reports and presence on social media (twitter: @AlbertFeghaly, @OpenScienceBlog, @Veritheum) also attest to our commitment to transparency and accountability.
Essentially, our ultimate goal is to provide value to the whole Cardano ecosystem by providing tooling that we will be using in our own dApps. Breaking it down further:
A success metric is easily defined as:
Milestone 1
Milestone 2
Milestone 3
Milestone 1
Milestone 2
Milestone 3
Our costs for building these tools are already at 35k $USD. We are asking for 90k ADA, which at 3 ADA per USD returns a value of 30k, which is less than what was originally used for this development. We will use this money to focus on maintaining, enhancing and documenting our toolset.
Note that we have not included any costs relate to marketing, promotion, community engagement as there are absorbed in our ongoing projects (e.g., our Open Science Marketplace mentioned herein).
Budget breakdown
80$/hour x 40h/week x 8 weeks = 25,600 $
50$/hour x 40h/week x 2 weeks = 4,000 $
Approximately = 400 $
Total = 30,000 $
As previously mentioned, we already know the cost of such a development because we have incurred it ourselves. At 35k $USD (or a bit less, as the timing of our development was slightly unfortunate as explained above), this is what we expect every other project who uses our tooling will save in development cost, which can add up pretty fast!
Albert Feghaly: Project lead and developer, Python developer, Plutus Pioneer Program Alumnus.
Thespian Agency: Our partner, a well known agency in the Cardano ecosystem.
Albert and Thespian employees have and will continue to contribute to the projects and libraries mentioned above. For the current project, Thespian has contributed most of the work in terms of Plutus smart contracts and UI/backend work.