The Marmot account identity proof, carried as a custom MLS LeafNode extension
(marmot.account-identity-proof.v1).
An MLS BasicCredential names a Marmot (Nostr) account, but the MLS signature
key is a separate per-leaf key. This extension binds the two by having the
Nostr account key sign — with BIP-340 Schnorr — a digest over the account
pubkey and the leaf signature key, so account-scoped policy (e.g. admin
authorization) can trust the credential identity.
The Marmot account identity proof, carried as a custom MLS LeafNode extension (
marmot.account-identity-proof.v1).An MLS BasicCredential names a Marmot (Nostr) account, but the MLS signature key is a separate per-leaf key. This extension binds the two by having the Nostr account key sign — with BIP-340 Schnorr — a digest over the account pubkey and the leaf signature key, so account-scoped policy (e.g. admin authorization) can trust the credential identity.
Wire (
encode_proof, fixed-width, big-endian): uint8 version; // 1 uint16 ciphersuite; uint16 signature_scheme; opaque account_identity[32]; // x-only Nostr pubkey, no length prefix uint16 mls_signature_public_key_len; opaque mls_signature_public_key[len]; opaque signature[64]; // BIP-340 Schnorr