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.
| Algorithm | Standard | Security | Sign | Verify | Pub key | Sig size | Quantum-safe |
|---|---|---|---|---|---|---|---|
| ML-DSA-87← KXCO | NIST FIPS 204 | Category 5 post-quantum | ~3 ms | ~1.4 ms | 2,592 bytes | 4,627 bytes | ✓ |
| RSA-2048 | PKCS#1 v2.1 | 112-bit classical only | ~1 ms | ~0.08 ms | 256 bytes | 256 bytes | ✕ vulnerable |
| ECDSA P-256 | FIPS 186-4 | 128-bit classical only | ~0.1 ms | ~0.13 ms | 65 bytes | 64 bytes | ✕ vulnerable |
Reproduce in your project
npm install kxco-pq-attest kxco-verifyimport { 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 | falseUse this in your production app.
No agents to install. Every response signed with ML-DSA-87 and verifiable without trusting KXCO.