not approved

Unified End-to-End Marketplace Transaction Library

₳90,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Feasibility
Value for money
Impact / Alignment
Solution

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.

Problem:

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.

Yes Votes:
₳ 31,218,205
No Votes:
₳ 141,803,864
Votes Cast:
160

[IMPACT] Please describe your proposed solution.

<u>Onchain</u>

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.

<u>Offchain</u>

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.

[IMPACT] How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

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.

[IMPACT] How do you intend to measure the success of your project?

By adoption this open-source library, and/or using the GUI that ships with it, Cardano projects will:

  1. Save a tremendous amount of time and effort. (Note that we have already spent more than 30k $USD building this project alone.)
  2. Significantly reduce risks associated with using smart-contracts with no or limited testing functionality.
  3. Be incentivized to want to build on Cardano knowing that a culture of open-source and extensive dev tooling already exists.

[IMPACT] Please describe your plans to share the outputs and results of your project?

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.

[CAPABILITY/ FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability?

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.

[CAPABILITY/ FEASIBILITY] What are the main goals for the project and how will you validate if your approach is feasible?

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:

  • Goal 1: Provide the dev community with a primitive marketplace usable online. -> Already done!
  • Goal 2: Open-sourcing our libraries, to help ease the burden of new and existing projects.
  • Goal 3: Providing documentation to further facilite usage of this library.
  • Goal 4: Attracting collaborators.

A success metric is easily defined as:

  1. Us effectively using these tools in our dApps.
  2. Other projects using these libraries for their own projects. The more, the better!

[CAPABILITY/ FEASIBILITY] Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

<u>Milestone 1</u>

  • Time: 1 month
  • Budget: 10k $USD
  • Success criteria: An open source marketplace transaction library.

<u>Milestone 2</u>

  • Time: 1 month
  • Budget: 10k $USD
  • Success criteria: Additional functionalities that fully work.

<u>Milestone 3</u>

  • Time: 1 month and beyond

  • Budget: 10k $USD

  • Success criteria: An actively maintained repo.

    [CAPABILITY/ FEASIBILITY] Please describe the deliverables, outputs and intended outcomes of each milestone.

<u>Milestone 1</u>

  • Deliverables: Wrap-up remaining issues within the code, write a through documentation, clean the UI and open-source the code.
  • Outputs: Open-source GitHub repos for these libraries.

<u>Milestone 2</u>

  • Deliverables: Add new functionalities, namely staking reward splitting, where a smart contract acts as a staking address, distributing funds to a pre-defined treasury address (or any other) and the user who initiated the contract.
  • Outputs: The previous additional functionalities.

<u>Milestone 3</u>

  • Deliverables: Going over issues known and unknown and fixing them.

  • Outputs: An increasingly cleaner and less 'buggy' library.

    [RESOURCES & VALUE FOR MONEY] Please provide a detailed budget breakdown of the proposed work and resources.

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).

<u>Budget breakdown</u>

  • Plutus smart contract engineering

80$/hour x 40h/week x 8 weeks = 25,600 $

  • UI/UX development

50$/hour x 40h/week x 2 weeks = 4,000 $

  • DevOps

Approximately = 400 $

<u>Total = 30,000 $</u>

[RESOURCES & VALUE FOR MONEY] Who is in the project team and what are their roles?

<u>Albert Feghaly</u>: Project lead and developer, Python developer, Plutus Pioneer Program Alumnus.

<https://github.com/feghalya>

<u>Thespian Agency</u>: Our partner, a well known agency in the Cardano ecosystem.

<https://www.thespian.agency/>

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.

[RESOURCES & VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?

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!

Community Reviews (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00