General and node management101 — Groupcast

Matter Cluster 101 — Groupcast

Matter Cluster 101 (0x0065) Groupcast: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 101 — Groupcast Cluster

Matter Cluster 101, also written as 0x0065, is the Groupcast Cluster. The Groupcast Cluster defines a unified, simpler, and more scalable mechanism for configuring, managing, and using groups in Matter. It is designed to replace the legacy Groups cluster, addressing long-standing limitations that have made group configuration complex and inconsistently supported across devices and ecosystems. The Groupcast Cluster consolidates group-related functionality that was previously distributed across multiple clusters into a single, coherent model for membership, addressing, key management, and ACL permissions.

Cluster Identity

FieldValue
Cluster ID decimal101
Cluster ID hex0x0065
Cluster nameGroupcast
Cluster revision (Matter 1.6.1)1
Roleutility
ScopeNode
PICS codeGC
Typical endpoint0

Revision history

RevisionChange
1Initial release, replacing functionality previously in Groups and Group Key Management clusters and addressing issues with application of those clusters (TCR 11433)

Shadow Path Format

Cluster 101 values in the device shadow use this format:

endpoint_id / 101 / attribute_id

Example:

{
  "0/101/1": 10
}
PartMeaning
0Endpoint ID
101Groupcast cluster
1MaxMembershipCount attribute

Cluster 101 Features

