Live Demo

ML-DSA-87 in action.

Sign any payload with a real, freshly generated ML-DSA-87 key, inspect the attestation envelope, then try to forge it. Runs entirely server-side, with no login and no setup.

Payload

Algorithm comparison

ML-DSA-87 makes a key in milliseconds where RSA-2048 takes around a tenth of a second. RSA and ECDSA sign faster. Of the three, only ML-DSA-87 is designed to resist a quantum computer. Medians measured 7 October 2026 on an Intel Core i7-7700K, OpenSSL 3.5.6 through Node.js.

AlgorithmStandardSecuritySignVerifyPub keySig sizeQuantum-safe
ML-DSA-87← KXCONIST FIPS 204Category 5 post-quantum~3 ms~1.4 ms2,592 bytes4,627 bytes✓
RSA-2048PKCS#1 v2.1112-bit classical only~1 ms~0.08 ms256 bytes256 bytes✕ vulnerable
ECDSA P-256FIPS 186-4128-bit classical only~0.1 ms~0.13 ms65 bytes64 bytes✕ vulnerable

Reproduce in your project

npm install kxco-pq-attest kxco-verify
import { attest }         from 'kxco-pq-attest'
import { verify }         from 'kxco-verify'

// Sign any JSON payload with ML-DSA-87
const envelope = await attest(
  { type: 'contract', document: 'NDA_2026.pdf', ... },
  { secretKey, publicKey },  // ML-DSA-87 keypair: mlDsa87.keypairFromMaster from kxco-post-quantum
)

// Verify anywhere — no server contact required
const result = verify(envelope, publicKey)
// result.valid === true | false

Use this in your production app.

No agents to install. Every response signed with ML-DSA-87 and verifiable without trusting KXCO.