Please describe your proposed solution.
The Cardano DApp ecosystem lacks open-source production-grade code, particularly evident in the closed-source nature of the top three Cardano DEXs. Due to limited information sharing between development teams, redundant work, such as the similar improvements to the batcher architecture, is being performed independently by each DEX. This is especially an issue if a new development team from a different ecosystem wants to launch a DEX (or project of a similar scale) in Cardano. Right now, on Cardano, a new team would only be able to find a few very brief technical articles going over the batcher architecture, and the outdated MinSwap codebase (written in Plutus V1 and a very small amount of Plutarch V1). The team would need to invest a considerable amount of capital to even get started with development using that information as a reference, and after all that money and time, the result would be a product that is similar to or even inferior to the existing closed-source applications. In contrast, on Ethereum a team that is new to the ecosystem can see the entire UniSwap codebase complete with architecture, design, implementation, security practices, and contract optimization techniques. If the ecosystem had more readily available production code, then all that time and money could go towards improving existing architectures / implementations and further the ecosystem as a whole, as opposed to how it is now where it has to be dedicated to playing catch up with closed source projects.
To address this issue, we are committed to providing the community with five versatile production level open-source smart contract libraries. These libraries showcase best practices for smart contract design and architecture, security and unit testing, and optimization techniques and tricks. These libraries are designed to be composable, enabling them to be utilized as essential components for other smart contracts. Our approach includes releasing the libraries on GitHub with both the source code and compiled plutus scripts, eliminating the need for users to set up a development environment.
Merkle Tree Contracts
- Efficiently verifies data integrity and enables fast proof verification in large datasets.
- updatable multisig contracts
- Enables multiple parties to jointly manage and approve transactions, enhancing security and decentralization.
Single Asset Staking Contracts
- Facilitates collective staking of digital assets and distributes rewards among participants.
Linear Vesting Contracts
- A secure linear vesting contract with customizable parameters.
Bridge Contracts
- Facilitates communication and interoperability between different blockchain networks, enabling the transfer of assets and data
Yield Farming Contracts
- A library to simplify the creation of yield farming pools
Furthermore, we prioritize the reliability and functionality of our smart contracts by subjecting them to rigorous user testing. This ensures that the contracts are thoroughly tested and dependable. Additionally, we offer a user-friendly development environment along with a concise tutorial to simplify the setup process for users.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The most frequent feedback we received as co-chairs of the IOHK developer experience working group was that the biggest pain point in Cardano development was the lack of accessibility to up-to-date smart contracts that are actually used in production.
The contracts that we provide will fulfill this vital role. No longer, will developers be forced to build from the ground up, and independently discover design patterns and architectures over the course of many iterations of their project. With this proposal, developers will be able to learn from and improve upon production DApps. Instead of being forced to invest countless hours implementing an efficient batching architecture from scratch, they will simply be able to reference an existing production implementation and start from there, to modify, improve, or reimplement it as they see fit.
How do you intend to measure the success of your project?
The most important metric for measuring the success of this project is the feedback of developers who use it, regardless of whether they use it as a starting point to launch their own DApps, integrate it into existing DApps, or simply use it as reference material to learn advanced design patterns and production tricks and techniques from. We will also track the number of projects which utilize each of the individual contracts. Finally, the number of stars, forks and closed issues on the Github repo is a great naïve indicator for the success of the project. The entire process of development is easily trackable by viewing the Github commits and issues.
Please describe your plans to share the outputs and results of your project?
We will collaborate with existing projects that use specialized versions of these contracts to adopt and co-market the generalized contracts to get it into the hands of Cardano developers. Additionally, these contracts will be easily accessible and deployable on Demeter.