We are excited to introduce ICICLE v3.6, bringing support for the Metal backend! This update expands ICICLE’s multi-backend capabilities, making it even more versatile across diverse hardware platforms.
For macOS users, ICICLE now leverages Metal acceleration, allowing seamless performance improvements without any code modifications — your existing APIs will run smoothly on Metal.

Getting Started is Simple
1. Download & extract ICICLE v3.6
2. Set the ICICLE_BACKEND_INSTALL_DIR environment variable
3. Run your existing code — now accelerated with Metal.
4. Enjoy the performance boost.

What’s New in ICICLE v3.6
Metal Backend Support:
- Now operable with C++ and Rust frontends.
- Supported operations on Metal: MSM, NTT, and Sumcheck.


Current Limitations
○ API implementations for Poseidon & Poseidon2 hashes, Merkle tree, Sumcheck, and G2 Montgomery conversions are not yet included but will be added in future updates.
○ Performance Optimizations — We are actively working on refining these primitives to further enhance efficiency in upcoming versions.
Sumcheck Enhancements
- Full API coverage on Program — The Rust wrapper now supports any user-defined Program as a combination function for the Sumcheck protocol.
- Improved CPU Sumcheck — Optimized algorithm delivers significantly better performance.

- ICICLE Sumcheck Grant — We’re excited to support innovative projects leveraging Sumcheck! If you have a unique idea, let’s discuss the possibility of a special grant for your work.
Lattice Advancements
- LaBRADOR protocol ring, RNS VecOps, and NTT have already been integrated.
- These enhancements pave the way for further lattice-based cryptographic developments.
For more details, check out the full release notes.
Future Releases and Upcoming Work
The initial Metal components are now in place, marking a major milestone in ICICLE’s expansion. In upcoming releases, support for Merkle trees and hash functions will be added, along with further optimizations to enhance overall performance.
On the lattice development front, we are focusing on expanding ring APIs, including decomposition, matrix multiplication, and advancements in the Greyhound ring. These improvements will strengthen ICICLE’s capabilities, paving the way for more efficient lattice-based cryptographic applications.
Exploring Groth16 with ICICLE
Our next blog post will dive into Groth16, the most widely used ZK proving scheme. We’ll showcase how ICICLE delivers the fastest implementation available. Stay tuned — this one is worth the wait!
Upcoming ICICLE Release
- ICICLE v3.7 — Introducing FRI support! Want to experiment with the next version? Reach out to us at hi@ingonyama.com.
Follow Ingonyama
Twitter / X: https://twitter.com/Ingo_zk
YouTube: https://www.youtube.com/@ingo_zk
GitHub: https://github.com/ingonyama-zk
LinkedIn: https://www.linkedin.com/company/ingonyama
Join us: https://www.ingonyama.com/career
Snark Chocolate: Spotify / Apple Podcasts