BasicInformation Cluster

Cluster ID: 0x0028  |  Endpoint: Only on Endpoint 0 (Root Node)

BasicInformation provides core device metadata — including vendor information, product identification, hardware/software versions, serial numbers, product appearance, and protocol capabilities. This Cluster is mandatory for every Matter device and only exists on Endpoint 0. Most of its attributes are read-only; only NodeLabel and LocalConfigDisabled are writable.

Endpoint 0 Only

Unlike most functional Clusters, BasicInformation can only appear on Endpoint 0 (Root Node Endpoint). Reading this Cluster on Endpoint 1 will return an UNSUPPORTED_CLUSTER error. Always specify endpointId = 0 when reading device information in code.

Reading a device's identity after commissioning

The vendor, model, firmware version and serial number an app shows all come from this cluster. Together with Descriptor (device types and cluster lists) it is everything you need to identify a device after commissioning. See Concepts · Reading a device's capabilities. To see real data, open the JSON Parser and pick the "Raw device data" sample.

Attribute Overview

BasicInformation has 23 attributes organized into five groups. Click an attribute ID to jump to its detailed description.

ID Name Type Group Description
0x00 DataModelRevision uint16 Vendor Information Data Model revision number
0x01 VendorName string Vendor Information Vendor name
0x02 VendorID vendor-id Vendor Information Vendor ID (assigned by CSA)
0x03 ProductName string Vendor Information Product name
0x04 ProductID uint16 Vendor Information Product ID (vendor-defined)
0x05 NodeLabel string Product Information User-defined device name (writable)
0x06 Location string Product Information ISO 3166-1 alpha-2 country code
0x0B ManufacturingDate string Product Information Manufacturing date (ISO 8601 format)
0x0C PartNumber string Product Information Part number
0x0D ProductURL string Product Information Product page URL
0x0E ProductLabel string Product Information Product label (user-facing short name)
0x0F SerialNumber string Product Information Serial number
0x12 UniqueID string Product Information Device unique identifier
0x07 HardwareVersion uint16 Version Information Hardware version number
0x08 HardwareVersionString string Version Information Hardware version string
0x09 SoftwareVersion uint32 Version Information Software version number (used for OTA comparison)
0x0A SoftwareVersionString string Version Information Software version string (user-facing)
0x10 LocalConfigDisabled bool Device Status Whether local configuration is disabled (writable)
0x11 Reachable bool Device Status Whether the device is reachable
0x13 CapabilityMinima struct Capabilities Device minimum capability declaration
0x14 ProductAppearance struct Capabilities Product appearance description (finish + color)
0x15 SpecificationVersion uint32 Capabilities Matter specification version implemented by device
0x16 MaxPathsPerInvoke uint16 Capabilities Maximum paths per single Invoke

Vendor Information (0x00 – 0x04)

Device vendor and product identifiers, assigned by CSA or set by the vendor. These attributes are fixed at manufacturing time and cannot be changed at runtime.

ID Name Type Description
0x00 DataModelRevision uint16 The Data Model revision implemented by the device. Used to determine which data model features the device supports
0x01 VendorName string Human-readable vendor name, max 32 characters. E.g. "Acme Corp", "Espressif"
0x02 VendorID vendor-id Vendor number assigned by CSA (Connectivity Standards Alliance). Test VIDs are 0xFFF1–0xFFF4
0x03 ProductName string Human-readable product name, max 32 characters. E.g. "Smart Light", "Door Lock Pro"
0x04 ProductID uint16 Product number assigned by the vendor; combined with VendorID to uniquely identify a product
VendorID + ProductID Combination

The combination of VendorID and ProductID uniquely identifies a Matter product. During commissioning, the Commissioner (e.g. phone App) uses these two values to match the correct device driver and UI configuration. The DCL (Distributed Compliance Ledger) also uses this combination to query device certification information.

Product Information (0x05 – 0x06, 0x0B – 0x0F, 0x12)

Detailed product information — user labels, manufacturing date, serial numbers, etc. Most of these attributes are optional; actual devices may only implement a few of them.

