Skip to content

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:

  1. Learn: Learn the basics of zkWasm and the zkWasm Mini-Rollup service
  2. Design: Design your application as a state machine
  3. Develop: Develop your application in Rust
  4. Test: Test your application with zkwasm-ts-server
  5. Deploy: Deploy your application to the zkWasm Hub and blockchain

Development Workflow

Learn

  1. Understand Web Application Development
  2. Understand Blockchain Engineering and Zero-Knowledge Proof
  3. Understand zkWasm Basics and Architecture

Design

  1. Design your application as a State Machine
  2. Choose your Development Language and Frameworks

Develop

  1. Set up Environment
  2. Get started with Quick Tutorial

Backend

  1. Install zkWasm-Mini-Rollup
  2. Develop your zkWasm application in Rust using Rust SDK
  3. [Optional] Implement Time-Driven Events and Random Numbers features

Frontend

  1. Develop Frontend and User Interface using Web3 Development Frameworks
  2. Implement RPC calls in the frontend to interact with the zkWasm application

Smart Contract

  1. [Optional] Develop custom smart contracts like Token or Custom Transaction Contract
  2. [Optional] Develop custom Settlement Monitor and Deposit Monitor

Test

  1. Test the zkWasm application internally with State Validation
  2. Test the zkWasm application from the frontend with zkwasm-ts-server
  3. [Optional] Test the state retrival by merkle tree root
  4. Test your smart contracts with deposit and settlement monitors

Deploy

  1. Deploy the zkWasm Mini Rollup application to the zkWasm Hub
  2. Deploy the Frontend code
  3. Deploy the zkWasm Protocol smart contract to the target blockchain
  4. Deploy the Withdraw Transaction Contract to the target blockchain
  5. Deploy other smart contracts like token or custom Transaction Contract
  6. Deploy the Settlement Monitor
  7. Deploy the Deposit Monitor