The FeatureMap attribute (0/101/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.

BitCodeFeatureConformanceMeaning
0LNListenerOSupports joining a multicast group of nodes as a listener
1SDSenderOSupports sending multicast message to a targeted group of nodes
2PGAPerGroupOSupports PerGroup multicast addresses

Example: FeatureMap = 0 means no optional feature is enabled; 7 means every feature listed above is enabled.


Data Types

GroupcastTestResultEnum

ValueNameConformanceMeaning
0SuccessMThere was no failure
1GeneralErrorMOther error during processing not otherwise covered
2MessageReplayMMessage counter was <= counter from last received
3FailedAuthMMessage authentication failed
4NoAvailableKeyMNo key was found to process the message
5SendFailureMIssue with attempting to send a multicast IPv6 message

GroupcastTestingEnum

See the GroupcastTesting command for a description of these operations.

ValueNameConformanceMeaning
0DisableTestingMDisable all test event generation
1EnableListenerTestingLNEnable Listener test event generation
2EnableSenderTestingSDEnable Sender test event generation

MulticastAddrPolicyEnum

ValueNameConformanceMeaning
0IanaAddrMIndicates group uses the IANA-assigned multicast address (default)
1PerGroupPGAGroup uses multicast address scoped to Fabric ID and Group ID

MembershipStruct (struct) — fabric-scoped

FieldNameTypeConformanceConstraintMeaning
0GroupIDgroup-idMmin 1—
1Endpointslist of endpoint-noLNmax 255 entriesIndicates a list of endpoint numbers that are members of the multicast group.
2KeySetIDuint16Mmin 1—
3HasAuxiliaryACLboolLN——
4McastAddrPolicyMulticastAddrPolicyEnumM—Indicates how the IPv6 Multicast Address is constructed for this group.

Cluster 101 Attributes

Cluster 101 defines 5 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000Membershiplist of MembershipStructMR (read: view, fabric-scoped)persisted—
10x0001MaxMembershipCountuint16MR (read: view)——
20x0002MaxMcastAddrCountuint16MR (read: view)——
30x0003UsedMcastAddrCountuint16MR (read: view)——
40x0004FabricUnderTestfabric-idxMR (read: view)——

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 1 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — Membership

Path example:

0/101/0

Indicates the list of groups memberships currently active on the node. Each entry specifies the group ID and the list of the endpoints that participate in that group, as well as policy for that group. For any single fabric, the server must limit the total number of GroupIDs used across all entries in the Membership attribute to no more than half (rounded down) of the MaxMembershipCount value. If processing a command would cause this per-fabric limit to be exceeded, then the resource exhaustion behavior of the associated command must apply.

PropertyValue
Typelist of MembershipStruct
ConformanceM
AccessR (read: view, fabric-scoped)
Qualitiespersisted
Constraintdesc

Each entry is a MembershipStruct (see Data Types).

Example:

{
  "0/101/0": []
}

Attribute 1 / 0x0001 — MaxMembershipCount

Path example:

0/101/1

Indicates the maximum number of Groups which can be joined and appear in entries of the Membership attribute. This attribute does not specify the maximum number of list entries in the Membership attribute list, but rather the maximum number of different GroupID values which can appear across all entries of the list.

PropertyValue
Typeuint16
ConformanceM
AccessR (read: view)
Constraintmin 10

Example:

{
  "0/101/1": 10
}

Attribute 2 / 0x0002 — MaxMcastAddrCount

Path example:

0/101/2

Indicates the maximum number of unique multicast addresses the node can support. The value of this attribute is at least 1, to support the IANA Assigned IPv6 Multicast Address. When the PerGroup feature is supported, this attribute should be equal to MaxMembershipCount. However, the value may be less than MaxMembershipCount.

PropertyValue
Typeuint16
ConformanceM
AccessR (read: view)
Constraintmin 1

Example:

{
  "0/101/2": 1
}

Attribute 3 / 0x0003 — UsedMcastAddrCount

Path example:

0/101/3

Indicates the number of unique multicast addresses currently in use by the Groupcast cluster. This count includes the IANA Assigned IPv6 Multicast Address if at least one group is configured to use the IanaAddr policy. This count includes one unique multicast address for each group configured to use the PerGroup policy. The value of this attribute must NOT exceed MaxMcastAddrCount.

PropertyValue
Typeuint16
ConformanceM
AccessR (read: view)

Example:

{
  "0/101/3": 1
}

Attribute 4 / 0x0004 — FabricUnderTest

Path example:

0/101/4

Indicates the FabricIndex of the fabric currently testing the Groupcast feature with the GroupcastTesting command. The last accessing fabric to have invoked a successful TestGroupcast command that caused testing mode to be engaged is the value indicated. Otherwise, if Groupcast testing is currently disabled, this attribute has a value of zero, which is the invalid FabricIndex value. This attribute is set to zero when the server initializes.

PropertyValue
Typefabric-idx
ConformanceM
AccessR (read: view)

Example:

{
  "0/101/4": 1
}

Cluster 101 Commands

Cluster 101 has 5 client-to-server commands and 1 response.

IDHexCommandDirectionConformanceResponseDescription
00x00JoinGroupclient → serverMstatusThis command is used to instruct the server to join a multicast group.
10x01LeaveGroupclient → serverMLeaveGroupResponseThis command must allow a maintainer to request that the server withdraws itself or specific endpoints from a specific group or from all groups of this client's fabric.
20x02LeaveGroupResponseserver → clientM—This command must allow the server to inform the client about the result of the LeaveGroup command.
30x03UpdateGroupKeyclient → serverMstatusThis command must allow a fabric administrator to update the OperationalGroupKey associated with the existing group identified by GroupID, which is already joined.
40x04ConfigureAuxiliaryACLclient → serverLNstatus—
50x05GroupcastTestingclient → serverMstatusThis command must allow an Administrator to configure test modes that allow validation of Groupcast communication.

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 101 / 65529
{
  "0/101/65529": [
    0,
    1,
    3,
    4,
    5
  ]
}

Before sending a Cluster 101 command, check that the command ID exists in endpoint/101/65529. Optional commands are only present when the matching feature is set in FeatureMap.


Bridge Command Payload Format

The bridge accepts Matter commands in this structure:

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "JoinGroup",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 101, always use "cluster_id": 101. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.


Command: JoinGroup

Purpose

This command is used to instruct the server to join a multicast group. It provides a comprehensive way to add all information required to create a new group in one command. This command is used to create a new GroupID or to add specified endpoints to an existing GroupID. This command may also be used to change the OperationalGroupKey associated with an existing GroupID, but if this is the only operation desired, the UpdateGroupKey command should be used instead.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameJoinGroup
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idMmin 1—
1Endpointsendpointslist of endpoint-noMdescIndicates the list of endpoints that must receive this multicast group's messages. When joining a group as a Sender only, this field is empty.
2KeySetIDkeySetIDuint16Mmin 1—
3KeykeyoctstrOallowed: 16Indicates the value used to derive the OperationalGroupKey. This key is new for the group, with a unique KeySetID that does not exist on the node yet.
4UseAuxiliaryACLuseAuxiliaryACLbool[LN]——
5ReplaceEndpointsreplaceEndpointsbool[LN]——
6McastAddrPolicymcastAddrPolicyMulticastAddrPolicyEnumO—Indicates the IPv6 Multicast Address that is used by the group. If omitted, the group must use the IANA-assigned Multicast Address.

McastAddrPolicy values (MulticastAddrPolicyEnum): 0 = IanaAddr, 1 = PerGroup

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "JoinGroup",
    "payload": {
      "groupID": 1,
      "endpoints": [],
      "keySetID": 1
    }
  }
}

Command: LeaveGroup

