FROST Shielded Multi-Sig SDK: Easy Threshold Custody for Zcash Wallets — Grant Application

Hi all,

I’ve submitted a ZCG grant application and wanted to share it here for community feedback, as required before ZCG can discuss and vote on it.

GitHub issue: github

Summary

The Zcash Foundation has already built and partially audited (NCC) a full FROST threshold signature stack for Zcash — frost-core, the RedPallas ciphersuite (reddsa), and reference tooling (frostd, frost-client). ZF’s own writeup on the state of FROST for Zcash says the next step is for wallets to integrate FROST using these tools directly or as reference. But that tooling is protocol-level: a wallet developer who wants to add threshold-signed shielded addresses today has to understand FROST’s round structure, key-package handling, and Zcash’s rerandomization requirements (ZIP 312) before writing a single line of integration code.

I’m proposing a small, standalone Rust SDK that sits on top of ZF’s existing crates and exposes a minimal high-level API ,generate a threshold key group, start a signing session, submit a share so wallet teams can add multi-party shielded custody without becoming FROST experts first. It doesn’t reimplement any cryptography; it wraps what ZF already shipped and adds the ergonomics and network resilience (retry/backoff/circuit-breaking around frostd sessions) that a production wallet integration needs.

Why this and not a from-scratch FROST implementation

I want to be upfront that my first instinct going into this was to propose building FROST support from scratch I caught that this duplicates ZF’s already-audited work, and pivoted to the integration-layer gap instead, which is where ZF has explicitly said help is still needed.

Scope

  • $22,000 total, 3 milestones over 3 months
  • Standalone crate, no dependency on any specific wallet’s codebase or maintainer buy-in
  • Deliverables: key generation wrapper, signing session wrapper with resilience patterns, full docs + CLI example + published crate

Background

I’m a systems engineer with 6+ years of production Rust/C++ experience in distributed systems and protocol engineering (former CTO at StreamLivr, published crates including circuit_breaker, rate_rs, daemon_rs, agenticrs).

Feedback welcome, especially from anyone closer to frostd/frost-client or wallet teams (Zashi, YWallet, etc.) on whether the proposed API surface is actually the right shape for real integration work.

Thanks, Mahmud (@mahmudsudo)

1 Like

Thank you for proposing this to ZCG. Following the committee’s review and time for the community to respond on the forum, we’ve decided not to move forward. We appreciate everything you put into the application and encourage you to keep participating in Zcash.