# Mina Frost Multi-Sig Milestones
Dated: 11 October 2025
## Overview
This document describes Stage 2 of the FROST-based multi-signature tool for the Mina protocol. Stage 2 will run for three months and is organized into monthly milestones that deliver zkApp signing support, cross-network testing, and a stable release.
This stage focuses on adding support for signing zkApp transactions and enabling multi-signature signing of arbitrary smart-contract interactions (including verification-key upgrades). The work will mainly require porting existing zkApp hashing and signing logic from the o1js TypeScript implementation into Rust, integrating FROST signing, and validating behavior across devnet and mainnet.
### Past Work/Documents
- [Roadmap for Stage 1](https://hackmd.io/uOXhUaewTtC6MC3MHAEhRw)
- [Extension Propoasl for Stage 2](https://hackmd.io/@nschleicher/ByyfQLhYgg)
## Deliverables & Acceptance Criteria
### Month 1 - Foundations & zkApp hashing
#### Planned Work
- Resolve remaining issues backlog from Stage 1.
- Implement zkApp hashing and signing primitives in Rust by porting and adapting the o1js hashing code and tests.
#### Acceptance criteria
- Deterministic zkApp transaction hashing implemented in Rust.
- Hash output matches o1js (unit tests demonstrating bit-for-bit equivalence for a representative set of transactions).
- A small test-suite and CI job that runs the new hashing tests.
### Month 2 - Integrate FROST signing for zkApp transactions
#### Planned Work
- Integrate FROST multi-signature flows with the zkApp signing code.
- Support signing workflows for both Devnet and Mainnet.
- Publish the first testnet zkApp transaction demonstrating multi-sig signing.
#### Acceptance criteria
- End-to-end flow that creates, signs (multi-sig), and serializes a zkApp transaction in Rust.
- Demonstrated testnet transaction(s) on Devnet (and procedure documented to execute on Mainnet).
- Integration tests that simulate multiple signers and produce valid zkApp transactions accepted by Mina nodes
### Month 3 - Feedback, polish, and release
#### Planned Work
- Collect UX and deployment feedback from Nori, Zeko, and Lumina teams.
- Improve terminal UX, provide deployment support, fix bugs found during integrations.
- Run integration tests for smart-contract interactions and verification-key updates.
- Prepare and publish the first stable release (v1.0.0).
#### Acceptance Criteria
- Integration tests passing for representative smart-contract interactions and verification-key updates.
- Release artifacts (crate/binaries), and concise upgrade/deployment instructions published.
## Risks & Mitigations
- Hash mismatches: subtle differences between TypeScript and Rust implementations may produce incompatible hashes. *Mitigation*: run exhaustive unit tests, add byte-for-byte comparison suite.
- Integration/UX friction: teams may have differing expectations for CLI behavior. *Mitigation*: schedule early demos and gather structured feedback in month 2.