Development Workflow
Guideline
This workflow will guide you through the process of developing a zkWasm application. You can find reference chapters corresponding to each step in the workflow. The workflow follows a five-category cycle:
- Learn: Learn the basics of zkWasm and the zkWasm Mini-Rollup service
- Design: Design your application as a state machine
- Develop: Develop your application in Rust
- Test: Test your application with zkwasm-ts-server
- Deploy: Deploy your application to the zkWasm Hub and blockchain
Development Workflow
Learn
- Understand Web Application Development
- Understand Blockchain Engineering and Zero-Knowledge Proof
- Understand zkWasm Basics and Architecture
Design
- Design your application as a State Machine
- Choose your Development Language and Frameworks
Develop
- Set up Environment
- Get started with Quick Tutorial
Backend
- Install zkWasm-Mini-Rollup
- Develop your zkWasm application in Rust using Rust SDK
- [Optional] Implement Time-Driven Events and Random Numbers features
Frontend
- Develop Frontend and User Interface using Web3 Development Frameworks
- Implement RPC calls in the frontend to interact with the zkWasm application
Smart Contract
- [Optional] Develop custom smart contracts like Token or Custom Transaction Contract
- [Optional] Develop custom Settlement Monitor and Deposit Monitor
Test
- Test the zkWasm application internally with State Validation
- Test the zkWasm application from the frontend with zkwasm-ts-server
- [Optional] Test the state retrival by merkle tree root
- Test your smart contracts with deposit and settlement monitors
Deploy
- Deploy the zkWasm Mini Rollup application to the zkWasm Hub
- Deploy the Frontend code
- Deploy the zkWasm Protocol smart contract to the target blockchain
- Deploy the Withdraw Transaction Contract to the target blockchain
- Deploy other smart contracts like token or custom Transaction Contract
- Deploy the Settlement Monitor
- Deploy the Deposit Monitor