ID Name Type Description
0x05 NodeLabel string User-defined device name, max 32 characters. Writable — App can modify via Write operation, e.g. rename to "Living Room Light"
0x06 Location string Device country/region, ISO 3166-1 alpha-2 format, e.g. "CN", "US". Fixed 2 characters
0x0B ManufacturingDate string Manufacturing date, ISO 8601 format, e.g. "2025-01-15". Optional attribute
0x0C PartNumber string Vendor's internal part number, max 32 characters. Optional attribute
0x0D ProductURL string Product page URL, max 256 characters. Optional. Directs users to product details or manuals
0x0E ProductLabel string User-facing product short name, max 64 characters. Usually shorter than ProductName, suitable for UI display
0x0F SerialNumber string Device serial number, max 32 characters. Unique per device
0x12 UniqueID string Device globally unique identifier, max 32 characters. Does not change even after factory reset; useful for device deduplication
NodeLabel Is the Only Commonly Used Writable Attribute

Among BasicInformation's 23 attributes, only NodeLabel and LocalConfigDisabled support Write operations. NodeLabel is the most commonly used — when users rename a device in the App, they are actually modifying this attribute. Write operations require ACL permission checks and Manage-level privilege by default.

Version Information (0x07 – 0x0A)

Device hardware and software version information. The OTA upgrade process relies on these version numbers to determine whether an update is needed.

ID Name Type Description
0x07 HardwareVersion uint16 Hardware version numeric code, vendor-defined. Used to distinguish different hardware batches
0x08 HardwareVersionString string Human-readable hardware version, 1–64 characters, e.g. "v1.0", "Rev B"
0x09 SoftwareVersion uint32 Firmware version numeric code. OTA Provider compares this value with the new firmware version to decide whether to push an update. Higher value = newer version
0x0A SoftwareVersionString string Human-readable software version, 1–64 characters, e.g. "v2.0.1". The version shown to users
Version Number vs Version String

Each version has two attributes: a numeric code (Version) and a string (VersionString). The numeric code is used for programmatic comparison (e.g. OTA version checks); the string is for UI display. Apps should use SoftwareVersionString when displaying firmware versions; compare SoftwareVersion numeric values when determining whether an upgrade is needed.

Device Status (0x10 – 0x11)

Describes the device's current operating status and configuration mode.

ID Name Type Description
0x10 LocalConfigDisabled bool Writable. When set to true, the device should prohibit configuration changes via physical buttons or other local methods. Default false
0x11 Reachable bool Whether the device is currently reachable. Especially important for Bridged devices — the Bridge uses this attribute to inform the Controller of sub-device online status. Directly connected devices are typically always true
Reachable and Bridged Devices

For devices directly connected to the Matter Fabric, Reachable essentially means "true as long as communication is possible". But for sub-devices connected via a Bridge (e.g. Zigbee light bulbs exposed through a Matter Bridge), Reachable reflects the connection status between the Bridge and the sub-device. When a sub-device goes offline, the Bridge sets Reachable to false and triggers the ReachableChanged event.

Capabilities (0x13 – 0x16)

Describes the protocol capabilities and product appearance supported by the device.

ID Name Type Description
0x13 CapabilityMinima struct Minimum protocol capabilities declared by the device (see struct description below)
0x14 ProductAppearance struct Physical appearance of the product: surface finish and primary color (see struct and enum descriptions below)
0x15 SpecificationVersion uint32 Matter specification version implemented by the device. Encoded as Major.Minor.Patch.Reserved, 8 bits each. E.g. 0x01010000 = Matter 1.1.0
0x16 MaxPathsPerInvoke uint16 Maximum number of Command paths allowed in a single Invoke Request. Minimum 1

CapabilityMinima Struct

Describes the device's minimum protocol processing capabilities. Controllers can adjust their interaction strategy accordingly.

Field Type Description
CaseSessionsPerFabric uint16 Maximum concurrent CASE Sessions per Fabric. Minimum 3
SubscriptionsPerFabric uint16 Maximum concurrent Subscriptions per Fabric. Minimum 3
Practical Significance of CapabilityMinima

