Root package
Use the root package for the full supported ceremony. It contains the manifest,
transport, DKG, ballot-proof, decryption, tally, and verifier helpers required
to build and verify the documented workflow end to end. Grouped public
subpath entrypoints such as threshold-elgamal/proofs,
threshold-elgamal/threshold, threshold-elgamal/dkg,
threshold-elgamal/vss, threshold-elgamal/elgamal,
threshold-elgamal/protocol, and threshold-elgamal/core remain available
when you prefer imports by subsystem.
What lives here
Section titled “What lives here”- manifest helpers and score-range helpers
- roster hashing and session derivation
- transport and authentication helpers
- DKG, proof, and tally helpers used by the supported ceremony
- public builders for the standard ceremony payloads
- full public-board verification
- full ceremony verification
Common starting points
Section titled “Common starting points”- manifest and session setup:
createElectionManifest,scoreRangeDomain,hashRosterEntries,hashElectionManifest,deriveSessionId - browser-side key material:
generateAuthKeyPair,exportAuthPublicKey,generateTransportKeyPair,exportTransportPublicKey - encrypted share transport:
encryptEnvelope,decryptEnvelope - DKG and proof flow:
generatePedersenCommitments,generateFeldmanCommitments,deriveJointPublicKey,createDisjunctiveProof,createDLEQProof,createSchnorrProof - decryption and tally flow:
prepareAggregateForDecryption,createDecryptionShare,combineDecryptionShares - public board verification:
tryVerifyElectionCeremony,verifyElectionCeremony - published payload construction:
createManifestPublicationPayload,createRegistrationPayload,createManifestAcceptancePayload,createBallotSubmissionPayload,createBallotClosePayload,createDecryptionSharePayload,createTallyPublicationPayload
Typical import style
Section titled “Typical import style”import { createElectionManifest, createManifestPublicationPayload, createRegistrationPayload, createManifestAcceptancePayload, createBallotClosePayload, createDecryptionSharePayload, verifyElectionCeremony,} from "threshold-elgamal";Use the root package when
Section titled “Use the root package when”- you want the
ristretto255voting workflow - you want the explicit manifest, declared score range, and derived majority-threshold rules
- you want one import surface for the full supported ceremony, including proof, threshold, DKG, and verifier steps
Use the submodules when
Section titled “Use the submodules when”- you prefer narrower imports grouped by subsystem
- you want to browse the generated reference by proof, threshold, DKG, protocol, or VSS layer
- you need explicit error classes or other core-only primitives that stay outside the main ceremony story
Related workflows
Section titled “Related workflows”- Get started for the public surface rules and setup
- Runtime and compatibility for browser, Node, Web Crypto, and
bigintrequirements - Browser and worker usage for browser-native setup and transport envelopes
- Honest-majority voting flow for the full ceremony path
- Published payload examples for exact JSON shapes
- Verifying a public board for the verifier entry points and failure handling
Generated reference coverage
Section titled “Generated reference coverage”- exact signatures, types, and return shapes for the exported surface
- contract-level detail for the full ceremony types
- module-level separation between the root package and the grouped public submodules