Skip to content
Meshline
SDK 1.1.0 · TypeView source on GitHub

Developer guide · API index

Members on this page

Meshline.Sdk

Meshline.Models.Protocol

MessageEnvelope Class

Contains a signed encrypted account message with sender, recipient, and creation time.

public sealed record MessageEnvelope : Meshline.Models.Protocol.TypedProtocolModel, System.IEquatable<Meshline.Models.Protocol.MessageEnvelope>

Inheritance System.Object → ProtocolModel → TypedProtocolModel → MessageEnvelope

Implements System.IEquatable<MessageEnvelope>

Constructors

MessageEnvelope() Constructor

Contains a signed encrypted account message with sender, recipient, and creation time.

public MessageEnvelope();

Properties

MessageEnvelope.CreatedAt Property

The creation time, in Unix seconds.

public long CreatedAt { get; init; }

Property Value

System.Int64

MessageEnvelope.DeviceSignature Property

The device signature over the model's device signing input.

public System.Collections.Immutable.ImmutableArray<byte> DeviceSignature { get; init; }

Property Value

System.Collections.Immutable.ImmutableArray<System.Byte>

MessageEnvelope.From Property

The CAIP-10 account identifier of the message sender.

public string From { get; init; }

Property Value

System.String

MessageEnvelope.FromDeviceId Property

The identifier of the device that signed the message.

public string FromDeviceId { get; init; }

Property Value

System.String

MessageEnvelope.MessageId Property

The message's canonical msg_ identifier.

public string MessageId { get; init; }

Property Value

System.String

MessageEnvelope.Payload Property

The encrypted account-message content.

public Meshline.Models.Protocol.EncryptedPayload Payload { get; init; }

Property Value

EncryptedPayload

MessageEnvelope.To Property

The CAIP-10 account identifier of the message recipient.

public string To { get; init; }

Property Value

System.String

Methods

MessageEnvelope.GetSigningInput(NetworkContext) Method

Builds the canonical, network-bound bytes used to sign or verify this document.

public byte[] GetSigningInput(Meshline.Models.NetworkContext context);

Parameters

context NetworkContext

The network context bound into identifiers or signing input.

Returns

System.Byte[]
The canonical UTF-8 signing input bound to the network context, with the applicable signature fields omitted.

Exceptions

System.Text.Json.JsonException
The signing payload cannot be represented as canonical protocol JSON, contains conflicting extension fields, or already contains a root $context property.

MessageEnvelope.Validate(NetworkContext) Method

Validates message and account identifiers, creation time, encrypted payload, size, and signature length.

public override Meshline.Validation.ProtocolViolation? Validate(Meshline.Models.NetworkContext? context=null);

Parameters

context NetworkContext

The optional network context passed to nested validation when needed; field-only validation may ignore it.

Returns

ProtocolViolation
The first detected protocol violation, or null if the implemented checks pass.

Remarks

These checks do not verify the external device signature or establish current signer authorization. Verify the signature and the applicable device-state or resource authorization evidence separately.