Develop a good smart contract is hard, many projects are stuck and failed at this step. We need a platform to provide quality Plutus scripts via network APIs that multiple dApps can fetch to use.
We propose a smart contract as a service platform to publish verified Plutus scripts for multiple dApps to use by fetching platform APIs in time. Write once run anywhere.
This is the total amount allocated to PAAS - Smart Contract As a Service. A Quick and Low Cost Approach to Build dApps..
June Akra.
Blockfrost: fetch transactions and addresses.
MeshJs: submit a transaction for browser-based wallets.
Emurgo Cardano-serialized-lib: perform web3 functions.
Project will be fully open source.
Current Cardano dApp building & execution model
dApp development
dApp execution
Lock asset
Unlock asset (spend a locked UTXO)
Currently each Cardano dApp project usually builds its own smart contract and web3 part to interact with plutus script for every transaction. These works are difficult with high risk that potentially leads the dApp project into failure. Many dApps projects are stuck at this step.
Our motivations
The possibilities to generalized plutus smart contract scripts then provide them as a service through APIs:
The benefit of having Plutus smart contract services to simplify the smart contract execution model for Cardano dApp by providing APIs for:
How it works
A developer developed a Plutus smart contract script with validator logic that returns TRUE or FALSE if both of below conditions are validated:
This smart contract can be used in many contexts e.g:
The developer who developed this plutus script can register it as a JSON object to the PAAS platform for others reuse through API fetch.
The other developers who develop shipping and salary dApps then no need to develop its owned smart contract or even web3 part. They can call PAAS API: https://paas.bworks.app/api/contracts/641005aa53053539eda273de
The API will return a serialized plutus script as a JSON object:
{
"name": "ValidateSignerSignatureV2",
"address": "addr_test1wq55uufk5xx74wvst2fxsdwphnnz5ykd5kpyqgaer73qh9c4kr5lh",
"cborhex": "5908c55908c201***011",
"description": "
Plutus V2, validate unlock singer's signature
" }This JSON object is all what dApp needs for every time it submits a lock or unlock (spend) transaction to Cardano network.
Please see how this example works on preProd network:
The web3 lock (send) and unlock (spend) transactions with above script JSON object are submitted and succeed:
Note that the Marlowe code will also need compile to serialized Plutus script format before it can be used as onChain code. So the APIs will work for Marlowe similarly as Plutus smart contract.
Please see attached screenshoots of demo app at below "functions section" that show idea intuitively.
Architecture
The project is designed with following 05 modules:
AppFlows
Submit a plutus script appFlow
Note: Since it is impossible to read the logic with the serialized plutus script 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 plutus script appFlow
dApp developer select a smart contract they want to use in his dApp
Fetch the smart contract through it public API to have return contains script address, cborHex
Develop web3 lock function (send asset to script address) with desire datum
Develop web3 unlock function (spend locked UTXO) with desire redeemer
Note: It is expected to have lock and unlock web3 components shipped with plutus script when the developer registers its script. However dApp developers can build its own component on top of Cardano Serialization Lib.
Functions
Some demo screenshoots
Dashboard
Publish a script
Perform a web3 transaction
Transactions & reports
Features
Users
Business model
PAAS is an open source platform. It provide both free and commercial services:
Free accounts:
Commercial accounts:
Revenue and expenses
The revenue from subscriber will be use to cover the expenses:
The payment amount to a Plutus developer depends on the number of API calls to its published scripts.
User acquisition
Our user acquisition strategy will target users from two groups - within the Cardano community, and outside of Cardano at 2 different periods.
At development and trial launch periods
We will firstly target users from existing Cardano developers communities. We can reach them through Cardano community groups on Telegram, Twitter and Discord channels.
At this stage we aim to have around 50 paid and unpaid members to join the project. These members form an initial community who well understand project ideas for viral communication strategy at the next stage.
After launch product period
At this stage we will focus on users from Cardano communities and from outside, through user engagement, communication and campaigns.
The different campaigns are designed separately to solve problems with specific groups of users:
The target is to have around 1000 users after 01 year launch the product. This includes around 400 users from the existing Cardano community and 600 users from outside.
Conclusion
The project central missions:
You can see the project as:
Through any above point of view our central missions are still the same: build dApp faster and easier with less cost.
By fulfilling above missions the project will result in growing Cardano developers and Cardano dApps.
Note to PAs and readers
Please contact our telegram to have demo credentials or if there is anything needs clarify: https://t.me/paasCardano
Solving the challenge
Infrastructure and tools to build Cardano dApps faster and better
As a place where plutus developers can publish its scripts, then other dApps can use it via APIs. PAAS plays a role to become infrastructure to build dApps much faster and easier.
Scale and standardize Cardano dApps
With available smart contracts services developers can scale UP or DOWN its dApps just through the use of pay as go service APIs.
By using proven plutus smart contract scripts and web3 parts the platform helps to standardize Cardano dApps’s quality.
Improve and grow the developer ecosystem
The proposed method to build dApp lead the developer focused to work at the expertises they really good at:
The impact to dApp development process:
Bring benefits to Cardano ecosystem from different point of view:
PAAS are smart contract infrastructure and tools to easier build and scale Cardano dApps. This solves the challenge directly and brings the benefits to Cardano ecosystem from some point of view.
The ultimate goal of this project is to offer an alternative approach to build Cardano web3 dApp much faster and easier with significantly lower cost. dApp developers need not to build its own smart contracts and web3 components, they can use services from PAAS to have available smart contracts for their dApps.
For detail KPIs please refer to "how will you validate if your approach is feasible" section.
Measure the success of the project at development period
Measure the success of the project as a running product
This measured data will be public on the platform dashboard where everyone can have a look, feedback to improve:
Communicate the project
Our works, problems and outputs are always communicated across the process through public GitHub repo, staging server and checklist and documents:
Track the project milestones
The community can always keep track project activities, outputs, try the newest developed functions through the links:
Checklist: https://docs.google.com/spreadsheets/d/1ILWSRlA5IBnSEU05vD63MH3nmdFNloXsWZAIUybbjL4/edit#gid=0
App screenShoots: https://drive.google.com/drive/folders/1icI_jTJqdEp39-_N5GyZ6Y8iNdCBde72
GitHub: https://github.com/saigonbitmaster/paas
APIs: https://paas.bworks.app/api
CMS: https://paas.bworks.app/cms
WEB: https://paas.bworks.app/web
Through above resources the community can always track project works, timeline and commitment:
Give us your input
Our GitHub is also open for the community to comment, and raise the issue about what feature or function they want to add to the product. By getting more comments from the community we will get the project out from the rut to be from community to community.
The required knowledges and experiences for this project
Team capacity
The team consists of experienced and responsible members capable in various domains which are required to lead project into success:
Please reference our similar works with previous F8 Catalyst projects, all these projects have complete development stage and deployed for beta test:
Clear out uncertainties in advance
The project is pioneering to provide a new approach for Cardano dApp developers therefore there will be uncertain things we have to address and clear out in advance e.g:
Please see the project gitHub where we committed code that solved uncertainties.
Use simple and clear process
Please see our demo and GitHub link:
https://docs.google.com/spreadsheets/d/1ILWSRlA5IBnSEU05vD63MH3nmdFNloXsWZAIUybbjL4/edit#gid=0 - project checklist
https://paas.bworks.app/web - plutus developer and dApp web app
https://paas.bworks.app/cms - cms
https://paas.bworks.app/api - API to fetch compiled scripts
We consist the team with responsible, capable members plus the clear process with most of the critical risks are cleared out in advance. We believe in delivering this project with high levels of trust and accountability as expected.
Project main goals and how to validate its success:
Produced a successful platform as proposed
System run stably, fast and secured
From user point of view
Success of marketing & community
Why this number?
Success of business
The bottom line is the project is validated to be successful when someone thinks about it first when they are considering to build a dApp on Cardano. That is what try to achieve.
Q2-2023
Pre works.
POC to verify the possibilities of selected technologies and capacity to implementation the approach
Develop a demo version of PAAS with main logics implemented:
Setup environment
Proposal submission
Q3-2023
Milestone-01.
Project Initiation and Paper works
Time: Month 01. Budget: 8,3% of requested budget is equivalent to 45,000 Ada.
(above cost including servers and project management cost for 11 months development stages)
System design with detail diagram and specifications
Define end user functions & system features
Establish project management processes including tasks, outputs and expected time to complete
Infrastructure provisioning for development including staging server, build and deployment tool.
Milestone-02.
Develop Backend APIs & Microservices
Time: Month 02-04. Budget: 130,000 Ada is equivalent to 24% of total requested budget.
Common libraries & web components
DB schemas
Backend APIs
Backend logics & microservices
Q4-2023
Milestone-03.
Develop CMS frontend
Time: Month 04-05. Budget: 75,000 Ada is equivalent to 13,8% of total requested budget
Milestone-04.
Develop Plutus script publisher frontend
Time: Month 05-06. Budget: 70,000 Ada is equivalent to 13% of total requested budget
Q1-2024
Milestone-05.
Service subscriber frontend
Time: Month 07-08. Budget: 60,000 Ada is equivalent to 11.1% of total requested budget
Milestone-06.
QA/QC test, feedback and improvement. Beta launch platform, trial users with key functions.
Time: Month 09. Budget: 35,000 Ada is equivalent to 6,5% of total requested budget
Q2-2024
Milestone-07.
Initial list of Plutus script
Time: Month 10. Budget: 35,000 Ada is equivalent to 6,5% of total requested budget
Milestone-08.
Launch platform
Time: Month 11. Budget: 9,000 Ada is equivalent to 16,6% of total requested budget
Note: "defined functions and features" meant the lists of functions and features which are defined in the previous milestone section.
Q2-2023
Pre works
POC to verify the possibilities of selected technologies and capacity to implementation the approach
Deliverables, outputs and intended outcomes
The serialized Plutus script is able to fetch through API:
Get list of smart contracts:
https://paas.bworks.app/api/contracts/getall
Get one smart contract to use in a dApp with its id:
https://paas.bworks.app/api/contracts/637a3b56862d272080a834cb
Dev environment, github and staging servers are and ready to go:
Q3-2023
Milestone-01.
Project Paper works
Time: Month 01.
Milestone-02.
Develop Backend APIs & Microservices
Time: Month 02-03.
Community can verify the works of APIs by try POST, GET its endpoints e.g:
https://paas.bworks.app/api/contracts/getall
Q4-2023
Milestone-03.
Develop CMS frontend
Time: Month 04-05.
The CMS frontend defined web, web3 functions and features are developed, tested and deployed to staging server for QA/QC to test at: https://paas.bworks.app/cms
Milestone-04.
Develop Plutus script publisher frontend
Time: Month 05-06.
The Develop Plutus script publisher frontend is developed and deployed to staging server for QA/QC to test with functions:
Q1-2024
Milestone-05.
Service subscriber frontend
Time: Month 07-08.
The Service subscriber frontend is developed and deployed to staging server for QA/QC to test at: https://paas.bworks.app/web with functions:
Milestone-06.
QA/QC feedback & improvement. Beta launch platform, trial users with key functions
Time: Month 09.
Performed the QA/QC test for all developed functions and features result out the checklist at: https://docs.google.com/spreadsheets/d/1ILWSRlA5IBnSEU05vD63MH3nmdFNloXsWZAIUybbjL4/edit#gid=0
Fixed bugs and improvement with inputs from the checklist .
Putting it all together and deploying the project to AWS. The community can try the defined functions, APIs, logics through the internet:
https://paas.bworks.app/web - subscriber frontend
https://paas.bworks.app/contributor - contributor frontend
https://paas.bworks.app/api - paas APIs
Select 20 users as trial users to try platform functions and features to have feedback. Improve the functions, features based on the feedback before release.
Q2-2024
Milestone-07.
Initial list of Plutus script
Time: Month 10.
Developed a list of plutus scripts to init the platform and its web3 component for dApp at client side
User guide, code examples and cli scripts for published init plutus scripts are available to use with some validator functions:
Milestone-08.
Launch platform
Time: Month 11.
The platform is deployed to AWS in a production environment with fully defined functions. It is available for usage.
User acquisition and engagement
Total requested budget: 540,000 Ada
(five hundred forty thousand Ada)
Project cost structure
The proposed budget includes the following types of costs:
Internal cost
External cost
Q3-2023
Milestone-01.
Project Initiation and Paper works
Time: Month 01. Budget: 8,3% of requested budget is equivalent to 45,000 Ada
Estimated 100 work hours at cost 100 Ada per hour for paper works. 1630 Ada per month for project management and coordination.
Note: The cost for staging servers is not a one-time cost. we have to arrange across the development period.
Milestone-02.
Develop Backend APIs & Microservices
Time: Month 02-04. Budget: 130,000 Ada is equivalent to 24% of total requested budget
Estimated 1300 work hours at cost 100 Ada per hour for 04 developers work in 03 months.
Common libraries & web components: 15,000 Ada.
DB schemas: 10,000 Ada.
Backend APIs: 70,000 Ada.
Backend logics & microservices: 35,000 Ada.
Q4-2023
Milestone-03.
Develop CMS frontend
Time: Month 04-05. Budget: 75,000 Ada is equivalent to 13,8% of total requested budget
Estimated 750 work hours at cost 100 Ada per hour, for 03 developers work in 02 months.
Milestone-04.
Develop Plutus script publisher frontend
Time: Month 05-06. Budget: 70,000 Ada is equivalent to 13% of total requested budget
Estimated 700 work hours at cost 100 Ada per hour, for 03 developers work in 02 months.
Q1-2024
Milestone-05.
Service subscriber frontend
Time: Month 07-08. Budget: 60,000 Ada is equivalent to 11,1% of total requested budget
Estimated 600 work hours at cost 100 Ada per hour, for 03 developers work in 02 months.
Milestone-06.
QA/QC test, feedback and improvement. Beta launch platform, trial users with key functions.
Time: Month 09. Budget: 35,000 Ada is equivalent to 6,5% of total requested budget
Estimated 350 work hours at cost 100 Ada per hour, for 06 developers and QA/QC work in 01 months.
Q2-2024
Milestone-07.
Initial list of Plutus script
Time: Month 10. Budget: 35,000 Ada is equivalent to 6,5% of total requested budget
This to pay to have at least 05 Plutus scripts and web3 sample code with different validator logics, estimated 4,500 Ada per a script.
Milestone-08.
Launch platform
Time: Month 11. Budget: 90,000 Ada is equivalent to 16,6% of total requested budget
This cost to pay for the infrastructure cost for 01 year toward after launch. Pay for social and internet advertising campaigns to acquire around 1000 users. And for 04 staffs work for a year after launch.
We understand the importance of using funds properly and effectively to make sure every payout has its return and the project will not run out of budget.
Cost optimization strategies
In software development
In human resource
In operation
As stated in the impact section we intend to run the services for free for at least one year. Within this period we have to pay various of expense include:
Platform will operate by internal resources with contributed works from the community. Reduce hardware cost by optimizing the source code and using some techniques e.g docker, serverless.
Conclusion
By using the fund effectively and efficiently that every ADA pays for a counted return it presents the best value for money for the Cardano ecosystem.
Note
As we are a flat and global team with members from Europe, Japan, Singapore and Vietnam it is not possible to provide the average local wage. But estimated cost per a work hour is around 100 ada.
Team up the responsible members that capable to work on particular domains required by the project:
The members have proven work tracks with knowledges and experiences across:
List of members:
1-Thang Tran
GitHub: https://github.com/saigonbitmaster
Software expert, practical Plutus smart contract & web3 engineer and engineering manager.
Roles: Product designer, engineering and project manager. Full stack and Cardano developer.
Responsibilities:
Product design & implementation.
2-June Akra
Financial Market expert, we3 business, Challenge Team Fund 7- Fund 10, Plutus and Atala Pioneer.
Telegram: https://t.me/JuneA
Roles: Community builder, campaigner
Responsibilities:
3-Thang Vu
Senior software and web3 developer.
Roles: Web3 and backend developer.
Responsibilities:
4-Thanh Ngoc
Senior full stack and database developer.
https://www.linkedin.com/in/ngocthanhit/
Roles: Full stack developer.
Responsibilities:
5-Bao Dinh
Senior full stack developer.
Roles: Fullstack developer.
Responsibilities:
6-Thanh Nguyen
Senior full stack engineer
Linkedin: https://www.linkedin.com/in/congthanh-nguyen-b152361a0
GitHub: https://github.com/makotovnjp
Roles: Fullstack developer.
Responsibilities:
7-Oanh Ngo
Experienced QA/QC leader.
Linkedin: https://www.linkedin.com/in/oanh-ngo-06b331100
Role: QA/QC leader
Responsibilities: QA/QC leader, develop test scripts.
8-Xo Nguyen
Senior full stack developer.
Roles: Full stack developer.
Responsibilities:
Develop backend APIs, logics.
Develop frontend functions and features.
9-Chuong Pham
Senior devOps and experienced Cardano engineer.
Roles: devOps engineer.
Responsibilities: Develop cardano scripts, product build and deployment.
10-Dung Phan
Senior infrastructure engineer.
https://www.linkedin.com/in/phan-d%C5%A9ng-6682b5245/
Roles: devOps engineer.
Responsibilities: System provisioning and operation.
11-Thanh Luu
Professional online marketing and customer service manager
https://www.linkedin.com/in/thanh-luu-354409257
Roles: Marketing and community.
Responsibilities: Product promotion, user acquisition and engagement.
12-David do
Professional social marketing and online business manager
https://www.linkedin.com/in/david-do-0bb52b283/
Roles: Marketing and community.
Responsibilities: Product promotion, user acquisition and engagement.
And other resources that hire through https://www.bworks.app
Reference Cardano projects we did:
bWorks seamless smart contract HR platform, complete development already, running on trial mode:
https://www.bworks.app/milestones
https://github.com/saigonbitmaster/bworks_2.0
https://github.com/saigonbitmaster/bworks-smart-contracts
cReports, catalyst audit with web3 implemented, launched at: