Skip to main content
Version: 0.2.0

πŸ› οΈ Introducing Mopro: The Mobile Prover Toolkit

Mopro is a developer toolkit designed to make building mobile-native ZK apps easier, faster, and more accessible. Whether you're a ZK protocol author, a mobile app developer, or a Rust engineer exploring zero-knowledge proofs, Mopro provides a streamlined workflow to bring your ideas to mobile devices.

πŸš€ What Is Mopro?​

Mopro simplifies the development of mobile-native apps by offering:

  • mopro-ffi simplifies the manual UniFFI setup process and enables a modular approach to proving systems.
  • A powerful CLI to scaffold, build, and update projects
  • Prebuilt templates for iOS, Android, React Native, and Flutter
  • Clear, step-by-step documentation to guide developers at every stage
  • Cross-platform–friendly Rust tooling for building native apps

Our goal is to remove the friction from mobile ZK app developmentβ€”so you can focus on your product, not the plumbing.

⚑ Why Mobile-Native?​

Mobile-native apps offer several key advantages:

  • Up to 10Γ— performance boost compared to browser-based ZK applications. See our benchmarks for detailed comparisons.
  • Seamless user experience and deep integration with device capabilities β€” including biometrics πŸ«†, GPS πŸ“, NFC πŸ’³, camera πŸ“Έ, photo gallery πŸŒ…, Bluetooth πŸ›œ, and push notifications πŸ””.
  • Offline readiness and improved reliability in real-world usage.

These benefits help bring your ZK protocol to a broader, more mainstream audience with better performance and usability.

πŸ”§ How It Works​

Mopro takes each proving system and wraps it as an adapter written in Rust. These adapters provide a unified interface for ZK proof generation regardless of the backend (e.g., Circom, Noir, Halo2). Mopro then uses UniFFI to generate native bindings for Swift (iOS) and Kotlin (Android) from Rust code. These bindings can then be reused in cross-platform frameworks like React Native and Flutter, with ready-to-use templates for each platform.

πŸ‘©β€πŸ’» Who It's For​

πŸ“± ZK Mobile App Developers​

Get a full-stack monorepo template that handles Rust bindings, mobile UIs, and proof generation. Just follow the mopro CLI to bootstrap your app from zero to working prototype. See Getting Started.

πŸ” ZK Protocol Developers​

Don't want to maintain a full app? No problem. Mopro helps you ship production-ready mobile SDKs for your protocol, making it easier for others to integrate your tech.

See Mopro Bindings for Multiplatform

πŸ“² Mobile Developers​

Easily consume ZK SDKs via familiar package managers like CocoaPods, Gradle, npm, or pub.dev. No Rust knowledge required.

πŸ¦€ Rust Developers​

Mopro supports various ZK backendsβ€”even those not originally written in Rustβ€”via wrapper crates.

Examples include

βš™οΈ GPU Acceleration​

Mopro also focuses on mobile-native GPU acceleration, enabling client-side devices to leverage their GPUs to speed up operations like MSM (Multi-Scalar Multiplication) during proof generation. This significantly improves performance for ZK proving on mobile.

See implementation details and updates in gpu-acceleration.

πŸ“š Learn More About Mopro​

Explore the full ecosystem, documentation, and community resources: