Skip to main content

Reflections on 2025: The Mopro Story

· 7 min read
Vivian Jeng
Developer on the Mopro Team

2025 has been a strong year for Mopro and the evolution of mobile proving. Over the past year, we showed that Mopro is not just a tool for advanced developers, but one that hackers and beginners can adopt with ease.

This progress was also showcased at DevConnect, where we presented Mopro’s approach to mobile proving and shared real-world learnings from building and deploying zk applications on mobile. You can watch the full talk.

The following milestones highlight what we accomplished.

Mobile SDK Management Solution

We realized that for most zk protocol developers, building a full frontend is not essential—especially when the goal is to demonstrate a proof of concept or integrate the protocol into an existing product. What is essential, however, is a reliable and easy-to-use SDK.

To address this, we built reusable templates with Mopro bindings that can be integrated with minimal mobile development experience. These templates are designed to be easily extended into SDKs for multiple platforms, enabling zk protocol teams—such as zkEmail, Semaphore, and others—to focus on protocol design rather than frontend or mobile engineering.

info

For more details, please refer to our blog and documentation.

Our approach is inspired by the Reclaim Protocol philosophy: a protocol should support as many platform SDKs as possible to unlock a broader range of applications and products.

Reclaim Protocol SDK

Expanded FFI Support

Although UniFFI provides a robust foundation for Rust FFI, it still requires manual effort to integrate with modern cross-platform frameworks such as Flutter and React Native. This added complexity can be a barrier for mobile developers.

In 2025, we streamlined this process by integrating multi-platform FFI generation into mopro-ffi. Today, Mopro can automatically generate bindings for Swift, Kotlin, Flutter (with flutter_rust_bridge), React Native (with uniffi-bindgen-react-native), and WebAssembly (with wasm-bindgen), eliminating the need to maintain platform-specific glue code. Developers define their interfaces once in Rust, and Mopro handles the rest.

note

For example, in a React Native app, developers need to manually write glue code in Swift, Kotlin, and TypeScript, as described in the README.

Similarly, in a Flutter app, glue code must be written in Swift, Kotlin, and Dart (See the README).

This results in hundreds of lines of manually maintained code, which does not scale well as the number of FFI-exported functions grows.

With flutter_rust_bridge and uniffi-bindgen-react-native, these glue layers are generated automatically, allowing mobile developers to interact with the Rust APIs directly from React Native and Flutter without writing or maintaining platform-specific binding code.

Noir Support

Alongside our existing support for Circom and Halo2, we integrated Noir into Mopro in 2025, recognizing its growing adoption as a frontend language for zero-knowledge circuits. Inspired by the zkPassport team, we enabled mobile proving and verification for Noir-based circuits.

info

For more details, please refer to our blog and documentation.

Throughout the year, we participated in multiple NoirHack events and NoirCon, where we built Stealthnote Mobile, achieving up to 10× faster performance than the browser version and a superior user experience. We also released an example demonstrating how Noir proofs can be verified on-chain.

Hackathon Projects

Throughout 2025, we participated in several hackathons and received over 50 project submissions built with Mopro. Below are a selection of standout projects developed this year.

info

Read our reflections from ETHGlobal Cannes and ETHGlobal New Delhi.

Zuma

Anonymous Event Attendance

Hackathon Zuma

ETHGlobal Trifecta — Zero Knowledge

Zuma is a ZK-powered Luma-style application, inspired by Luma and Zupass. It combines the seamless user experience of native event apps with the strong privacy guarantees of zero-knowledge proofs.

When a user attends an event, the app generates a Semaphore proof to attest to attendance. Verifiers only need to validate the proof to confirm that the user is an attendee—without learning any personal information such as the user’s email address or name.

Stealthnote Mobile

Glassdoor-Style Anonymous Forum

Hackathon Stealthnote Mobile

NoirHack 2025

Stealthnote Mobile is inspired by stealthnote.xyz and demonstrates that Noir proofs can be generated and verified directly on mobile devices. Compared to the browser-based implementation, the mobile app achieves up to 10× faster performance.

While the browser version takes approximately 20 seconds to generate a Google OAuth proof, the mobile app completes the same operation in about 2 seconds, resulting in a significantly improved user experience. In the future, the app could integrate push notifications to notify users when new posts are available.

MobiScale

Privacy-Preserving AI Biometric Verification with zkVM on Mobile

Hackathon MobiScale

ETHGlobal Cannes 2025

Mobiscale represents a major technical milestone for Mopro, showcasing how mobile hardware can enable zkVMs on smartphones. The project combines AI-powered facial recognition with Apple’s Secure Enclave to verify identity in a privacy-preserving way.

