Post-quantum ML-DSA-65 signatures for MetaMask Flask
This Snap adds NIST FIPS 204 ML-DSA-65 post-quantum cryptography to MetaMask. Generate quantum-resistant key pairs, create hybrid (ECDSA + ML-DSA-65) signatures, and verify PQC signatures — all from within MetaMask.
MetaMask Flask is the developer edition that supports Snaps. Download Flask (disable regular MetaMask first).
MetaMask will ask you to approve the Snap permissions: key storage, dialog prompts, and notifications.
Click "Generate Key" below or call qs_generateKeyPair from your dApp. A ML-DSA-65 key pair (1,952B public key) will be created and stored securely in the Snap.
Connect to Web Wallet or dApp to use your PQC keys for quantum-resistant transactions on Chain 42069.
After installing, test the Snap's RPC methods:
qs_generateKeyPair
Generate ML-DSA-65 key pair (Level 3)
qs_listKeys
List all stored PQC keys
qs_getPublicKey
Get public key by ID
qs_deleteKey
Delete a key pair
qs_signHybrid
ECDSA + ML-DSA-65 hybrid sign (3,375B)
qs_signPQCOnly
ML-DSA-65 only signature (3,310B)
qs_verify
Verify PQC signature component
qs_exportPublicKey
Export public key as hex
Install via npm or connect programmatically:
npm i @qshield-js/snap
// Connect from your dApp
const snapId = 'npm:@qshield-js/snap';
await window.ethereum.request({
method: 'wallet_requestSnaps',
params: { [snapId]: {} }
});
// Call Snap RPC
const result = await window.ethereum.request({
method: 'wallet_invokeSnap',
params: {
snapId,
request: { method: 'qs_generateKeyPair' }
}
});