Last updated 5 months ago
Developers using Aiken face significant challenges when testing smart contracts, as they lack tools to easily construct transactions and verify them in conditions that closely reflect the protocol.
Build a testing framework for Aiken that improves the developer testing experience and accurately simulates Cardano protocol transactions and on-chain conditions
This is the total amount allocated to TxCheck: An Aiken Framework for Tx Testing and Simulation.
Please provide your proposal title
TxCheck: An Aiken Framework for Tx Testing and Simulation
Enter the amount of funding you are requesting in ADA
35000
Please specify how many months you expect your project to last
5
Please indicate if your proposal has been auto-translated
No
Original Language
en
What is the problem you want to solve?
Developers using Aiken face significant challenges when testing smart contracts, as they lack tools to easily construct transactions and verify them in conditions that closely reflect the protocol.
Does your project have any dependencies on other organizations, technical or otherwise?
No
Describe any dependencies or write 'No dependencies'
No dependencies
Will your project's outputs be fully open source?
Yes
License and Additional Information
Software Libre - GPLv3
Please choose the most relevant theme and tag related to the outcomes of your proposal
UTXO
Mention your open source license and describe your open source license rationale.
We chose the GPLv3 license to guarantee that TxCheck remains free and open-source for all users. As a framework for testing and improving the security of Aiken smart contracts, transparency is essential: developers must be able to audit, modify, and extend the tool with confidence. Additionally, GPLv3 ensures that improvements contributed by the community remain freely available, fostering collaboration and preventing proprietary restrictions.
How do you make sure your source code is accessible to the public from project start, and people are informed?
The source code will be fully available on Github. New version updates of the project will be shared on social media channels relevant to the Aiken community like the official Discord channel, telegram groups and Twitter. This will ensure visibility and community engagement.
How will you provide high quality documentation?
First, we will make the effort to make a comprehensive documentation that describe how each function works and provide example of them. Second, Aiken provides a feature to generate documentation websites. We will use this functionality to create a page similar to this:
https://aiken-lang.github.io/stdlib/
There users can search specific functions and how to use them.
Please describe your proposed solution and how it addresses the problem
The problem with existing testing solutions for the Aiken language lies in both security and developer experience. Current built-in testing options do not, by default, simulate how transactions work on the blockchain. This can lead to security issues, as developers must make their own assumptions about how Cardano behaves. This assumptions could be a serious trouble for developers, specially for new developers who have not enough experience or don't fully grasp how the Cardano protocol works. Additionally, crafting transaction tests manually is burdensome. Providing standardized utilities would reduce this effort, making it easier for developers to create reliable transactions variables in Aiken to validate their smart contracts. In short, there is a need for a testing solution that improves the reliability of the tests and improves the developer experience.
Our proposed solution is to develop a reliable and developer-friendly Aiken framework specifically designed for testing smart contracts and simulating transactions. This framework will allow developers to simulate transactions under conditions that closely resemble the actual Cardano blockchain, ensuring that tests are realistic and security assumptions are verified. By providing a set of standardized utility functions, the framework will simplify the creation and management of transaction tests, reducing developer effort and minimizing the risk of errors. In this sense, the framework will support mocks of on-chain data, enabling comprehensive unit tests without requiring access to a live network.
Some important features of the framework consider:
Overall, this solution aims to improve both the security and developer experience when building smart contracts in Aiken, supporting more robust and reliable applications on Cardano.
Please define the positive impact your project will have on the wider Cardano community
The Cardano community would benefit from this proposal in two major ways:
What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
From a technical standpoint, the team has extensive experience in the development of open-source applications and tools. We have worked on projects such as zero-knowledge applications, cryptography related libraries, and privacy solutions. For example, the team has contributed to several projects leveraging zero-knowledge cryptography, including: The Mastermind game (first Cardano zkApp), the ak-381 library to validate Zero-Knowledge proofs on-chain, porting the Semaphore protocol from Ethereum to Cardano, and designing the first Proof-of-Innocence compliance implementation. This track record demonstrates our ability to deliver complex solutions that demand a high level of technical competence.
In terms of accountability, we had succesfully delivered the previous catalyst proposals:
Milestone Title
Transaction primitives and utilties library
Milestone Outputs
An Aiken library that includes:
Acceptance Criteria
The acceptance criteria is that the library:
Evidence of Completion
The evidence of completion of the milestone should be present in the source code of the github repository.
Delivery Month
2
Cost
15000
Progress
30 %
Milestone Title
Transaction mock
Milestone Outputs
An Aiken library that has:
Acceptance Criteria
The acceptance criteria is that the library:
Evidence of Completion
The evidence of completion of the milestone should be present in the source code of the github repository.
Delivery Month
4
Cost
15000
Progress
70 %
Milestone Title
Framework Documentation
Milestone Outputs
Acceptance Criteria
The acceptance of this milestone must imply that:
Evidence of Completion
The evidence of completion includes:
Delivery Month
5
Cost
5000
Progress
100 %
Please provide a cost breakdown of the proposed work and resources
Budget Breakdown (in ADA)
Month 1:
Month 2:
Month 3:
Month 4:
Month 5:
Grand Total: 35,000
How does the cost of the project represent value for the Cardano ecosystem?
The major value of the proposal is to improve and enhance the developer experience of smart contract programmers on the ecosystem, the cost of the project is made in consideration according to the market price of blockchain developers.
Terms and Conditions:
Yes
The proposal is led by Agustín Salinas, an open source developer of the Cardano ecosystem, and core contributor to Módulo P—an initiative developing ZK-based privacy solutions for Cardano’s EUTxO model. Agustín has contributed to multiple Catalyst-funded projects focused on ZK proof verification, governance tooling, and privacy solutions.