Who is this for
The two surfaces — and which one to use
Active disclosure (default). Custodians run FROST threshold signatures: the group’s secret key is created by distributed key generation and never exists in one place — not even during signing. A disclosure is a zero-knowledge proof gated by the quorum’s BIP-340 signature. Use this for everything routine. Escrow backstop (exceptional). Shamir shares of the viewing key, for key-loss recovery or lawful non-cooperative access. Combining M shares reconstructs the full viewing key and reveals all incoming payments to the combiner. It is a visible, deliberate escalation — rotate keys afterwards.1. Custodian ceremony (once)
Each of the N custodians runs thefrost-custodian CLI (in sdk/tools/),
exchanging the round files through any shared channel. No dealer — the key is
born distributed:
2. A disclosure, end to end
The requester opens a case. A case is(policyId, caseId, requester);
caseId is an opaque 32-byte engagement identifier. The context commits to
all three and is what custodians sign — it contains no transaction data, so
custodians can authorize without learning anything; the circuit enforces that
only a qualifying note can satisfy the proof.
value > threshold, and discloses (value, label) — the label links to the
Deposit event, giving provenance:
msg.sender, so a
proof + signature cannot be hijacked):
Disclosure(policyId, caseId, requester, label, value, …)
— the on-record result.
What each party learns
A second disclosure of the same note under a different case needs a fresh
quorum signature (different context → different nullifier). Replaying the
same disclosure is rejected by the nullifier registry.
Failure modes to plan for
- Below-threshold note: the witness builder throws and the circuit is unsatisfiable — a quorum cannot be tricked into over-disclosing, and an owner cannot disclose what does not qualify.
- Quorum loss: fewer than M live custodians means no disclosures (and no recovery if escrow shares are also lost). Choose N comfortably above M.
- Owner non-cooperation: the proof path needs the note openings. The escrow backstop is the documented escalation, with its total-read-access cost.