Last updated 5 months ago
We lack available open source smart contracts, hindering dApp development, innovation, and ecosystem growth. Teams must build from scratch, duplicating work already done by closed source projects.
We will provide and maintain a set of generic open-source production ready DApps that users can either build upon, or use as reference material to learn best practices and design patterns.
This is the total amount allocated to Anastasia Labs - Open Source Production Grade DApps. 4 out of 4 milestones are completed.
1/4
Phase 1 - Generalize Contracts
Cost: ₳ 35,000
Delivery: Month 2 - Dec 2023
2/4
Phase 2 - Unit Testing - Property Based Testing
Cost: ₳ 35,000
Delivery: Month 4 - Feb 2024
3/4
Phase 3 - Create examples and educational resource
Cost: ₳ 35,000
Delivery: Month 5 - Mar 2024
4/4
Phase 4 - Documentation & Collaboration
Cost: ₳ 30,500
Delivery: Month 6 - Apr 2024
Jonathan Rodriguez
Mladen Lamesevic
TxPipe
Demeter
No dependencies.
Project will be fully open source.
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
Single Asset Staking Contracts
Linear Vesting Contracts
Bridge Contracts
Yield Farming Contracts
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.
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.
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.
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.
Anastasia Labs has rapidly established itself as a leading development firm within the Cardano Ecosystem. Our team consists of highly skilled developers who have made significant contributions to various community projects, including Lucid, Agora, Liqwid-Plutarch-Extra, and Aada Finance. Furthermore our developers have had experience developing and publishing end-to-end DApps including production projects such as WingRiders and AnetaBTC.
In addition to our project involvement, our team has been actively engaged in the developer experience domain. We have actively participated in educational panels focused on DApp Security Practices and Design Patterns, and our members have served as co-chairs of the IOHK developer experience working group.
Furthermore, our collaboration with Emurgo Academy has been instrumental in educating aspiring developers, with our team playing an essential role in this endeavor. We have also recognized and recruited the most exceptional talents from the academy's classes.
We have developed software development kits (SDKs) that facilitate the integration of existing dApps with other systems through off-chain code. Our team has also designed various protocols, including bridges and staking systems, while also actively contributing to open-source smart contract languages and their associated standard libraries.
Overall, Anastasia Labs has established itself as a highly capable and versatile development firm with a broad range of expertise within the Cardano Ecosystem.
The main goal is for many developers to use these contracts as either reference material or to build on top of.
We already have some validation of the feasibility of this approach in the sense that many of these contracts have already been widely used in production and by students in Emurgo courses as starting points for their own projects, as such we do not expect much difficulty in generalizing them and getting developers to use them.
An issue that has been prevalent in similar projects is that once the DApps specified in the catalyst proposal were completed, although they may have been good examples at the time, they are not maintained and gradually the codebases become outdated and fail to keep up to date with best practices, new design patterns and architecture. In this case, the issue is mitigated by the fact that these contracts are currently used in production applications on mainnet. The projects using these contracts have agreed to adopt the generic implementations, and as a result, there is a large incentive to maintain and even consistently improve them.
Phase 1 - Generalize Contracts
2 months
This time will be spent adopting the contracts to general use, by removing application specific logic and providing more composability.
Phase 3 - Unit Testing - Property Based Testing
2 months
Implement extensive unit tests & property based tests for the generic contracts. Provide documentation that clearly illustrates the purpose of each test, and how each component of the testing framework is used (Plutus-Simple-Model, Plutarch-Context-Builder, Plutarch-Unit)
Phase 3 - Create examples and educational resource
2 months
Develop examples and educational content in a clear and concise manner. Use appropriate code snippets, diagrams, and illustrations to enhance understanding. Focus on practical, real-world scenarios to demonstrate the application of the code or concepts being explained. Create illustrations and thorough documentation for each production “trick” / development technique, design pattern and technical architecture. Clearly illustrate and highlight the importance of assertions that exist to prevent common vulnerabilities such as the dusk token attack or the datum size attack.
Phase 4 - Bug Bounty (if budget permits)
2 months
Conduct a public bug bounty for the released code base.
Phase 1. The set of generalized smart contracts
Phase 2. A comprehensive set of unit tests for each of the contracts
Phase 3. Thorough documentation and technical specification that illustrates the use-cases as-well-as the design patterns, security considerations, and production tricks and techniques that are used throughout the code.
Phase 4. Public Bug Bounty where participants can search for and submit vulnerabilities
Engineering hours: 500
Total: $40,000
The engineering hours include robust documentation and associated education materials, in addition to the actual smart contracts and associated offchain code.
TD
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
Compiler & Programming Language Research
Philip DiSarro
Philip is a Computer Science Graduate School Student specializing in Compiler Development & Programming Language Theory. He was one of the first developers to formally verify smart contracts in Cardano using Agda. Philip was the lead architect of many features (both live and upcoming) on WingRiders DEX. Philip has also made significant contributions to the Cardano developer ecosystem. As a co-chair of the IOHK developer experience working group he worked to identify and resolve pain points that DApp developers experience in Cardano, and had an integral role in getting Lucid & Plutus Simple Model included in the Plutus Pioneer Program. He is a blockchain consultant & educational lecturer for Emurgo. Many know him as the primary instructor for the Cardano Solutions Architect course.
Philip is currently the lead smart contract developer at Ikigai Technologies, a consultant and lecturer for Emurgo and a founder of Anastasia Labs.
His previous experience includes:
WingRiders - Lead Smart Contract Developer
Agora - open source contributor
Plutarch-Liqwid-Extra - open-source contributor
Plaid - FinTech Software Engineer
Philip will be responsible for polishing and generalizing the smart contracts, updating them to use new design patterns and reflect advancements in architecture and design, and assisting with documentation.
Functional Programming & TypeScript SDKs
Jonathan Rodriguez
Jonathan is a highly skilled smart contract developer specializing in Cardano, a blockchain technology that he is deeply passionate about.
His passion in smart contract development drives him to constantly polish his technical knowledge. In the pursuit of that knowledge he obtained the following certifications: Cardano Solution Architect, Cardano Developer Professional, and Associate Certificate.
With an extensive background in Haskell development, which is a critical language for Cardano, he possesses a thorough understanding of functional programming concepts.
His expertise extends to various aspects of the Cardano ecosystem, including the Cardano Toolchain, Transaction Structure, Plutus Smart Contracts, Native Tokens, DApp Connector, and other essential components.
Jonathan is well-versed in conducting use case analysis and tokenomics, as well as interfacing with decentralized storage, server APIs, and integrating databases.
He is knowledgeable in establishing robust CI/CD (Continuous Integration/Continuous Deployment) flows and integrating them into development processes. Additionally, he is skilled in conducting thorough unit testing to ensure the reliability and security of his smart contract solutions.
Johnathon is responsible for contributing to the generalization of the contracts, assisting with documentation and developing thorough unit tests to verify the contract specifications.