Skip to content
QuantascanAlpha

One-time signatures and OTS keys

Why XMSS keys can only be used once, what the OTS index is, and what it means for QRL Legacy wallets.

5 min readUpdated 2026-06-20

On this page

The single most distinctive — and most misunderstood — property of QRL Legacy signatures is that each signing key can be used only once. This comes from the one-time signature building block inside XMSS. Here's what it means in practice.

What "one-time" really means

A one-time signature (OTS) scheme is secure only if a given key signs exactly one message. The mechanism (in XMSS, a scheme called W-OTS+) works by revealing parts of a set of secret values to prove a message. Sign once and you reveal a safe portion. Sign a second message with the same key and you reveal too much — enough that an attacker could potentially forge signatures for that key.

A single one-time key would obviously be useless for a spendable wallet. XMSS solves this by giving you many one-time keys, organised under one address via a Merkle tree, and using a fresh one for each signature.

The OTS index

To use a fresh key each time, the wallet has to remember which keys it has already spent. That counter is the OTS index. Each signature advances it by one.

Because the wallet must carry this state forward, XMSS is described as a stateful signature scheme — and the OTS index is that state. It's the price hash-based signatures pay for needing no number-theoretic assumptions.

How many signatures do I get?

The number of one-time keys — and therefore the number of times an address can ever sign — is fixed when the wallet is created, by the tree height. A height-h tree provides 2^h signatures: for example a height-10 tree allows 1,024 signatures, height-16 allows 65,536. Larger trees allow more signatures but take longer to generate.

The practical risk: stale backups

For day-to-day use, a good QRL Legacy wallet tracks the OTS index for you, so you never reuse a key by accident. The realistic danger is restoring an old backup that has fallen behind the real index — it might think a key is unused when it isn't. The safe habits are:

  • keep your wallet's index state current,
  • avoid importing the same seed into multiple wallets that sign independently, and
  • treat a restored backup with care if it might have signed since the backup was made.

Why QRL 2.0 dropped it

The OTS rule is a real ergonomic cost, and it's exactly why QRL 2.0 switched to ML-DSA-87, a stateless scheme with no index and no reuse limit — at the cost of larger signatures. Two valid answers to the same quantum-resistance goal, with different trade-offs.

Where to go next

FAQ about One-time signatures and OTS keys

Common questions about this page
What is a one-time signature?
A one-time signature (OTS) is a signing key that is only secure if used exactly once. XMSS, used by QRL Legacy, is built from many one-time keys, so each transaction consumes a fresh one.
What is the OTS index?
It's the counter a QRL Legacy wallet keeps to track which one-time keys it has already used, so it never reuses one. Because the wallet must remember this state, XMSS is called a 'stateful' signature scheme.
What happens if I reuse an OTS key?
Reusing a one-time key leaks information that can weaken or break the signature's security for that key. QRL Legacy wallets manage the index to prevent this; the main risk is restoring an out-of-date backup that has lost track of used keys.
Does QRL 2.0 have OTS keys?
No. QRL 2.0 uses ML-DSA-87, which is stateless — there are no one-time keys and no index to track. The OTS concept is specific to XMSS on QRL Legacy.