Skip to content

feat: mobile app migration#58

Merged
0xVikasRushi merged 10 commits intoprivacy-ethereum:mainfrom
moven0831:feat/mobile-app-migration
Feb 2, 2026
Merged

feat: mobile app migration#58
0xVikasRushi merged 10 commits intoprivacy-ethereum:mainfrom
moven0831:feat/mobile-app-migration

Conversation

@moven0831
Copy link
Collaborator

Description

This PR migrates the mobile app https://github.com/moven0831/zkID-mobile-wallet-poc to https://github.com/privacy-ethereum/zkID.

Some critical changes listed as below:

  • Replace hardcoded asset path with configurable one for ecdsa-spartan2 implementation (519e4de)
  • New FFI layer using Mopro to generate Flutter bindings from Rust crates (48afc3d)
  • Add Flutter implementation for both Android and iOS apps (42ac820)
  • Refactor docs with new mobile benchmarks (664ef1e and c285404)

Related Issue(s)

Timing Measurements (Mobile)

All timing measurements are in milliseconds (ms).

Test Device:

  • iOS: iPhone 17, A19 chip, 8GB RAM
  • Android: Pixel 10 Pro, Tensor G5, 16GB of RAM

Prepare Circuit Timing

  • Payload Size: 1920 Bytes
  • Peak Memory Usage for Proving: 2.27 GiB
Device Setup (ms) Prove (ms) Reblind (ms) Verify (ms)
iPhone 17 3254 2102 884 137
Pixel 10 Pro 9282 5161 1732 318

Show Circuit Timing

The Show circuit has constant performance regardless of JWT payload size.

  • Peak Memory Usage for Proving: 1.96 GiB
Device Setup (ms) Prove (ms) Reblind (ms) Verify (ms)
iPhone 17 43 85 30 13
Pixel 10 Pro 99 308 130 65
iPhone 17 Pixel 10 Pro

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@moven0831 moven0831 self-assigned this Jan 27, 2026
@moven0831
Copy link
Collaborator Author

@0xVikasRushi would love to get your review.

@0xVikasRushi
Copy link
Collaborator

Timing Measurements (Mobile)

All timing measurements are in milliseconds (ms).

Test Device:

Regarding the benchmark, were both done on an emulator or a real device?

@moven0831
Copy link
Collaborator Author

Timing Measurements (Mobile)

All timing measurements are in milliseconds (ms).
Test Device:

Regarding the benchmark, were both done on an emulator or a real device?

Both are done on real devices

@0xVikasRushi 0xVikasRushi merged commit 291575a into privacy-ethereum:main Feb 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants