Sign a document

Upload any file. Qsign takes a SHA3-256 digest of the exact bytes, signs that digest with the signer's ML-DSA key, and returns a signed envelope. The envelope travels alongside the document and lets anyone confirm later that neither the file nor the signer identity was altered.

The identity bound into the envelope. A key is issued on first use.
ML-DSA-87 is the default. ML-DSA-65 remains available for compatibility.
Any file format up to 16 MB. The file is hashed and discarded, never stored.
Browse envelopes

What the envelope proves

Integrity
Changing one byte of the document changes the SHA3-256 digest, so verification fails.
Authenticity
Only the holder of the ML-DSA secret key can produce a signature that the published public key accepts.
Longevity
A quantum adversary that breaks RSA and ECDSA does not break the lattice assumption behind ML-DSA.
Portability
The envelope is plain JSON. Verification needs the file, the envelope and a FIPS 204 implementation.