Scheme Registry
Each PQ signature scheme is registered in a compile-time table with a unique
1-byte prefix (0x07–0x0B) prepended to its serialized public key. Consensus script
verification is gated by three flags: SCRIPT_VERIFY_PQ_STRICT (bit 13),
SCRIPT_VERIFY_WITNESS_V1_512 (bit 14), and SCRIPT_VERIFY_SHA512 (bit 15).
This page is the canonical scheme/prefix registry. It is not a cryptographic primer; use Falcon and ML-DSA for scheme-level explanation.
Prefix table
| Prefix | Decimal | Scheme | Mainnet status | Activation rule |
|---|---|---|---|---|
0x07 | 7 | Falcon-512 | Live | Allowed before and after AuxPoW. |
0x08 | 8 | Falcon-1024 | Built, not active | Allowed at and after AuxPoW activation. |
0x09 | 9 | ML-DSA-44 | Built, not active | Allowed at and after AuxPoW activation. |
0x0A | 10 | ML-DSA-65 | Built, not active | Allowed at and after AuxPoW activation. |
0x0B | 11 | ML-DSA-87 | Built, not active | Allowed at and after AuxPoW activation. |
Testnet allows all known schemes from block 1000 onward. Regtest allows all known schemes from genesis.
On-wire rule
Serialized PQ public keys carry a one-byte scheme prefix before scheme-specific
public key bytes. The prefix selects the verification implementation and is
also used by PQHD as the scheme' derivation element.
Unknown production prefixes are invalid. Prefixes 0xF0 through 0xFF are
reserved for experimental use in code and must not be treated as mainnet
consensus schemes.
Height gate
The scheme allowance rule is:
if height < nAuxpowStartHeight:
only Falcon-512 is allowed
else:
all known schemes are allowedOn mainnet, nAuxpowStartHeight is currently disabled, so Falcon-1024 and
ML-DSA are implemented but not active on mainnet. For the current network table,
see Activation Status.
Consensus flags
| Flag | Bit | Activation | Effect |
|---|---|---|---|
SCRIPT_VERIFY_PQ_STRICT | 13 | AuxPoW height | Rejects legacy Falcon-512 signature format and enforces strict post-AuxPoW verification. |
SCRIPT_VERIFY_WITNESS_V1_512 | 14 | AuxPoW height | Enables witness v1 64-byte script-hash validation. |
SCRIPT_VERIFY_SHA512 | 15 | AuxPoW height | Enables OP_SHA512. |
Verification path
EvalScript() → EvalChecksig() → CheckPostQuantumSignature()
→ VerifyPostQuantumSignature() → CPubKey::Verify() → pq::VerifyPrefixed()Wallet policy
PQHD wallet policy can choose default receive and change schemes, but wallet policy does not override consensus activation. A wallet must not create mainnet outputs using schemes or output types that are not active at the target height.
See also: Activation Status, PQHD Wallet, Signature Encoding, Verification Modes.