Purpose

This command must allow a maintainer to request that the server withdraws itself or specific endpoints from a specific group or from all groups of this client's fabric. This command has the following data fields subject to the listed conformance.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameLeaveGroup
Directionclient → server
ConformanceM
ResponseLeaveGroupResponse
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1Endpointsendpointslist of endpoint-noO1 to 20 entriesIndicates a list of endpoints that must leave the group identified by the GroupID field. See 4.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "LeaveGroup",
    "payload": {
      "groupID": 1
    }
  }
}

The device answers with LeaveGroupResponse (see below).


Command: LeaveGroupResponse

Purpose

This command must allow the server to inform the client about the result of the LeaveGroup command. This command has the following data fields subject to the listed conformance.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameLeaveGroupResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1Endpointsendpointslist of endpoint-noMmax 20 entriesIndicates a list of endpoints that were removed from the group identified by the GroupID field. Endpoints listed in the Endpoints field of the LeaveGroup command that were not members of the affected group is excluded from this response.

Command: UpdateGroupKey

Purpose

This command must allow a fabric administrator to update the OperationalGroupKey associated with the existing group identified by GroupID, which is already joined. This command is used following the rules defined in Groupcast Key Management section. This command has the following data fields subject to the listed conformance.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameUpdateGroupKey
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: manage, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idMmin 1—
1KeySetIDkeySetIDuint16Mmin 1—
2KeykeyoctstrOallowed: 16Indicates the 128-bit InputKey used to derive the OperationalGroupKey for the specified GroupID (per Operational Group Key Derivation).

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "UpdateGroupKey",
    "payload": {
      "groupID": 1,
      "keySetID": 1
    }
  }
}

Command: ConfigureAuxiliaryACL

Purpose

ConfigureAuxiliaryACL is a client-to-server command of the Groupcast cluster.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameConfigureAuxiliaryACL
Directionclient → server
ConformanceLN
Responsestatus
Access(invoke: admin, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1UseAuxiliaryACLuseAuxiliaryACLboolM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "ConfigureAuxiliaryACL",
    "payload": {
      "groupID": 1,
      "useAuxiliaryACL": true
    }
  }
}

Command: GroupcastTesting

Purpose

This command must allow an Administrator to configure test modes that allow validation of Groupcast communication. This command has the following data fields subject to the listed conformance. Note: The behavior of the command when the TestOperation is EnableSenderTesting is provisional.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameGroupcastTesting
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin, fabric-scoped)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TestOperationtestOperationGroupcastTestingEnumM—This field identifies the type of TestOperation to execute. See Effect on Receipt.
1DurationSecondsdurationSecondsuint16O10 to 1200Indicates the time duration in seconds for the test operation until all testing operations reverts to a disabled state. This field is ignored when the TestOperation field has a value of DisableTesting.

TestOperation values (GroupcastTestingEnum): 0 = DisableTesting, 1 = EnableListenerTesting, 2 = EnableSenderTesting

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 101,
    "command_name": "GroupcastTesting",
    "payload": {
      "testOperation": 0
    }
  }
}

Cluster 101 Events

IDHexEventPriorityConformanceDescription
00x00GroupcastTestinginfoMThis event is generated during Groupcast testing processing after invocation of the GroupcastTesting command, under the conditions stated in that command's Effect on Receipt section.

Event 0 — GroupcastTesting

This event is generated during Groupcast testing processing after invocation of the GroupcastTesting command, under the conditions stated in that command's Effect on Receipt section. Some of the fields may be present or absent depending of the test mode involved. This event contains the following fields:

IDFieldTypeConformanceMeaning
0SourceIpAddressipv6adrOThis field, if present, is set to the source IPv6 address obtained from the UDP datagram of the groupcast message.
1DestinationIpAddressipv6adrOThis field, if present, is set to the destination IPv6 group address obtained from the UDP datagram of a groupcast message.
2GroupIDgroup-idO—
3EndpointIDendpoint-idO—
4ClusterIDcluster-idO—
5ElementIDuint32O—
6AccessAllowedboolOThis field, if present, indicates whether the Groupcast sender was allowed to invoke the command by Access Control, in this Node. The value is set to true if the request was allowed, and false otherwise.
7GroupcastTestResultGroupcastTestResultEnumMIndicates the outcome of the groupcast operation or the specific error encountered. The value is one of the values defined in GroupcastTestResultEnum.

SmartphoneKey Notes

  • Cluster 101 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
  • Shadow paths follow endpoint/101/attribute; attribute values that the device reports as unreadable are written as n/a.
  • Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.