Cardano is generally perceived as a slow blockchain. We want to implement technical solutions for fast transactions (2-3 seconds) based on transaction chaining in openly available tooling.
We will implement tooling required to support fast transaction submission (within seconds) using transaction chaining in the cardano-node, PyCardano and Nami wallet.
This is the total amount allocated to Open Transaction Chaining tooling to speed up Cardano dApps - By MuesliSwap
Project will be fully open source
Developer tools on Cardano are generally lacking tools to support fast transactions. In the past, this has led to Cardano being described as a slow blockchain and the general perception that interactions on Cardano are limited severely by the block size and frequency (20 seconds). Meanwhile, several developers and experts in the field have repeatedly pointed out that through advanced methods such as mempool reading and transaction chaining, interaction such as consecutive pool updates are possible within 2-3 seconds. This includes consecutive batching transactions – with modern Smart Contract languages batching up to 20 transactions at once is no problem, resulting in extremely high throughput for AMM pools and other DeFi applications.
We see the main hurdle for developers to adopt these changes to be caused by a lack of openly available tools that enable fast transaction processing. To tackle this issue, we propose to improve the available tooling and set standards when it comes to transaction chaining. From our perspective, there are three main tools that need to be adapted to enable a broader community of developers to use transaction chaining:
The main component that needs adjustment is the cardano node. We want to propose changes in the cardano-node to consider transactions present in the mempool for building transactions. Alternatively, the node should accept a set of UtxOs where the user knows that they will be present on-chain at time of submission and build transactions speculatively. This update seamlessly propagates to Ogmios and the cardano-cli and all other tools that interact with the node to build transactions, effectively covering a large part of the developer tools being currently used by projects and that will be used by newcomers.
The second component that requires an improvement is the user facing browser wallet. While we can not implement support for crucial operations in every browser wallet, we want to implement them in the open-source available Nami wallet. The first required features is the handling of spent UtxOs in a transaction to be signed while it is not yet on chain, speculatively, and properly presenting this to the user. The second feature concerns signing of several transactions at once. This is necessary in order to allow speculated transactions to fail and fall back to another, also signed transaction instead.
There are also solutions being developed for this cause such as newm-chain. We will assess their applicabilty and make sure to develop a fully end-user friendly solution at the end.
Nami Wallet has a history of setting standards in the community, by simply providing working reference implementations. We want to attach to this history and provide an update to CIP-30 (the dApp wallet connector standard) based on the newly provided features that will benefit all developers. The standard will have to start as an experimental feature and will be likely only accepted as mature after the finalization of this project.
Both tools together cover the crucial parts of every dApp, the server-based backend and the user-facing frontend and provide the necessary means for developers to adjust their dApp for utilizing transaction chaining. This paves the road for drastically improving throughput and transaction speed on Cardano and break the narrative of being a small and inefficient chain.
The proposal addresses the challenge in two ways:
The impact of this project will be measurable by assessing the amount of transactions that make use of or benefit from transaction chaining. This can be assessed on-chain and includes all transactions that spend UtxOs within the same or one block after submission – in general thus processing transactions within less than 20 seconds or one block size.
The results of the project will be publicized through an ongoing process across multiple channels.
Primarily, the results will be published via commits on MuesliSwapTeam repositories. In a coding or software development context, a commit consists of making a set of tentative changes permanent. In this case, every productive change made by a software developer is kept track of and recorded onto the personal or public repositories. Therefore, the updated changes in terms of results will frequently be committed to the MuesliSwapTeam’s repositories where the public will be able to access and see what has been completed.
Furthermore, results will also be shared through PRs (Pull Requests) and issues on the cardano-node and Nami Repository. Pull Requests are proposed changes to a codebase that others can review and discuss before it's integrated into the project. By doing this, our team will provide an open channel for feedback and discussion about the on-going works in the project.
Issues, on the other hand, are a way to track tasks, enhancements, and bugs for your projects on Github. In the context of this project, they will be utilized to broadcast any bugs that have been fixed or enhancements that have been made, highlighting significant results.
Lastly, we will resort to using social media platforms, specifically Twitter, for immediate reach. Explanatory tweets about the project's progression and results will be dispatched through our Twitter account, @MuesliSwapTeam. This allows for a more casual and digestible format of communication to maintain intrigue and engage our audience while also keeping them informed about our project. Consequently, the publication happens in real-time, ensuring that no delays or gaps occur in delivering our achievements.
Our team, the MuesliSwap Team, has a proven track record of delivering high-tech solutions with a strong reputation for trust and accountability. We have demonstrated our capabilities in the following ways:
Given our experience in pioneering DEX development, successful completion of funded projects, a competent and dedicated team, and our commitment to trust and accountability, we are confident in our capability to deliver this project with high levels of trust and accountability.
The main goal of this proposal is to make transaction chaining accessible to the broader public and consequently increase throughput and usability of Cardano. We will apply the following structured approach to validate our approach:
These processes will be done iteratively and steps may require repeating as the project progresses, as adjustments and changes are a part of every software project evolution.
Milestone 1 – 1st month after project start: Present assessment of the required changes to each component.
Milestone 2 – 2nd month: Implement the required changes for Nami Wallet and present a usable demo of the update.
Milestone 3 – 3rd month: Implement the required changes for the Cardano-Node and present a usable update.
Milestone 4 – 4th to 6th month: Reserved for additional testing and assessment, communication with the community regarding the implemented updates (i.e. writing a CIP-30 update and agree on a suitable standard).
1st month after the project start: A comprehensive list of required changes to the Cardano-node and Nami wallet to implement the announced feature
2nd month: A fork of Nami Wallet with the additional features implemente
3rd month: A fork of the Cardano-Node with the additional features implemente
4th to 6th month: PRs at the Cardano-node repository, the Nami wallet repository, and the Cardano-Foundation CIPs repositor
The expected amount of work for each step are split based on the required workforce for each task to reflect the higher cost of Haskell developers of TypeScript developers. We are setting a salary of 150 ADA / hour for Type Script developers and 250 ADA / hour for Haskell developers.
1st month: 20 hours setup and assessment of the code base for Nami (TypeScript) and Cardano-Node (Haskell) each = 20 150 ADA + 20 250 ADA = 8,000 ADA
2nd month: 40 hours implementing the proposed changes to the Nami wallet = 40 * 150 ADA = 6,000 ADA
3rd month: 40 hours implementing the proposed changes to the Cardano-Node = 40 * 250 ADA = 10,000 ADA
4th month to completion: 30 hours writing and discussing updates and adjusting the provided code for each Nami and Cardano-Node = 30 150 ADA + 30 250 ADA = 12,000 ADA. The cost for the CIP-30 Update is included in the Nami wallet adjustments.
The necessary tooling for transaction chaining can only benefit all of the Cardano community if it is developed openly and freely accessible to everyone. It is for this reason that we as MuesliSwap want to enrich the ecosystem by implementing the changes into existing, open-sourced projects.
The impact on the ecosystem should not be underestimated. By making this tooling available freely and integrated into widespread and largely used software, we open up the way to transform the entire ecosystem – within a very short time.
The rates applied hourly for the developers are slightly below standard rates at the ecosystem, the MuesliSwap Team will subsidize additional costs as it will benefit from the implementations itself.
The MuesliSwap Team consists of a diverse group of highly skilled individuals who bring a wealth of experience and expertise to the project. Here are the key team members and their respective roles:
Each team member brings their unique skills and expertise to their respective roles, working collaboratively to deliver the project with high levels of proficiency and efficiency. Together, the MuesliSwap Team is well-equipped to drive the project forward and achieve its objectives.