DACS-3 §8.3.3 envelope — verbatim. Transport-level fields may wrap this but MUST NOT change the bytes that the signature covers.

interface ChannelMessage {
    body: unknown;
    channelId: string;
    refs?: {
        repliesTo?: number;
    };
    sender: `${string}:${string}`;
    sentAt: number;
    sequence: number;
    signature: ChannelMessageSignature;
    type: ChannelMessageType;
}

Properties

body: unknown
channelId: string
refs?: {
    repliesTo?: number;
}
sender: `${string}:${string}`
sentAt: number
sequence: number