Mopro is a toolkit for ZK app development on mobile.
π§ Why Mopro?
MoPro makes it radically easier to integrate zero-knowledge proofs (ZKPs) for client-side proving, providing clean abstractions across multiple platforms.
cargo install mopro-cli
Is MoPro for me?
Decision Tree - Find Your Perfect Use Case
Automated pipelines for generating bindings and deploying libraries across platforms: iOS (Swift), Android (Kotlin), web/JS app, react-native, flutter.
Developers can generate bindings and integrate circuits in minutes via an intuitive command-line interface and mobile-friendly SDK.
Support for Circom, Halo2 and Noir. It is also easy to integrate with other proving systems.
Currently supporting Arkworks, Rapidsnark, Plonk, Hyperplonk, Gemini, Barretenberg with more to come!
mopro-wasm: Generates WebAssembly (WASM) with Rayon for browser compatibility.
circom-prover: A Rust prover for Circom. Supports cross-platform high performance circom proving. It also supports BLS12-381 and BN254 curves.
ark-zkey: Compresses and decompresses zkey files for Arkworks.
witnesscalc_adapter: A Rust wrapper for witnesscalc.
rust-rapidsnark: A Rust wrapper for Rapidsnark.
MoPro vs. Legacy Setups
Comparison | MoPro | Legacy |
---|---|---|
Integration Time | Under 2 hours | 10β15 days |
Native Code Required | Minimal (mostly abstracted) | High |
Code Complexity | Single toolchain (Rust β Kotlin/Swift) | Multiple binaries, manual bindings |
Dev UX | Clean CLI, modern tooling | Fragmented and error-prone |
Cross-Platform | Yes (Android & iOS) | Requires separate native work |
Proof System Upgradability | Minimal effort 2-3 hours | Requires entire code re-write |
π Impact & Value
Short-Term
- Reduction in the size of native library bindings
In this example for zkEmail, Mopro reduced the iOS binary size from ~154 MB to 143 MB ~7.1% improvement - β± Time-to-Integration
Most developers can generate a working proof on a mobile device in under 1.5 hours. - π± Real-World Adoption
3+ mobile apps in production using MoPro expected by Q3 2025. (Anon Aadhaar, zkEmail, EZKL, Semaphore) - π‘ Dev Effort Saved
Integrators report saving ~14 days in dev time/code vs. traditional approaches.
Long-Term
- π GPU acceleration
Leverage client-side native GPUs and other proving systems to enhance on-device proof generation, read our research here. - π§ Future Proof System Support
MoPro will continue to add support for the most performant client-side proving system based on PSE's client-side proving research team - π Debugging and testing tools
βοΈ Key Developer Challenges for ZK app development
- High Integration Complexity
Time-consuming native setup and platform-specific headaches
- Messy multi-language code
Previous methods like Rapidsnark/Witnesscal required writing native code in C++, Java, and Objective-C, significantly slowing down development.
- Poor Developer UX
Developers historically spent more time making circuits run on mobile than building the circuits themselves.
- Low Portability
Most ZKP tools weren't built with mobile platforms in mind
- No GPU optimization
π What Developers Are Saying
"It used to take 15 days to integrate ZK proving on Android. With MoPro, I had it running in hours β without touching C++."
βAnon Aadhaar, April 2025
"We went from a cpp/ folder full of brittle native code to a clean, smooth setup. MoPro automated most of it."
βAnonymous Developer