If a Controller needs to establish multiple CASE Sessions with the same device (e.g. simultaneous OTA and control), it should first check CaseSessionsPerFabric to confirm the device supports it. The same applies to SubscriptionsPerFabric — if an App needs to subscribe to multiple attribute change notifications, ensure the total subscription count does not exceed the device's declared limit.

ProductAppearance Struct

Describes the product's physical appearance characteristics, used for displaying device icons or color schemes in the App.

Field Type Description
Finish ProductFinishEnum Product surface finish (see enum below)
PrimaryColor ColorEnum Product primary color (see enum below). Nullable — null when not applicable

ProductFinishEnum (Surface Finish)

0
Other Other
1
Matte Matte
2
Satin Satin
3
Polished Polished
4
Rugged Rugged (industrial)
5
Fabric Fabric

ColorEnum (Product Color)

0
Black Black
1
Navy Navy
2
Green Green
3
Teal Teal
4
Maroon Maroon
5
Purple Purple
6
Olive Olive
7
Gray Gray
8
Blue Blue
9
Lime Lime
10
Aqua Aqua
11
Red Red
12
Fuchsia Fuchsia
13
Yellow Yellow
14
White White
15
Nickel Nickel
16
Chrome Chrome
17
Brass Brass
18
Copper Copper
19
Silver Silver
20
Gold Gold

Command

Early versions of BasicInformation had one optional Command; in newer versions (this site checks against v1.6) the cluster has no commands at all:

ID Name Direction Required Description
0x00 MfgSpecificPing Removed in newer versions Client → Server Optional Vendor-specific Ping command for detecting device response. No parameters, no return value
MfgSpecificPing Was Removed in Newer Versions

This command only appeared in early definitions, was optional, and very few devices ever implemented it; newer Matter versions no longer include it. To check if a device is online, simply read any attribute (e.g. SoftwareVersion) — a successful read means the device is online.

Example Data

A typical Matter device's BasicInformation Cluster read result:

{
  // --- Vendor Information ---
  "0x0": 17,                   // DataModelRevision = 17
  "0x1": "Acme Corp",          // VendorName
  "0x2": 65521,                // VendorID = 0xFFF1 (test vendor)
  "0x3": "Smart Light",        // ProductName
  "0x4": 32769,                // ProductID = 0x8001

  // --- Product Information ---
  "0x5": "Living Room Light",  // NodeLabel (user-defined name)
  "0x6": "CN",                 // Location = China
  "0xB": "2025-01-15",         // ManufacturingDate
  "0xC": "ABC-1234",           // PartNumber
  "0xD": "https://example.com/product",  // ProductURL
  "0xE": "Smart Light Pro",    // ProductLabel
  "0xF": "SN20250115001",      // SerialNumber
  "0x12": "a1b2c3d4e5f6",     // UniqueID

  // --- Version Information ---
  "0x7": 1,                    // HardwareVersion = 1
  "0x8": "v1.0",               // HardwareVersionString
  "0x9": 2,                    // SoftwareVersion = 2
  "0xA": "v2.0.1",             // SoftwareVersionString

  // --- Device Status ---
  "0x10": false,               // LocalConfigDisabled = false (local config enabled)
  "0x11": true,                // Reachable = true (device reachable)

  // --- Capabilities ---
  "0x13": {                    // CapabilityMinima
    "CaseSessionsPerFabric": 3,
    "SubscriptionsPerFabric": 3
  },
  "0x14": {                    // ProductAppearance
    "Finish": 1,               // Matte
    "PrimaryColor": 7          // Gray
  },
  "0x15": 65792,               // SpecificationVersion = 0x01010000 → 1.1.0.0
  "0x16": 1                    // MaxPathsPerInvoke = 1
}
Typical Flow for Reading Device Information

After the App first connects to a device, it typically reads BasicInformation to display the device details page:

  1. Read VendorName (0x01) + ProductName (0x03) as the device title
  2. Read NodeLabel (0x05) to display the user-defined name (if available)
  3. Read SoftwareVersionString (0x0A) to display the current firmware version
  4. Read SerialNumber (0x0F) for after-sales support or device management
  5. Read Reachable (0x11) to determine device online status (Bridged devices)

Note that all reads must specify endpointId = 0, since BasicInformation only exists on the Root Node.