Skip to content

ingonyama-zk/imp1

Repository files navigation

IMP1

Ice Imp

Drop-in framework for mobile ZK proofs.

Built with ICICLE, this mobile-first proving framework brings privacy-preserving zero-knowledge proofs directly to iOS and Android. It’s lightweight, open-source, and optimized for fast, client-side performance with minimal setup required. IMP1 is built on ICICLE-SNARK, an end-to-end prover powered by ICICLE.

Note

Android support for arm64-v8a architecture only.

✨ Features

🔧 ICICLE Engine Inside
Accelerated proving, powered by ICICLE.

Fastest mobile proving experience
Up to 3x faster than Rapidsnark

🔓 Open-source (MIT license)
Free to use, fork, and build upon.

📦 Minimal dependencies
Lightweight and easy to plug in.

📱 Built for iOS and Android
Seamless integration across both major platforms.
⚠ Android support for arm64-v8a architecture only.

Mobile-optimized Groth16 prover An efficient implementation of Groth16, built for mobile devices.

🚀 Parallel proof generation on iOS Generate multiple proofs simultaneously with configurable batch sizes for optimal performance.


📊 Performance

IMP1 performance by circuit size
Proof time by circuit size (iPhone 16 Pro)
IMP1 performance across devices
Device comparison on Rarimo–Bionetta circuit

🚀 Quickstart

iOS

  1. Download the xcframework
  2. Unzip & Drag imp1.xcframework into your iOS app.
  3. Use the prove(), parallel_prove(), and verify() functions from the framework’s public interface. See PublicApi.h for function definitions, usage comments, and required types.
  4. More details in the platform-specific README

Android

  1. Download the aar
  2. Drag imp1-0.2.2.aar into your Android app.
  3. Use the prove(), parallel_prove(), and verify() functions from the library’s native bridge. See NativeBridge.kt for function definitions, usage comments, and required types.
  4. More details in the platform-specific README

🧪 Examples

To get started quickly, check out the example iOS or Android App inside — a minimal project showing how to integrate and use imp1 in a real mobile environment.

🛠 License

MIT License