Users upload a passport photo and take a live selfie, which are compared locally by an AI model to establish identity with high confidence. The system then generates zero-knowledge proofs using RISC Zero and Noir circuits, allowing third parties to verify identity claims without accessing biometric data, confidence scores, or image hashes.

ZeroSurf

Seamless Browser-to-Mobile ZK Age Verification

Hackathon ZeroSurf

ETHGlobal New Delhi 2025

ZeroSurf demonstrates a highly smooth user experience between browser applications and mobile native apps through deep linking. When accessing a website with age restrictions, users are redirected via a URL to a mobile app, where a zero-knowledge proof (in this case, an Anon Aadhaar proof) is generated.

The proof is then returned to the website, enabling verification without exposing sensitive information. This project expands the use cases for mobile-native provers and shows how browser-based applications can directly benefit from mobile zero-knowledge proving.

info

Explore more projects at https://zkmopro.org/docs/projects/

Future Direction

2026 Roadmap

In 2026, we propose the following direction for the community. While Mopro handles the FFI layer and ensures that proving systems work reliably across platforms, we also want to raise awareness that reaching users on different platforms requires more than just cross-platform compatibility.

To truly enable adoption, zk protocol developers should provide platform-specific SDKs that can be easily consumed by application developers on iOS, Android, web, and beyond. By offering well-designed SDKs tailored to each platform’s ecosystem, zk applications can achieve broader reach, better user experience, and faster integration across diverse platforms.

As for the Mopro team, we plan to collaborate with more projects to help them build and ship their protocol SDKs. We will continue exploring zkVMs on mobile and advancing client-side GPU research across different proving systems.

In addition, we aim to engage more deeply with mobile development communities and events, promoting the adoption of zero-knowledge proofs in real-world mobile applications.

Conclusion

2025 was a milestone year for Mopro, proving that mobile zk is not only possible, but practical and accessible. As we move into 2026, we’re excited to keep pushing the boundaries of mobile proving and work closely with the community to bring zero-knowledge to more platforms and applications.

ETHGlobal New Delhi: Advancing Client-Side Privacy

· 6 min read
Moven Tsai
Developer on the Mopro Team

At ETHGlobal New Delhi this September, the Mopro and zkPDF teams sponsored two tracks focused on bringing general privacy to Ethereum. The hackathon delivered impressive projects that pushed boundaries in both infrastructure and application development.

Several submissions exceeded expectations with standout UX features. Deeplink integration enables seamless transitions between mobile apps and browsers, allowing native mobile proving across existing browser applications that require ZK (like age verification for websites). NFC integration demonstrated tap-to-prove and tap-to-verify capabilities, creating an experience as intuitive as Apple Pay. These implementations show the maturity of client-side ZK proving and its readiness for real-world adoption.

ZeroSurf demo: Privacy-preserving age verification with deeplink integration

Infrastructure Track: Client-Side Privacy

🏆 Grand Prize: AccessFI

View Project | GitHub

AccessFI reimagines event payments with NFC-powered privacy. Users receive P-256 compatible SECP256k1 NFC cards linked to their wallets, enabling instant tap-to-pay for tickets, registration, food, and merchandise while preserving privacy through deterministic encryption.

The system eliminates payment friction with 5-second NFC transactions that work on any EVM chain. Privacy is maintained through ZK proofs that verify user eligibility without exposing personal data. A single card handles all event interactions: tap-to-buy tickets, tap-to-register, tap-to-pay for concessions.

AccessFI Flow

Application Track: General Privacy

🥇 First Prize: zkETHer

View Project | GitHub

zkETHer implements a privacy-preserving protocol for ERC20 tokens, functioning as a non-custodial mixer. Users deposit fixed amounts by submitting cryptographic commitments to an on-chain Merkle tree, then withdraw to new addresses using ZK proofs generated on their mobile devices.

The protocol uses X25519 (ECDH) for key exchange, HKDF-SHA256 for deriving secrets, and Poseidon2 hash for commitments. Mopro enables computationally intensive ZK proofs to be generated directly on phones, making privacy accessible without specialized hardware.

The circuit implementation is robust, though real-world feasibility needs improvement for production deployment. The architecture demonstrates how mobile-first proving can bring mixer-style privacy to standard ERC20 tokens.

zkETHer demo: Privacy-preserving ERC20 mixer with mobile ZK proving

🥈 Second Prize: Wisk

View Project | GitHub

Wisk rethinks background verification for the digital age with zkPDF. Instead of sharing documents with third parties, users prove specific claims about government-issued certificates without revealing the full content.

The system integrates with India's DigiLocker to verify official PDFs. Using zkPDF, Wisk validates the government's digital signature embedded in PDFs and generates ZKPs for requested fields (name, PAN number, credentials). The entire process happens in the browser—raw documents never leave the user's device.

🥉 Third Prize: ZeroSurf

View Project | GitHub

ZeroSurf is a mobile browser with built-in ZK age verification using Anon Aadhaar. The smooth deeplink integration allows users to prove age requirements without revealing birth dates, enabling privacy-preserving access to age-restricted content.

The implementation showcases how deeplinks can bridge mobile browsers and ZK proving apps, creating frictionless user experiences for privacy-preserving authentication.

Key Takeaways & Future Explorations

The hackathon revealed several promising directions for client-side privacy:

UX innovations like NFC and deeplinks proved that privacy-preserving technology can match the convenience of traditional systems. These features should be modularized within Mopro to improve developer experience. We'll invite teams that built these integrations to contribute reusable components.

Photo-identity integrity emerged as a recurring theme across multiple projects, adding security layers to identity verification. Integrating solutions like Rarimo's Bionetta and zkCamera with mobile-native proving through Mopro could strengthen this approach.

We're excited to see more UX innovations emerge in future hackathons. Whether it's tap-to-prove bringing native mobile experiences, smooth deeplink transitions between apps and browsers, or entirely new interaction patterns—the goal is providing developers with easy-to-use building blocks. By modularizing these patterns in Mopro, we can transform what took teams days to build during the hackathon into features that take minutes to integrate.

Beyond these UX enhancements, there are also two fundamental challenges worth exploring:

zkTLS and Mobile Proving

zkTLS enables portable, verifiable data from any HTTPS connection without server cooperation. Using multi-party computation (MPC), zkTLS allows users to prove statements about web data—like account balances, transaction histories, or credentials—without revealing the underlying information or requiring platform APIs.

TLSNotary leads the MPC-based approach, using garbled circuits to split TLS session keys between users and notaries, ensuring neither party can forge proofs alone. This creates portable proofs of web data while preserving privacy.

Mobile integration remains an open challenge. While TLSNotary works well on desktop, coordinating MPC between mobile apps and browsers presents unique technical hurdles. Solving this would unlock powerful use cases: proving income from banking apps, verifying social media reputation, or demonstrating transaction history—all without sharing credentials or raw data.

Unified ZK Registry System

The ZK identity landscape is fragmented. Projects like Anon Aadhaar, passport-based zkID solutions, and zkPDF each maintain separate on-chain registries. Users face redundant verifications, and developers must integrate with each system independently.

ERC-7812 proposes a solution: a singleton on-chain registry using Sparse Merkle Trees to store commitments to private data. Statements can be verified via ZK proofs without revealing underlying information.

With unified client libraries built around ERC-7812 and integrated with Mopro, developers would call one API after generating proofs on-device, regardless of proof type. The real power emerges in cross-application identity: a user proves their age once with Anon Aadhaar in one Mopro app, committing to ERC-7812. Later, a Mopro app using different schemes verifies that commitment without re-proving. The unified registry enables seamless credential reuse across the mobile applications while preserving privacy.

Announcing the ETHGlobal Cannes 2025 Mopro Track Winners: Advancing Mobile Proving

· 6 min read
Moven Tsai
Developer on the Mopro Team

ETHGlobal Cannes brought together some of the brightest minds in blockchain development, and we're thrilled to announce the winners of the Mopro track. Over 36 intense hours, developers pushed the boundaries of client-side proving with real-world applications on mobile device.

With innovative submissions ranging from protocol-level integrations to consumer-facing applications, Mopro track showed how mobile ZK proving is becoming increasingly practical. Teams leveraged Mopro's mobile proving capabilities to build everything from tamper-proof media verification to post-quantum secure smart accounts with EIP-7702, proving that privacy-preserving technology can be both powerful and user-friendly.

The Power of Client-Side Proving

Before diving into the winners, it's worth highlighting what made this hackathon special. While many ZK applications rely on server-side proving or trusted execution environments (TEEs), Mopro enables developers to generate zero-knowledge proofs directly on mobile devices. This approach puts privacy control back in users' hands and opens up new possibilities for decentralized applications.

The submissions demonstrated two key trends: protocol developers integrating zkVM such as RISC-0 and libraries like Gnark with Mopro, and application developers building user-facing products that leverage existing ZK circuits. Both approaches are critical for the ecosystem's growth.

The Winners

🥇 First Place: Mobiscale - Photo-ID Verification with Apple's Secure Enclave

Project: Mobiscale
GitHub: ElusAegis/MobiScale

Mobiscale achieved what many thought impossible in a hackathon setting: a complete end-to-end proof of photo-ID verification running entirely on a mobile device in under 90 seconds. The team cleverly combined Apple's Secure Enclave for facial recognition, RISC-0 for TEE attestation verification, and Noir with the Barretenberg proving backend for ECDSA signature validation.

