Skip to content

πŸ‘» REALITY: ML-DSA-65 and Xray compatibility

REALITY is aligned with current Xray-core. The implementation comes from MetaCubeX/mihomo#2983.

  • ML-DSA-65. Verification of the post-quantum signature on the REALITY certificate, as in Xray. The client sets the public key mldsa65-verify, the server sets mldsa65-seed.
  • ML-KEM as in Xray. REALITY always keeps the fingerprint of the selected browser, including X25519MLKEM768. The support-x25519mlkem768 option is no longer needed and is ignored. For older servers, set an older fingerprint explicitly, for example chrome120.
  • New client options (named as in Xray):
    • password: alias of public-key;
    • spider-x;
    • show;
    • master-key-log.
  • New server options:
    • target: alias of dest;
    • type;
    • xver;
    • min-client-ver / max-client-ver: client version range (x.y.z). min-client-ver defaults to 26.3.27 and cannot be set lower, so a REALITY server on Prizrak-Core rejects clients that report an older Xray version;
    • mldsa65-seed;
    • show;
    • master-key-log.
proxies:
- name: vless-reality
type: vless
# ...
client-fingerprint: chrome
reality-opts:
public-key: <X25519 public key>
short-id: <short id>
mldsa65-verify: <ML-DSA-65 public key, base64url> # optional

To add mldsa65-verify for Remnawave subscription users, use the Remnawave host mapper; see REALITY ML-DSA-65 on the Remnawave integration page.