Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vaulkyrie.xyz/llms.txt

Use this file to discover all available pages before exploring further.

The relay server is a private Node.js TypeScript package under relay-server/. It has three responsibilities:
  • Coordinate cross-device DKG and signing sessions.
  • Store and operate an optional server cosigner share.
  • Sponsor PQC wallet initialization when configured.

Server files

SourceResponsibility
relay-server/src/server.tsHTTP server, WebSocket server, session lifecycle, CORS, health/status endpoints, cosigner and sponsor endpoints.
relay-server/src/cosigner.tsRegister cosigner share, report safe status, join signing sessions, produce signature shares.
relay-server/src/frost.tsLoad FROST WASM for server-side cosigner signing.
relay-server/src/secureStorage.tsEncrypted JSON state storage and legacy state migration.
relay-server/src/pqcSponsor.tsPQC wallet init sponsorship, payer keypair loading, RPC submission, usage limits.

WebSocket session lifecycle

Important defaults

SettingSource constant
Default portPORT, default 8765
Session TTLSESSION_TTL_MS, 10 minutes
Max sessionsMAX_SESSIONS, 100
Max participants per sessionMAX_PARTICIPANTS_PER_SESSION, 10
Member stale windowMEMBER_STALE_MS, 45 seconds

Server cosigner flow

Environment variables

VariablePurpose
PORTRelay HTTP/WebSocket port.
COSIGNER_STORE_PATHOptional path for encrypted cosigner records.
VAULKYRIE_RELAY_SECRETSecret material for encrypted relay state.
PQC_SPONSOR_STORE_PATHOptional path for PQC sponsor usage records.
PQC_SPONSOR_KEYPAIR_PATHOptional sponsor payer keypair path.
PQC_SPONSOR_FREE_LIMITFree sponsorship limit.
PQC_SPONSOR_TOKENToken required for sponsor endpoints when configured.

Build scripts

cd relay-server
npm install
npm run build
npm start