[GENERAL] Name and surname of main applicant
SIDAN Lab
[GENERAL] Are you delivering this project as an individual or as an entity (whether formally incorporated or not)
Entity (Incorporated)
[GENERAL] Please specify how many months you expect your project to last (from 2-12 months)
6
[GENERAL] Please indicate if your proposal has been auto-translated into English from another language
No
[GENERAL] Summarize your solution to the problem (200-character limit including spaces)
On top of the backbone of previous funded pilot research and implementation, we build a developer-ready SDK which makes efficient Cardano backend in Rust possible and easily accessible.
[GENERAL] Does your project have any dependencies on other organizations, technical or otherwise?
Yes
[GENERAL] If YES, please describe what the dependency is and why you believe it is essential for your project’s delivery. If NO, please write “No dependencies.”
Cardano-serialization-lib. It is an open source off-chain transaction building library where the proposed APIs would be built on top of it.
[GENERAL] Will your project’s output/s be fully open source?
Yes
[GENERAL] Please provide here more information on the open source status of your project outputs
All materials would be on (an) open source Github repo(s) with Apache-2.0 license.
[METADATA] SDG rating
SDG 9 focuses on promoting sustainable industrialization, fostering innovation, and building resilient infrastructure. The project aims to develop a cardano sdk in Rust, which will provide libraries for Rust production-grade DApp development. By developing this, the project contributes to the advancement of industry and innovation by enhancing the capabilities and accessibility of Cardano's infrastructure for developers.
[SOLUTION] Please describe your proposed solution
On top of the backbone of previous funded pilot research and implementation, build a developer-ready SDK which makes efficient Cardano backend in Rust possible and easily accessible. Also, extra the core components in the web assembly package to support the development of MeshJS.
In details, the development work would cover
- Introducing new features, including auto-redeemer update by integrating txpipe’s uplc, tx-parser for unit testing offchain code.
- Extracting core logic to a separate library for compiling into wasm, allowing integration with MeshJS and other JS Cardano frameworks.
Eventually, it could serve as a reference for other Cardano infrastructure to build user-facing software development kits. Also, it could support scalable production DApp backend.
[IMPACT] Please define the positive impact your project will have on the wider Cardano community
Any Cardano Dapp which would have a backend on Rust could use it to integrate with all logics seamlessly. For instance, DeltaDeFi, a DeFi protocol built on Cardano powering high frequency trading, is built on top of the sidan-csl-rs package (the origin of this proposal), and contributing back to the proposal. It proves that the package actually brings value to production grade DApps development.
It could also contribute to the development of JS libraries such as MeshJS to support ecosystem adoption. In this proposal new features would also be built into MeshJS, benefiting an existing wide range of Cardano developers.
[CAPABILITY & FEASIBILITY] 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?
Our team has strongly committed and experienced members, providing all required skill sets and expertise to successfully implement the proposed solution
Trust and accountability:
- Track record on Cardano ecosystem participation
- Team members have a track record of contributing in Cardano open source
- Team members are professionals across a spectrum of industries, including banking and finance, cyber security and software engineering, with chartered status with different professional bodies.
Approach validation
- Market validation conducted with DeltaDeFi, which is a non-custodial exchange built on Cardano, confirming the work would benefit Cardano DApps in terms of balancing ease in development transaction building efficiency.
- Currently DeltaDeFi is built on top of sidan-csl-rs, a F11 funded project and the backbone of this proposal.
Technical approach feasibility research
- SIDAN Lab and MeshJS team could be represented as an expert group from application level. Feasibility is not a problem.
- Same team built the sidan-csl-rs. Thus, the team has shown the track record of delivery and capability with the rich experience of working under public governance.
[PROJECT MILESTONES] What are the key milestones you need to achieve in order to complete your project successfully?
Milestone 1: Proposal Onboarding and Planning (1 Month)
Objective: Establish a solid foundation for the project by setting up the necessary infrastructure, assembling the team, and defining project management practices.
Activities:
- Proposal onboarding and project management tools setup
- Have a detailed breakdown of tasks for all the activities covered:
- Initial Documentation
- List out all the APIs needed
Acceptance Criteria & Evidence:
- Project management tools and systems set up.
- Github link with tasks breakdown publicly accessible
Milestone 2: Rust & WASM Packaging (1 Month)
Objective: Prepare the code base for both the wasm package and package for rust use
Activities:
- Splitting code base into 2 separate rust projects
- Compile all core logics and type into wasm
- Publish initial version for both Rust SDK & WASM package
Acceptance Criteria & Evidence:
- 2 links pointing to root location of the 2 separate rust projects
- A published rust crate visitable in crates.io, indicating the package for rust use
- 2 published node modules containing the core logics, one for nodejs and one for browser in npm registry
Milestone 3: MeshJS Migration (1.5 Month)
Objective: Migrate all existing CSL logic to mesh-csl, which builds on top of the wasm package
Activities:
- Migrate all existing CSL logic from MeshJS library to mesh-csl, leaving spacing for future MeshJS integration pattern upgrades.
- Integrate the migrated functions back to MeshJS library
Acceptance Criteria & Evidence:
- A complete mesh-csl package with open source Github repository link
- A published node module public visitable in on npm registry
- A upgraded meshsdk/core package with the migrated functions integrated
Milestone 4: Feature development (1 Month)
Objective: Develop off-node transaction evaluation feature and integrating with mesh. Develop provider integration feature with the rust package
Activities:
- Develop the off-node transaction evaluation
- Develop blockchain provider implementation and integration with Maestro & Blockfrost
Acceptance Criteria & Evidence:
- New features available with documentation available in published rust package in crates.io
- New features available with documentation available in mesh core package
Milestone 5: Feature development (1 Month)
Objective: Develop new feature of systematically parsing transaction information from hex, enable offchain code unit testing
Activities:
- Develop the backward transaction parser - getting the transaction hex and parsing back to rust object
- Develop the offchain code unit testing framework on top of the transaction parser, introducing a brand new developer experience on unit testing offchain code on Cardano
Acceptance Criteria & Evidence:
- New features available with documentation available in published rust package in crates.io
- New features available with documentation available in mesh core package
Final Milestone: Complete Documentation (1 Month)
Objective: Provide full set of documentation, bringing the proposal result to the community
Activities:
- Complete all inline documentation on user-facing APIs, with public hosting for easy referencing.
- Hosting a community in both MeshJS & SIDAN Lab discord for feedback, question and communication
- Prepare the project close-out report and video
Acceptance Criteria & Evidence:
- A full set of public documentation on all new features and changes brought by this project
- Dedicated channel in SIDAN Lab discord server in regards to the project deliverables
- Announcement in MeshJS discord server about all new features provided by this project
- Publicly available project close-out report and video
[RESOURCES] Who is in the project team and what are their roles?
This is a collaborative project led by SIDAN Lab and MeshJS, with an aligned objective of bringing the next wave of explosive adoption on the Cardano blockchain.
SIDAN Lab. SIDAN Lab possesses the know-how of building on Cardano and consistently contributing to the Cardano open source throughout the years. Main engineers involved in this proposal from SIDAN Lab would be
- Hinson Wong - Cardano engineer.
- Tsz Wai Wu - Cardano engineer
- Jackal Leung - DevOps and Software Engineer
- Anson Chui - DevOps and Security Engineer
MeshJS. MeshJS provides open source technology stacks on the Cardano blockchain that facilitate the seamless integration of DApp built on Cardano, significantly diminishing the time required for the development and deployment of blockchain solutions. MeshJS community would be in general supporting the integration.
[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources
Milestone 1: Proposal Onboarding and Planning (1 Month)
- ADA 10,000 - Proposal onboarding and project management tools setup
- ADA 20,000 - Have a detailed breakdown of tasks for all the activities covered:
- Initial Documentation
- List out all the APIs needed
- Total Budget: 30,000 ADA
Milestone 2: Rust & WASM Packaging (1.5 Month)
- ADA 20,000 - Splitting code base into 2 separate rust projects
- ADA 15,000 - Compile all core logics and type into wasm
- ADA 15,000 - Publish initial version for both Rust SDK & WASM package
- Total Budget: 50,000 ADA
Milestone 3: MeshJS Migration (1 Month)
- ADA 15,000 - Migrate all existing CSL logic from MeshJS library to either mesh-csl-rs or mesh-csl, leaving spacing for future MeshJS integration pattern upgrades.
- ADA 15,000 - Integrate the migrated functions back to MeshJS library
- Total Budget: 30,000 ADA
Milestone 4: Feature development (1 Month)
- ADA 15,000 - Develop the off-node transaction evaluation
- ADA 15,000 - Develop blockchain provider implementation and integration with Maestro & Blockfrost
- Total Budget: 30,000 ADA
Milestone 5: Feature development (1 Month)
- ADA 15,000 - Develop the backward transaction parser - getting the transaction hex and parsing back to rust object
- ADA 15,000 - Develop the offchain code unit testing framework on top of the transaction parser, introducing a brand new developer experience on unit testing offchain code on Cardano
- Total Budget: 30,000 ADA
Final Milestone: Complete Documentation (1 Month)
- ADA 15,000 - Complete all inline documentation on user-facing APIs, with public hosting for easy referencing.
- ADA 5,000 - Hosting a community in both MeshJS & SIDAN Lab discord for feedback, question and communication
- ADA 10,000 - Prepare the project close-out report and video
- Budget: 30,000 ADA
[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
- Packages such as Mesh & Lucid have proven this layer of logic abstraction useful for Cardano Dapp development. It also lowers the entrance barriers for seasoned non-Cardano-native software engineers in Cardano development.
- With such abstraction logic, it could save tens of thousands in development cost for a single production grade Dapp off-chain. Thus, value for money is justified when there are a few projects building on the package.
- There are a bunch of Cardano infrastructure tools built on Rust. The package proposed would be able to natively integrate with production grade Dapps.
- DeltaDeFi, a DeFi protocol built on Cardano powering high frequency trading, is built on top of the sidan-csl-rs package (the origin of this proposal), and contributing back to the proposal. It proves that the package actually brings value to production grade DApps development.