Mopro is a toolkit for ZK app development on mobile. Mopro makes client-side proving on mobile simple.
It offers the following features:
- Directly imports and executes any Rust crate.
- Exports bindings for iOS (Swift) and Android (Kotlin).
- Generates WebAssembly (WASM) with Rayon for browser compatibility.
- Provides project templates for
- Swift in Xcode
- Kotlin in Android Studio
- React Native
- Flutter
- Web development
- 📱 Main Github Repo: https://github.com/zkmopro/mopro
- 📚 Documentation: https://zkmopro.org
- ⚒️ Getting Started: https://zkmopro.org/docs/getting-started
- 💡 Projects you can build: https://zkmopro.org/docs/projects
- 🎥 Demo App: https://github.com/zkmopro/android-benchmark-app
- 🏎️ Benchmark: https://zkmopro.org/docs/performance
- 💬 Community and Talks: https://zkmopro.org/community
- 📰 Blog: https://zkmopro.org/blog
- ark-zkey: Compresses and decompresses zkey files for Arkworks.
- witnesscalc_adapter: A Rust wrapper for witnesscalc.
- rust-rapidsnark: A Rust wrapper for Rapidsnark.
- circom-prover (WIP): A high-performance Rust-based Circom prover with seamless cross-platform support.
We are also exploring ways to leverage client-side native GPUs and other proving systems to enhance on-device proof generation. Here are our research findings.
- GPU acceleration: Implementing accelerated multi-scalar multiplication (MSM) on iOS devices for enhanced performance.
- 🎯 Please checkout out open issues
- 🔍 Report and issue and feature request New issue
Mopro is part of Privacy & Scaling Explorations (PSE), a multidisciplinary team supported by the Ethereum Foundation. PSE explores new use cases for zero knowledge proofs and other cryptographic primitives.