Overview
LibXMTP groups support two types of metadata:- GroupMetadata - Immutable metadata set at group creation
- GroupMutableMetadata - Mutable metadata that can be updated based on permissions
GroupMetadataOptions
Options for configuring group metadata at creation time.Fields
Defaults
If not specified, fields use these defaults (fromxmtp_configuration):
name:DEFAULT_GROUP_NAMEdescription:DEFAULT_GROUP_DESCRIPTIONimage_url_square:DEFAULT_GROUP_IMAGE_URL_SQUAREapp_data: Empty string
Implementation
DMMetadataOptions
Options for configuring DM (direct message) metadata.GroupMetadata (Immutable)
Immutable metadata created at group creation time.Fields
Methods
new
Conversions
Helper Function
GroupMutableMetadata
Mutable metadata that can be updated according to permission policies.Fields
Methods
new
new_default
- Creator is added as super admin
- Attributes populated from
opts - Commit log signer stored if provided
new_dm_default
- No admins or super admins (not needed for DMs)
- Minimal attributes
supported_fields
GroupNameDescriptionGroupImageUrlSquareMessageDisappearFromNSMessageDisappearInNSMinimumSupportedProtocolVersionAppData
is_admin
is_super_admin
commit_log_signer
None if field is not present or hex decoding fails.
Conversions
Helper Functions
find_mutable_metadata_extension
extract_group_mutable_metadata
MetadataField
Enum representing supported metadata fields.Methods
as_str
GroupName→"group_name"Description→"description"GroupImageUrlSquare→"group_image_url_square"MessageDisappearFromNS→"message_disappear_from_ns"MessageDisappearInNS→"message_disappear_in_ns"MinimumSupportedProtocolVersion→"minimum_supported_protocol_version"CommitLogSigner→"_commit_log_signer"(super admin prefix)AppData→"app_data"
CommitLogSigner uses the _ prefix to make it super-admin-only.
Display Implementation
MessageDisappearingSettings
Configuration for disappearing messages.Fields
Methods
new
is_enabled
true if both from_ns and in_ns are greater than 0.
Default Implementation
DmMembers
Represents the two members of a DM conversation.Methods
as_ref
Display Implementation
DmMembers { member_one_inbox_id: "Alice", member_two_inbox_id: "Bob" } becomes "dm:alice:bob"
Conversions
Error Handling
GroupMetadataError
GroupMutableMetadataError
Usage Examples
Creating a Group with Custom Metadata
Extracting Metadata from a Group
Checking Admin Status
Constants
Defined incrates/xmtp_mls/src/groups/mod.rs:
Source References
- GroupMetadataOptions:
crates/xmtp_mls_common/src/group.rs:3 - DMMetadataOptions:
crates/xmtp_mls_common/src/group.rs:12 - GroupMetadata:
crates/xmtp_mls_common/src/group_metadata.rs:36 - GroupMutableMetadata:
crates/xmtp_mls_common/src/group_mutable_metadata.rs:99 - MetadataField:
crates/xmtp_mls_common/src/group_mutable_metadata.rs:42 - MessageDisappearingSettings:
crates/xmtp_mls_common/src/group_mutable_metadata.rs:83 - DmMembers:
crates/xmtp_mls_common/src/group_metadata.rs:115
