Post-quantum signatures for Solana

Your keys are already recorded.

Every Ed25519 public key you have ever spent from is sitting in a public ledger, waiting for a machine that can factor it. The Quantum Resistant Solana Protocol is a lattice-signature layer that lets a Solana account retire its Ed25519 authority without changing its address, its programs, or its 400 ms slot.

Read the design

01 — The threat

Shor's algorithm does not need to exist yet to cost you money

Ed25519 security rests on the discrete logarithm problem over Curve25519. A cryptographically relevant quantum computer running Shor's algorithm solves that problem in polynomial time — a public key becomes a private key. Solana reveals the public key the first time an account signs anything, so the exposure window opened the day the account was funded.

Harvest now, decrypt later is the operative risk. Chain history is archived by anyone who wants it. A key that is safe today is retroactively unsafe the moment the hardware lands, and the ledger entries proving ownership are already in someone's cold storage.

02 — The hard constraint

Post-quantum signatures do not fit in a Solana packet

A Solana transaction is capped at 1232 bytes — the IPv6 MTU of 1280 minus 48 bytes of headers. That number is the whole engineering problem. NIST's standardized lattice signatures are measured in kilobytes.

Ed25519 (today)64 B
Falcon-512 (FN-DSA)666 B
ML-DSA-44 (FIPS 204)2420 B
ML-DSA-65 (FIPS 204)3309 B
SLH-DSA-128s (FIPS 205)7856 B
1232 B packet ceiling

Signature size only, drawn to scale against the 7856-byte maximum. Everything right of the dashed line cannot be submitted as a single transaction. Falcon-512 clears it; ML-DSA does not.

03 — How QRSP works

Split the signature from the transaction

  1. Commit a lattice key on-chain

    A PDA derived from your existing account stores an ML-DSA-65 public key and a Falcon-512 fallback. The account keeps its address. Nothing downstream re-derives.

  2. Sign off-chain, post the digest

    The lattice signature is produced client-side and streamed to a verifier program across three chunked instructions, each well under 1232 bytes, keyed by a 32-byte session nonce.

  3. Verify, then collapse

    Verification runs in a compute-budget-extended instruction and writes a single ratchet bit. Downstream CPI calls see an ordinary signed authority — no program on the other side needs to know.

  4. Burn the curve authority

    Once the ratchet is set, the Ed25519 authority on that account is rejected permanently. Harvested history stops being useful at that slot.

PRIMITIVE

ML-DSA-65

Module-lattice, FIPS 204. NIST security category 3. Deterministic signing with a hedged nonce path for low-entropy signers.

FALLBACK

Falcon-512

666 bytes fits a single packet. Used for high-frequency accounts where chunking costs more than the smaller security margin.

TRANSPORT

Chunked verify

Three instructions, one session nonce, 60-slot expiry. Partial sessions are rent-reclaimable by anyone.

MIGRATION

Hybrid window

Both authorities valid until you set the ratchet. Nothing is forced, nothing is retroactive, and the switch is one transaction.

 qrsp-cli — devnet

04 — Design targets

What the verifier is budgeted to cost

0CU per verify
0Instructions
0Median finality
0Keys ratcheted

These are design targets for the verifier, not measurements of a deployed build — nothing is running on devnet yet. The 187,400 CU figure requires a ComputeBudgetInstruction::SetComputeUnitLimit bump; the default 200,000 limit leaves almost no headroom for your own logic in the same transaction.

05 — Token

Contract address

The QRSP token is a community token on Solana. It is not a security, it does not represent equity, and holding it grants no claim on the protocol described above.

3aFV8hjHRKycszoYG8hmE2z4Ne7PBf3KVr513Jq5pump

Verify this address against a source you trust before sending anything. Addresses shown on any website, this one included, can be altered.