Noir & zkEmail On Mobile: Native Proofs And Verifications With Mopro
Noir with Barretenberg backend gives us a Rust-native prover that is quick enough to run on-device. zkEmail converts an ordinary email (header + body) into a zero-knowledge proof (ZKP) that says “I own this mailbox and have this email – without revealing anything else.”
Mopro wires those two worlds into first-class Swift, Kotlin, Flutter and React-Native packages generated by UniFFI, so your mobile app can create a proof offline, verify it locally, and ship only the compact blob to the server or a on-chain verifier.
Currently, we explored mobile platforms as below. Please check these Github repos for more details.
- Swift/iOS:
zkemail-swift-package - Kotlin/Android:
zkemail-kotlin-package
For cross platform development, we supports
- React-Native module:
zkemail-react-native-package - Flutter plugin:
zkemail_flutter_package
Notice that, due to the limitation of Noir, we currently support architecture of aarch64-apple-ios and aarch64-linux-android. For iOS developers, since the iPhone simulator does not work, please use "My Mac (designed for iPad)" as target if you want to run the app on your laptop. For Android developers, the good news is the app work well on the emulator. Now, Let's get started!