Skip to main content

QRL Address Scheme

QRL uses an extensible stateful asymmetrical hypertree signature scheme composed of chained XMSS trees.

This has the dual benefit of utilizing a validated signature scheme and allowing generation of ledger addresses with the ability to sign transactions avoiding a lengthy pre-computation delay seen with giant XMSS constructions. W-OTS+ is the chosen hash-based one-time signature in the scheme for both security and performance reasons.

Public Address Structure

A QRL address is designed to be extensible and supports a wide range of formats.

The first three bytes of any address (descriptor) encode information to describe the hash function, signature scheme, address format, and additional parameters.

A typical account address is represented as follows:


QRL Addresses are structured in the following way:

DESC0 .. 23Address Descriptor
DATA3 .. N??N will depend on the address format

Using sha256 2X, a QRL address is composed of 39 bytes. This is the internal format used by any API or module in the project.


At the moment, only one address format is utilized, sha256 2X, however we support crypto-agility and the ability to later move to new hash schemes as the security landscape changes.

For representational purposes (i.e. user interface, debugging, logs), it is possible that the address is represented as a hex-string prefixed with Q (79 hexadecimal characters). This is appropriate for user related purposes but will be rejected by the API

DESC0 .. 23Hash Function
HASH3 .. 3532SHA2 256(DESC+PK)
VERH36 .. 404SHA2 256(DESC+HASH) (only last 4 bytes)

In pythonic pseudocode this is represented as follows:

Q+DESC[:3]+HASH[:32]+VERH[:4]Q + DESC[: 3] + HASH[: 32] + V ERH[: 4]

Address Descriptor

HF0 .. 34Hash Function
SIG4 .. 74Signature Scheme
P18 .. 114Parameters 1 (ie. height, etc.)
P212 .. 154Address Format
P316 .. 238Parameters 2

In the case of using XMSS, the parameters are used as follows:

HF0 .. 34SHA2-256, SHAKE128, SHAKE256
SIG4 .. 74XMSS
P18 .. 114XMSS Height / 2
AF/ P2 12.. 15 4 Address Format
P316 .. 238Not used

SIG - Signature Type

1 .. 15Reserved - Future expansion

HF - Hash Function

0SHA2 256
1SHAKE 128
2SHAKE 256
3 .. 15Reserved - Future expansion

AF - Address Format

0SHA256 2X
1 .. 15Reserved - Future expansion