[GENERAL] Name and surname of main applicant
Thang Tran
[GENERAL] Are you delivering this project as an individual or as an entity (whether formally incorporated or not)
Individual
[GENERAL] Please specify how many months you expect your project to last (from 2-12 months)
8
[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)
Complete a developing MVP that publish, classify smart contracts written in either Plutus, Marlowe or Aiken for others to create, run dApps with single or combined validation logics through APIs.
[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.”
The project only use popular open source frameworks & known Cardano libraries. No commercial third-party software & external resources.
Dependencies for platform code:
- NestJS: backend API framework.
- ReactJS: frontend framework.
Dependencies for sample web3 code:
- Emurgo Cardano-serialized-lib: connect installed wallets.
- MeshJs: submit a transaction for browser-based wallets.
[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
MIT license.
The project is open source include:
- Software source code.
- Smart contract source code.
- Documentations.
The project public gitHub repo:
https://github.com/saigonbitmaster/paas
The smart contract contributed by community developers requires public code repo and open source license to be listed.
[SOLUTION] Please describe your proposed solution.
Introduction
This proposal is to complete a developing mainnet MVP. We submit this proposal into this category because we believe free, available smart contracts with classified validation logics will back to grow diverse dApps that clearly adopt to identified use cases.
The platform named PAAS based on our developing Cardano mainnet MVP uses for smart contract developers to publish their smart contracts classified by validator logics then dApp developers can select the right ones to build dApps by fetching APIs each time dApp build transactions.
It also provides the utilities:
- Tools to compile Plutus, Marlowe and Aiken smart contract source code into Json objects.
- Audit tools to:
- Verify the source code of compiled smart contract.
- Audit smart contract's validators and features.
- Record meta data to track smart contract transactions which are built through platform.
The smart contracts should be classified by it validation logics:
- Time.
- Addresses.
- Signature.
- Harvest locked UTXOs.
- Logic with params in datum, redeemer.
- Combined validation logics.
Below are sample map smart contract validation logics to identified use case dApps:
- Addresses validation -> pay salaries to a group, dividends to stake holder dApps.
- Signature validation -> shipping, gift dApps.
- Harvest locked UTXOs -> live casino dApp.
- Logic with params in datum, redeemer -> DEX dApp.
So the idea is simple: if someone identified a use case to adopt dApp, they can go the platform select one smart contract that reflects the use case to build and launch its dApps.
The core logics of MVP is already worked for bWorks project and other dApp examples.
Paas MVP prototype demo video:
https://www.youtube.com/watch?v=4w8NyZIOnCMPlease try the MVP prototype at https://paas.bworks.app, credentials: demo/demo with functions:
- Post, get a smart contract APIs.
- Run dApp examples with posted smart contracts.
- Verify in app and onChain transactions at https://cardanoscan.io
Current status of the project
- Prototype of the MVP is developed and worked, core logics are verified.
- Common smart contract validators are not fully developed.
- Parts of project code is still at prototype level need refactor.
- Utilities are not fully developed yet e.g generalized contract audit tool.
- Security is not enforced. Performance is not benchmarked yet.
The proposal is to complete the project with outputs as a ready to go MVP for users with required works are listed in the milestones.
Example
A developer developed a Plutus smart contract script with validator logic that return true then the transaction will be succeed if:
- The signer’s signature is correct.
- The transaction submit time within given deadline.
Otherwise smart contract will return false and the transaction will be failed.
This contract can be used in many use case contexts e.g manage shipping, pay salary so the developer can publish this contract to PAAS then the contract will be persisted for other to use by fetching APIs every time they need smart contract to build transactions.
A dApp developer who develops e.g shipping manager dApp It can use this smart contract to rule the delivery by verify the signer signature and delivery time. It doesn't need to develop its own smart contract, they use available contract on platform by fetching API for every transactions.
This example worked on Cardano mainnet:
https://cardanoscan.io/address/71fdf7eb205ba9ba574032db49fcdbf24e64d93c2a149e77c8807ce041
How it works
The possibilities
Complied Cardano smart contracts are JSON objects either they written in Plutus, Marlowe or Aiken languages so it is possible to post/get a smart contract via restful APIs and store it in document based db e.g Mongo DB at backend.
Publish a smart contract
- A developer register its own smart contract as serialized script and source code github link
- Describe datum and redeemer as a JSON object
- Describe how script work with sample lock, unlock transactions and other extra information
- The backend then verifies the behavior of registered smart contract object to confirm its validator logic and datum & redeemer data type.
- The admin from the community then audit this smart contract manually through a web function.
- Approve to list or reject the registered smart contract object.
Since it is impossible to read the logic with the compiled smart contract code. It is required to provide script public github code repo that lets microservice verify it comes from known source code and for the community to audit the contract.
Get a smart contract for dApp to build transactions
- dApp developers select a smart contract that fit their dApp use case.
- Developer web3 functions to submit transactions with this smart contract fetched via PAAS APIs.
Architecture
The project is include modules:
- Backend APIs to provide REST endpoints for client requests and perform logics.
- Microservices to handle system particular jobs e.g interact with Cardano nodes.
- Developer frontend for plutus developer submit its plutus smart contract scripts.
- CMS for admin to manage the platform overall.
- Service subscriber frontend for users who want to use smart contract services.
Functions
- Smart contract manager:
- Register a compiled smart contract.
- Compile haskell plutus, marlowe, aiken source code to serialized script.
- Verify serialized script with given github code.
- Audit the smart contract.
- Approve smart contract to list then available for dApp developer to use
- Smart contract service provider:
- Fetching serialized plutus script through APIs to build dApp
- Monitor transactions of plutus scripts
- Rate the usage of scripts
- Dynamic modeling datum and redeemer data type
- Delegate unlock trusted partner
- Fetch smart contract list and a single smart contract to use in dApp for every transaction
- Payment to pay developers for his smart contract usage
- Model base and global search
- Report
- Plutus script utilizing statistic, number of API calls and amounts
- Lock and unlock transaction status
- Dashboard
Features
- Freezed listed plutus script. This to make sure once a smart contract is listed and used by dApps it can not be changed since the change of plutus script may cause the scratch of dApps. The script developer has the right to provide another version only.
- Multi cabal and plutus versions build tool
- Dynamic modeling datum and redeemer data type
- In app verify script behavior
- Seamless applications
- Email or Cardano wallet authentication
Users
- Smart contract developers. Who published its smart contracts
- dApp developers. Who consume published smart contracts through APIs
Conclusion
The project can be seen as:
- A smart contract verification and publication platform.
- A platform to share smart contract.
- The APIs to develop dApp without developing Plutus, Aiken or Marlowe scripts.
- The service for smart contract developers to promote their product and earn.
This help to develop Cardano dApps much easier with significant lower cost. This benefit dApp investors, owners and developers.
Project contact:
https://t.me/paasCardano
Project diagram
Architecture
Publish smart contract flow
Get a smart contract flow
MVP screenshoots
Dashboard
Published classified smart contracts
Publish a smart contract
dApp lock transaction with smart contract from PAAS API
dApp unlock transaction with smart contract from PAAS API
Result, Asset unlocked to receiver wallet
Reports
Mainnet TXs
[IMPACT] Please define the positive impact your project will have on the wider Cardano community.
Measure the impact of project
- How fast and lower cost the dApp are built with services from platform.
- Number of smart contracts and its classified logics submit to the platform.
- Number of dApps and its use cases use services from the platform.
- Number of transactions make with smart contracts on the platform.
Values to Cardano ecosystem
- Simplify process and reduce the time and cost to build and launch dApps.
- Attract web3 developers to Cardano with simpler development process.
- More, clear use cases for dApp adoption with classified smart contracts.
- Promote proven smart contracts lead to more quality dApps.
- Indirectly grow network transactions contribute network fees to the Cardano.
Share outputs and opportunities
- Open source the project, smart contracts code so newbies and others can inherits.
- The knowledge, experience of the project are share through documents so newbie and other can learn from.
- The services from deployed MVP is free so dApps, smart contract developers can use to help the works.
[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?
Team capacity
The team consists capable members in various domains which required by the project:
- Experienced Cardano web3, smart contract engineers.
- Seasoned backend, frontend software and Cardano DevOps engineers.
- Operation, community and marketing people.
Reference Cardano projects:
Proposal MVP:
[Project Milestones] What are the key milestones you need to achieve in order to complete your project successfully?
Time: Month 01-02
Develop Backend APIs
Design DB schemas
Backend APIs
- APIs for smart contract developers publish its scripts:
- Submit a serialized smart contract objects API.
- Classify smart contracts into type of logics it solves.
- Upgrade smart contract API.
- APIs for dApp developers get smart contracts for dApps transactions:
- Get list and get one of smart contract objects.
- APIs to audit a smart contract.
- Backend security functions.
- APIs to record the transaction metadata.
- Report & dashboard APIs.
- Common CMS APIs.
- User APIs.
Utilities
- Verified published smart contracts with given gitHub repo.
- Freeze publish smart contracts.
Outputs
All DB schemas, APIs, utilities are developed, deployed at https://paas.bworks.app/api and ready to use.
The API runs fast, secured, no error with average latency < 1 second.
Time: Month 03
Develop CMS frontend
- General admin management.
- Published smart contract management.
- Verify the smart contract validator logics.
- User management.
- Analytic and reports: published scripts, script transactions.
- Dashboard.
Outputs
The CMS frontend app is developed, tested, deployed and ready to use.
The app runs fast, secured, no error with average response time < 2 seconds.
Time: Month 04-05
Develop frontend apps
Publisher frontend for smart contract developer
Time: Month 04
- Publish a compiled smart contract.
- Flexible datum, redeemer datatype builder UI.
- View status of script verification and confirmation.
- Upgrade version of a published smart contract.
- Script consuming tracking.
- Report, dashboard.
Web frontend for dApp developer
Time: Month 05
- List of published smart contracts and web3 components
- Select a smart contract to build dApps
- Track the usage of account.
- Track transaction status.
- Report, dashboard.
Outputs
The frontend app for smart contract, dApp developers is developed, tested, deployed and ready to use.
The app runs fast, secured, no error with average response time < 2 seconds.
Time: Month 06
Initial list of smart contracts
- Develop a list of smart contracts with most common validators:
- Validate wallet signature.
- Validate transaction date.
- Validate receiver address.
- Validate common logics with params extract from datum, redeemer.
- Mint token.
- Develop dApp web3 components for those smart contracts.
Outputs
The above smart contracts are developed, compiled and published on the platform and ready to use.
QA/QC
Time: Month 07
- Perform all function and feature test.
- Feedback, fix bugs.
- Verify the working of key functions:
- Publisher for smart contract developers
- Submit service and use APIs to build dApps for dApp developers
Outputs
Test and log all functions, features.
Fix bugs.
Make sure the platform is good to go.
Time: Month 08
Launch platform
- Deploy and run platform.
- User acquisition and engagement.
- Function, feature improvement
Outputs:
The platform is deployed to AWS in a production environment with defined functions, features and available for smart contract and dApp developers to use.
[RESOURCES] Who is in the project team and what are their roles?
1-Thang Tran
Full stack, smart contract & web3 engineer.
GitHub: https://github.com/saigonbitmaster
Responsibilities:
- Engineering management.
- Smart contract, web3 developer.
- full stack developer.
2-David do
Professional social marketing and online business manager
https://www.linkedin.com/in/david-do-0bb52b283/
Responsibilities: Product promotion, user acquisition and community engagement.
3-Thang Vu
Senior software and web3 developer.
https://github.com/vmthang
Responsibilities:
- Smart contract, web3 developer.
- Full stack engineer.
4-Thanh Ngoc
Senior full stack and database developer.
https://www.linkedin.com/in/ngocthanhit/
Responsibilities:
5-Thanh Nguyen
Senior full stack engineer
https://www.linkedin.com/in/congthanh-nguyen-b152361a0
GitHub: https://github.com/makotovnjp
Responsibilities:
6-Oanh Ngo
Experienced QA/QC leader.
https://www.linkedin.com/in/oanh-ngo-06b331100
Responsibilities: QA/QC leader.
7-Chuong Pham
Senior devOps, experienced Cardano engineer.
https://github.com/jackchuong
Responsibilities: Develop Cardano scripts, System operation.
8-Dung Phan
Senior infrastructure engineer.
https://www.linkedin.com/in/phan-d%C5%A9ng-6682b5245/
Responsibilities: System provisioning, operation.
Other resources that hire through https://www.bworks.app
[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources.
Total requested budget: 165,000 Ada
Milestone-01.
Develop Backend APIs
Time: Month 01-02. Budget: 40,000 Ada.
Estimated 340 work hours at cost 120 Ada per hour for 04 developers work in 02 months.
DB schemas: 10,000 Ada.
Backend APIs: 20,000 Ada.
- Plutus script APIs for plutus developers publish its scripts.
- Submit a serialized plutus script API
- Upgrade version of a published serialized plutus script API
- Plutus script APIs for web3 developers get to build dApps.
- Get list and get one of plutus scripts
- Cardano transaction submitted APIs to record the transaction which made with published plutus scripts.
- Record the Cardano transaction which was made by a service account with published scripts and its status.
- Record lock and unlock status of a transaction.
- Report APIs.
- Dashboard APIs.
- Common CMS APIs.
- User APIsa.
Backend logics & microservices: 20,000 Ada.
- Verified a serialized script with its accomplished github source code.
- Interact with Cardano node to execute a Cardano CLI script with params.
- Analytic services.
Milestone-02.
Develop CMS frontend
Time: Month 03. Budget: 25,000 Ada
Estimated 250 work hours at cost 100 Ada per hour, for 03 developers work in 01 months to build the below functions/features:
- General admin management: 10,000 Ada
- User management.
- Analytic and reports: published scripts, script transactions.
- Dashboard.
- Promotion functions.
- Smart contract management functions: 15,000
- Published scripts management
- Verify the script validator logics
- Payment with Ada functions
Milestone-03.
Develop publisher frontend
Time: Month 04. Budget: 20,000 Ada
Estimated 200 work hours at cost 100 Ada per hour, for 03 developers work in 01 months to build the below functions, features and UI/UXs:
- Publish a compiled serialized smart contract script.
- Flexible datum and redeemer datatype builder.
- View status of script verification and confirmation.
- Upgrade version of a published smart contract script.
- Script consuming tracking.
- Dashboard.
Milestone-03.
Service subscriber frontend
Time: Month 05 budget: 20,000 Ada
Estimated 200 work hours at cost 100 Ada per hour, for 03 developers work in 01 months to build the below functions, features and UI/UXs:
- List of published smart contracts and web3 components.
- Select a smart contract to build dApps.
- Tracking the usage of an account.
- Tracking transaction status, its output and status.
- Reports.
- Dashboard.
Milestone-04.
QA/QC
Time: Month 06. Budget: 8,000 Ada
Estimated 100 work hours at cost 80 Ada per hour, for 03 developers and QA/QC work in 01 months for the below works:
- Perform function, feature and performance test.
- Feedback, fix bugs and improvement.
- Verify the working of key functions, list known bugs.
Milestone-05.
Develop initial smart contracts
Time: Month 07. Budget: 25,000 Ada
This to pay to have at least 05 generalized smart contracts and web3 sample code with different validator logics:
- Develop a list of smart contract to init the platform.
- Web3 components for dApps for each smart contract.
- User guide and cli scripts.
Launch platform
Time: Month 08. Budget: 27,000 Ada is equivalent
- 01 year running for 03 AWS medium servers infrastructure cost: 12,000 Ada
- Grow community and operation: 14,000 Ada
- User engagement
- Reward to community developers who have for excellent smart contracts
[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?
The use of requested budget:
- Complete the proposed MVP of the platform.
- Develop set of smart contracts for project initiation.
- Pay community developer for excellent posted smart contracts.
- Pay server infrastructure cost for development and 01 year after.
- Grow community users.
The return of funds:
- Less time and low cost to build dApps.
- Grow dApp adoption, Cardano use cases for real life.
- Indirectly grow transactions that contribute Cardano network fees.
- Attract developers from other backgrounds come Cardano to build dApps.
The estimated cost in Ada is equivalent to around 50k $ at average last year Ada price 0.3$ with average 100 Ada for a work hour.
[IMPORTANT NOTE] The Applicant agrees to Fund Rules and also that data in the submission form and other data provided by the project team during the course of the project will be publicly available.
I Accept