encrypted edit payload (encPayload + encIv from SecretEncryptedMessage)
info about the original message required for decryption
decoded outer Message whose protocolMessage.editedMessage
carries the new content (extendedTextMessage / conversation / etc.)
Decrypt a
secretEncryptedMessagecarrying aMESSAGE_EDITpayload.WhatsApp started wrapping message edits in an E2EE envelope (May 2026). The new content is encrypted with a key derived from the original message's
messageContextInfo.messageSecretusing HKDF-SHA256AES-256-GCM, same family as polls and event responses but with different constants (validated against live WhatsApp Android traffic):
info = msgId || origSenderJid || editorJid || "Message Edit" aad = (empty) <-- differs from Poll Vote / Event Response key = HKDF-SHA256(salt=zeros, ikm=messageSecret, info, L=32)
The decrypted plaintext is a regular
anywhoseprotocolMessage.editedMessagefield holds the new content — same shape as the legacyprotocolMessage.editedMessageedit path, so consumers can treat the result identically.