Frostsnap Workshop

Freedom Tech Summit 2026
Distributed Key Generation & Threshold Signing Coordination
⚠ This workshop tool DOES NOT encrypt keygen shares to participants and is provided as an educational tool β€” anyone can view the publicly broadcast messages and reconstruct the group secret. DO NOT USE FOR REAL.
Instructions
🌐 No install needed: you can skip the CLI and just press the πŸ’» Run in Web button on each step below β€” each command runs in your browser. Prefer a standalone tools page? Open the web tool here.
  1. Grab one or more partners. Agree on a threshold t and total parties n, and each pick a unique index i β€” enter them in Configuration below.
  2. Agree on a Room ID and enter it below β€” that's how your group's messages find each other on the bulletin board.
  3. For each step, press πŸ’» Run in Web, then πŸ“€ Broadcast your output. Watch the board fill up β€” when it shows all parties are in, move on to the next step.
  4. Finish keygen and you'll hold your own secret share of a key that no single person knows (shown under Finalize Keygen).
  5. Then sign together: nonces β†’ signature shares β†’ combine.
  6. Read the output, and ask questions throughout!
  7. 7. cry to nick if things are broken
Challenge: can you sign a nostr event?
How coordination works: this board uses first-by-time consensus β€” the first message each party posts for a step is the one everyone uses; later edits are ignored. So don't jump ahead: wait until a step shows all parties are in before running the next command. Made a mistake? Posts can't be undone β€” click New Session below to start a clean room.

Extremely Public Bulletin Board


Configuration Disconnected
Stuck or posted by mistake? Messages are permanent (first-by-time consensus). Click New Session to jump to a fresh room ID and start the ceremony cleanly β€” everyone in your group just needs to enter the same new Room ID.
⚠ Everyone must agree on the same Threshold (t) and Total Parties (n), and each pick a different Your Index (1, 2, 3 …) β€” set these once above and every step reuses them.
Color key β€” every box below is one of these three things:
πŸ“€ Your output β€” paste your CLI result here & broadcast it
πŸ“₯ From your group β€” what others have posted
πŸ“‹ Ingest β€” copy this & paste into your next command
πŸ’» Local β€” "Run in Web" computes in your browser; it's only shared when you Broadcast

Part I: Distributed Key Generation

Distributed Keygen Round 1: Commitments
0 / 0
πŸ“₯ From your group β€” commitments others have posted
Waiting for parties to post their commitments...
πŸ“‹ Ingest β€” your group's combined commitments (click the box to copy)
No data yet
πŸ”’ Finish Round 1 first β€” all commitments must be in. (click to expand anyway)
Distributed Keygen Round 2: Keygen Shares
0 / 0
πŸ“₯ From your group β€” keygen shares others have posted
Waiting for parties to post their secret shares...
πŸ“‹ Ingest β€” your group's combined keygen shares (click the box to copy)
No data yet
πŸ”’ Finish Round 2 first β€” all keygen shares must be in. (click to expand anyway)
Finalize Keygen
πŸ’» Finalize β€” computes your key share locally; nothing to broadcast
After this step, you'll have your secret share of the group's public key!

Part II: Signing

Clears the nonces & signature shares below (keygen keys stay intact) and rolls the Session ID β€” start here for each new signature (never reuse a nonce!).
πŸ”’ Finish keygen first (Round 2 complete). (click to expand anyway)
Signing: Nonces
0 / 0
πŸ“₯ From your group β€” nonces other signers have posted
Waiting for signers to post nonces...
πŸ“‹ Ingest β€” the session's collected nonces (click the box to copy)
No data yet
πŸ”’ Collect threshold nonces first. (click to expand anyway)
Signing: Signature Shares
0 / 0
πŸ“₯ From your group β€” signature shares other signers have posted
Waiting for signers to post signature shares...
πŸ“‹ Ingest β€” the collected signature shares (click the box to copy)
No data yet

Signature Verifier

Verify Schnorr Signature