Proofcord creates signed, self-contained evidence packages for Discord message context-menu interactions.
npm install
npm run generate-keyPut the printed private-key value and the Discord application public key into .env (or inject them through the process environment). Configure the app for User Install, register a Message application command named Nachricht sichern, and configure POST /interactions as its interaction endpoint.
npm run devTo register or update the context-menu command, add DISCORD_APPLICATION_ID and DISCORD_BOT_TOKEN to .env, then run:
npm run register-command/verify-signature datei:<Datei> verifies a Proofcord package uploaded by the invoking user. It is ephemeral and trusts only packages created by this Proofcord instance's signing key.
/show-signature datei:<Datei> shows the verified package metadata, signed message details, and a direct link to the original message in an ephemeral Components-v2 view.
signedPayload is RFC 8785 (JCS) canonicalized and signed with Ed25519. It contains the exact selected message data and a SHA-256 hash of the canonical message JSON. The package embeds the public key for offline integrity checks. A verifier that needs to authenticate the issuer must additionally pin or trust that keyId/public key.
npm run typecheck
npm test