GATT Descriptors sit one level below characteristics in the attribute hierarchy. Where a characteristic holds a data value, a descriptor provides metadata about that value: a human-readable description string, the valid numeric range, notification enable/disable configuration, and more. Every descriptor has a UUID in the SIG-reserved rangeDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/nordicsemi/bluetooth-numbers-database/llms.txt
Use this file to discover all available pages before exploring further.
0x2900–0x2911 and is exposed as an attribute on the peripheral’s GATT server alongside its parent characteristic. The most universally important descriptor is the Client Characteristic Configuration Descriptor (CCCD, UUID 2902) — it is the mechanism by which a BLE central device subscribes to asynchronous notifications and indications from a peripheral. The Bluetooth Numbers Database includes all 18 SIG-defined descriptor entries sourced directly from the GATT Specification Supplement.
Data Structure
Each entry indescriptor_uuids.json conforms to the following schema:
4-character hexadecimal string identifying the descriptor (e.g.,
"2902"). All SIG-assigned descriptors occupy the 2900–2911 range.Human-readable descriptor name as defined in the GATT Specification Supplement (e.g.,
"Client Characteristic Configuration").Uniform Type Identifier in reverse-dot notation providing a globally scoped label (e.g.,
org.bluetooth.descriptor.gatt.client_characteristic_configuration).All current descriptor entries are
"gss" (GATT Specification Supplement). This field is included for schema consistency with the service and characteristic UUID files.Complete Descriptor Listing
The following is the full contents ofdescriptor_uuids.json — all 18 SIG-defined GATT descriptors:
The CCCD (0x2902)
The Client Characteristic Configuration Descriptor (UUID2902) is by far the most commonly encountered descriptor in Bluetooth Low Energy development. It is a 2-byte, client-writable attribute that controls how the server delivers asynchronous updates to a connected central:
| Bit | Name | Effect |
|---|---|---|
| 0 | Notifications Enabled | Server sends ATT_HANDLE_VALUE_NTF without acknowledgement. Client does not confirm receipt. |
| 1 | Indications Enabled | Server sends ATT_HANDLE_VALUE_IND with acknowledgement. Client must confirm via ATT_HANDLE_VALUE_CFM. |
NOTIFY property set for notifications to work, or the INDICATE property set for indications to work. Writing 0x0001 to the CCCD enables notifications; writing 0x0002 enables indications; writing 0x0000 disables both. The CCCD value is per-connection and per-bonded-client, meaning each connected device has its own independent CCCD state.