What makes this project remarkable is its practical approach to identity verification. By computing cosine similarity between a passport photo and a live selfie within the TEE, then proving this computation happened correctly using ZK proofs, Mobiscale demonstrates a privacy-preserving liveness check that could be deployed in the near future. The integration with Mopro shows how mobile proving can complement hardware security features to create robust identity solutions.

🥈 Second Place: Zkipper - PQ-Secure EIP-7702 Smart Accounts

Project: Zkipper
GitHub: ZKNoxHQ/ZKipper

The ZKNox team showcased their cryptographic expertise at the hackathon with "Zkipper," a project that turns the ARX chips in ETHGlobal wristbands into transaction signers, enabling post‑quantum–secure smart accounts via EIP‑7702.

The technical achievement here is twofold: First, they successfully integrated Gnark with Mopro within the 36-hour timeframe, which is a significant contribution to the ecosystem. Second, they implemented Falcon512 post-quantum signatures to secure smart accounts, preventing "Bybit-style" attacks by separating admin commands onto distinct devices. This approach shows how Mopro can enable hardware-based security solutions that are both quantum-resistant and user-friendly.

🥉 Third Place: 👀Proov! - Tamper-Proof Media with ZK

Project: 👀Proov!
GitHub: undefinedlab/PROOV_ZK

👀Proov! stood out not just for its technical implementation but for its exceptional UI/UX design. The team created a complete solution for tamper-proof media capsules, combining Mopro-generated proofs with AI-powered image summaries, decentralized storage on Walrus, and verification on Flow blockchain.

The project offers one-tap proof generation with instant cryptographic capsule creation, selective privacy controls, and future-disclosure capabilities. By embedding tamper-proof QR codes in image capsules, they made every photo machine-verifiable and portable across platforms like Instagram, X, and Telegram. This shows how ZKP can be packaged into consumer-friendly applications without sacrificing security or privacy.

Other Notable Submissions

Beyond the top three winners, the Mopro track at ETHGlobal Cannes attracted submissions that collectively show the diversity of ZK use cases on mobile. Teams explored verification and attestation use cases through projects like ProofOfParticipation (GPS-based event attendance), ZKAge Proof Mobile (age verification for restricted services). Bidet's privacy-preserving NFC tag game showcased gaming and social use cases, and ProofOfFunds showed financial privacy by letting users prove they meet a cryptocurrency balance threshold without disclosing exact amounts or wallet addresses.

These submissions integrated various technical stacks across different proving frameworks—Circom and Noir—and mobile platforms—Swift (iOS), Kotlin (Android), React Native, and Flutter—alongside Mopro’s proving capabilities. This integration validates the platform’s flexibility across use cases and tech stacks. The diversity of both applications and technical aspect highlights the ecosystem’s readiness for real-world deployment and shows how mobile proving can address privacy challenges across multiple industries.

Key Insights and Developer Feedback

The hackathon provided valuable insights into the state of mobile ZK proving:

What's Working Well:

  • Mopro's developer experience received consistently positive feedback
  • Teams successfully integrated various proving systems (RISC-0, Noir, Gnark) with Mopro
  • The ecosystem is mature enough for developers to build meaningful applications in 36 hours

Challenges Identified:

  • Writing circuits remains the biggest pain point for developers
  • On-chain verification varies in stability (Circom is more mature, Noir is catching up)
  • Developers need single-architecture templates for iOS-only or Android-only builds

Looking Forward: The Future of Client-Side Proving

The diversity of submissions—from geo-proof games adapted from zkVerify's proof-of-geolocation circuits to age verification systems—shows that mobile ZK proving is ready for mainstream adoption. While Mopro may not pursue the same level of direct adoption as protocols aimed at end users, it serves a critical role as an incubation platform for client-side ZK applications especially on mobile phone.

Based on developer feedback, we're prioritizing several improvements:

  • Enhanced Templates - Expanding variety for different use cases (Issue #503, Issue #438)
  • Single Architecture Support - iOS-only and Android-only bindings for cross-platform frameworks like Flutter (Issue #502) and React Native (Issue #501).
  • Improved DevEx - Better naming for custom bindings (Issue #500)
  • Documentation - Simplified architecture overview (Issue #498)

Acknowledgments

We'd like to thank all teams who participated in the Mopro track at ETHGlobal Cannes. Your innovation, dedication, and feedback are invaluable in advancing the state of mobile proving.

Special recognition goes to the ETHGlobal team for organizing an exceptional event and providing the infrastructure that makes these innovations possible.

Get Involved

The work showcased at ETHGlobal Cannes is just the beginning. If you're interested in building with Mopro or contributing to the ecosystem: