[GENERAL] Name and surname of main applicant
Tan Tran
[GENERAL] Are you delivering this project as an individual or as an entity (whether formally incorporated or not)
Entity (Not 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)
We will build an open-source, dev-friendly, multiplatform Kotlin SDK. The SDK provides all necessary and easy-to-use functions for working with Cardano
[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.”
When working with Cardano, developers will use the data from providers: Blockfrost, Kupo, ... In this proposal, we will also provide Kotlin SDK for developers fetching data from them.
[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
The entire source code of this project will be open-sourced under Apache License 2.0 and will be available on GitHub.
[SOLUTION] Please describe your proposed solution
When we started building DApps on Cardano, there were several SDKs for us to use in several programming languages: JS, Rust, Java... But not for Kotlin. We and other Kollin developers could find a way to reuse these existing SDKs, but it is not easy and has a lot of limitations.
The rise of Kotlin. Millions of developers are using Kotlin for daily tasks. And many of them are building Android apps and backend services.
Building mobile first, native performance and native user experience are always our first approach.
Inspired by other SDKs: Lucid, Cardano Client Lib, Cardano Serialization Lib, ... We are proposing to build a Kotlin Multiplatform SDK to solve the pain point above, that will improve the experience of developers working with Cardano.
The SDK will provide all necessary features for developers to work with Cardano:
- Address / Account.
- Transaction builder, serialization, signing, ...
- Smart contract interaction.
- CIP implementation
- Backend integration: Blockfrost, Kupo, ...
- ... and more
[IMPACT] Please define the positive impact your project will have on the wider Cardano community
By leveraging Kotlin and Kotlin Multiplatform, this SDK aims to achieve the following:
- Enable millions of Kotlin developers to build Cardano apps faster and more easily.
- Deliver native app performance and excellent UI/UX.
- Support multiplatform development, including mobile (Android, iOS), web, and desktop apps. Developers can build once and distribute across multiple platforms, reducing time to market.
- Not only Kotlin developers, but also Java, TypeScript, and Swift developers can use and build the app effortlessly.
For impact measurement, we’ll track quantitative metrics such as GitHub stars, issues, feature requests, and user adoption. Additionally, qualitative feedback from the developer community will guide our progress.
We’ll share updates, reports, and case studies transparently with the Cardano community through blogs, social media, and forums.
[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?
We possess a profound passion for technology, having adeptly utilized Kotlin for numerous years across various domains including Payment, E-commerce, and Blockchain (including Cardano), executing multiple projects with excellence.
Our team's ability to execute this project with utmost reliability and responsibility is rooted in our extensive proficiency in both blockchain technology and Kotlin.
By synergizing our team's expertise with a methodical approach to project management and stakeholder involvement, we are confident in our ability to effectively deliver this project. Our unwavering dedication to transparency, accountability, and consistent communication assures stakeholders that funds are managed diligently, leading to the accomplishment of project goals.
[PROJECT MILESTONES] What are the key milestones you need to achieve in order to complete your project successfully?
Description: Planning, setup project / repo and implement core Cardano components:
- Core models + Cbor serialization
- Address
- Account
- Protocol params
Outputs: A project plan and basic features are implemented
ACs:
- A project plan for all milestones on board
- All SDK functions planned in M1 are implemented with high-quality code.
- All SDK functions planned in M1 are covered by tests with high coverage.
- A new beta package is published to the registry
- Users can access SDK repo and related repos on GitHub and can see the development processes.
Description: Continue to add more features to the SDK. Add support for Cardano transaction:
- UTxO selection
- Transaction builder with coin and native token
- Transaction Serialization
- Transaction Signer
Outputs: The SDK is updated with functions related to all features defined above
ACs:
- All SDK functions planned in M2 are implemented with high-quality code.
- All SDK functions planned in M2 are covered by tests with high coverage.
- A new beta package is published to the registry
- Users can access SDK repo and related repos on GitHub and can see the development processes.
Description: Continue to add more features to the SDK. Add support for Script
- Native script
- Plutus script
Outputs: The SDK is updated with functions related to all features defined above
ACs:
- All SDK functions planned in M3 are implemented with high-quality code.
- All SDK functions planned in M3 are covered by tests with high coverage.
- A new beta package is published to the registry
- Users can access SDK repo and related repos on GitHub and can see the development processes.
Description: Continue to add more features to the SDK. Add support for Metadata, NFT and Backend integration
- Metadata: message, NFT, ...
- Datum metadata
- Backend integration:
- Blockfrost
- Kupo
- Ogmios
- ...
Outputs: The SDK is updated with functions related to all features defined above
ACs:
- All SDK functions planned in M4 are implemented with high-quality code.
- All SDK functions planned in M4 are covered by tests with high coverage.
- A new beta package is published to the registry
- Users can access SDK repo and related repos on GitHub and can see the development processes.
Description: Documentation / Release
- Creating comprehensive documentation, including setup guides and API references and real-world usage examples.
- Collect feedback from beta releases and make necessary adjustments.
- Launching the official version of the SDK.
Outputs: the final version of the package with all working features based on planning and community feedback
ACs:
- Developers can check the documents.
- A release package is published to the registry, developers can pull and integrate the final package into their projects.
- Users can access SDK repo and related repos on GitHub and can see the development processes.
[RESOURCES] Who is in the project team and what are their roles?
Tan Tran
- Project Lead, Solution Architect
- GitHub: https://github.com/iTanChi
Hieu Do
- Software Engineer
- GitHub: https://github.com/hieu-dd
Hoang Nguyen
- Software Engineer
- GitHub: https://github.com/HoangNguyen219
[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources
Solution / Module design:
- Design the modules and the solutions when building the SDK
- Estimated cost: ₳ 38,400
Project management
- Manage the project through the development process
- Reporting and communications
- Estimated cost: ₳ 19,200
Development
- Implement all the SDK features
- Included software development tools and licenses.
- Estimated cost: ₳ 86,400
Document and Community engagement
- Writing technical docs
- Community engagement
- Estimated cost: ₳ 6000
[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
Developing an open-source SDK using Kotlin not only equips Kotlin developers with valuable resources to swiftly begin learning and building projects on Cardano but also fosters the growth and expansion of the ecosystem. As more developers join, more projects emerge, fueling the ecosystem's development.
Our project costs are calculated based on developer fees and resources necessary for feature delivery and maintenance, aligning with industry standards.
The project's value for money is apparent in its positive impact on the Cardano ecosystem, offering a rapid development experience with a user-friendly SDK interface.