Rekey
Hand off control without handing the host your secret.
Beta ceremony service for threshold KEY custody and delivery. Secret origination happens on the organizer / Group A side with distributed key generation — not on our servers.
What Rekey does
Rekey runs a paid ceremony mailbox and ships an open-source party agent you run on your own machine. Together they coordinate a handoff from custodians A to custodians B — without the SaaS ever learning the controlling secret.
- KEY control plane — who can form the controlling secret S (or the signing capability bound to it): DKG, king escrow, cutover, reclaim.
- PAY plane — what is delivered: a sealed file, or a TRON Rally ownership appoint after threshold signing.
- Coordination only on the host — roster, status, sealed deposits, DKG round packages, VSR packages, attestations, and opaque peer-channel blobs.
Default beta products: rekey-tron-dkg-vsr-handoff (TRON Rally) and rekey-dkg-vsr-blob-delivery (file). Classic blob share-out remains available; SK / legacy MPC combiner products are retired from new ceremonies.
How it is done
On VSR-DKG products, S is not minted by a single dealer who then “trusts” the host. It is born among Group A and a mandatory completing share (the king) held by the organizer.
-
Form the ceremony
Organizer reserves seats on saas.rekey-service.com, verifies contact email (OTP), invites A and B members. Members install the agent and join with a signed invite.
-
Birth KEY with DKG (A + king)
Feldman verifiable DKG runs locally. Holders are Group A ∪ {king} with threshold nA+1. The organizer runs the king DKG seat. No single party is meant to hold a reconstructable S after wrap completes.
-
Wrap
Public ceremony outputs are fixed (S·G, PAY meta or Rally manifest, wrap_epoch_ref). Organizer keeps king_sealed only; the full Act I committee is scrubbed. For file delivery, KEY may be reconstructed once ephemerally to AEAD-wrap the payload — clear file bytes never go to SaaS. For VSR-DKG-Tron, Rally signing stays threshold; wrap publishes a public manifest, not a Rally SK file.
-
Cutover (VSR)
Verifiable Secret Redistribution moves custody to B ∪ {king} without reconstructing S on a dealer. B mailboxes receive sealed assemble packages (including a B-epoch king share). Soft a_revoked blocks A app paths.
-
Unload on member machines
Combiner collects sealed peer exports over the peer channel (opaque to SaaS), opens shares locally, then unwraps / threshold-signs. Delivery lands under the combiner’s delivered/ (blob) or as an on-chain Owner appoint (TRON).
The service coordinates. It does not originate S, does not keep clear KEY, and does not open your sealed mailboxes.
Where knowledge lives
Exact placement for VSR-DKG ceremonies. If a cell says “never,” that is a product invariant — not marketing fluff.
| Material | Organizer / A machines | Rekey SaaS | B machines |
|---|---|---|---|
| Controlling secret S (clear) | Not at rest after VSR wrap. Born via DKG; A alone ≠ S without king. | Never | Only if a B-epoch quorum (including king) reconstructs locally for blob unwrap — not for VSR-DKG-Tron appoint. |
| King / completing share | Act I king_sealed on organizer until claim-complete or reclaim. | Only as sealed mailbox / package bytes — cannot open. | B-epoch king share inside cutover packages after open. |
| KEY shares | Local DKG artifacts during Act I; sealed dealer shares only on classic (non-VSR) blob. | Sealed mailbox deposits; DKG commitments and sealed share_y packages. | key_share.json after open-share (member seal). |
| File payload (blob products) | Clear before wrap; again under delivered/ after unload. | AEAD ciphertext only (sealed_pay). Never clear bytes. | Clear after local unwrap + unload. |
| TRON Rally (VSR-DKG-Tron) | Public address / permissions via TronGrid; API key stays on the machine. | Public Rally manifest JSON — not a Rally private key. | Threshold ECDSA appoint; Rally SK should not land on disk. |
| Identity / seal keys | Ed25519 + X25519 on each party’s agent. | Public keys only (roster / registration). | Same — local agent only. |
| Peer channel exports | — | Opaque sealed blobs between B seats. | Opened only by intended seal key. |
| Email (Resend) | Organizer contact verified by OTP. | Join links and crypto-invite mail — not clear KEY. | Invite attachment + join URL. |
What the messaging / SaaS layer is
- Ceremony SaaS (saas.rekey-service.com) — roster, public status, billing hooks, sealed PAY ciphertext (blob) or public Rally manifest (VSR-DKG-Tron), KEY/VSR mailboxes, DKG round traffic, attestations, delivery receipts.
- Formation email (ceremonies@ceremony.rekey-service.com) — invites and install pointers. Not a KEY transport.
- Peer channel — SaaS path for combiner requests and sealed peer KEY exports. Host sees ciphertext shape, not share cleartext.
- Agent UI / CLI — rekey-agent on your laptop. Private keys never leave that process by design.
Beta install
Requires Python 3.11+. Published agent channel is still handoff-agent-stable/0.2.0 (CLI: rekey-agent, with handoff-agent as a compatibility alias).
macOS / Linux
curl -fsSL https://releases.rekey-service.com/handoff-agent-stable/0.2.0/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
rekey-agent --version
Windows (PowerShell)
irm https://releases.rekey-service.com/handoff-agent-stable/0.2.0/install.ps1 | iex
rekey-agent --version
Reopen PowerShell after install so PATH picks up the console scripts. Live TRON unwrap needs a TronGrid API key in the agent Session panel (stored only on that machine).
Open the local app
rekey-agent ui
Browser opens the local Rekey app (default http://127.0.0.1:9740/). Point it at https://saas.rekey-service.com for beta ceremonies.
Member path after invite email
- Save the invite attachment.
- Install / upgrade the agent from the release URL above.
- Open rekey-agent ui, import the invite, accept, register, then follow the member steps for your product (DKG → open share → peer export → unload).
Organizer path (short)
- Create / reserve on the SaaS, verify organizer email OTP.
- Save seats, invite and lock — members get join mail from the ceremony domain.
- Run DKG (members + your king seat), wrap, hand off (VSR cutover), then support B unload / claim-complete.
Manual verify-before-install (wheel + signed manifest) is documented in the repo’s docs/BETA_MEMBER.md and docs/RELEASES.md.