GATT is an acronym for the Generic Attribute Profile.


Uses generic Attribute Protocol (ATT), stores in a simple lookup table using 16-bit IDs for each entry.

GATT comes into play once devices are


A device that initiates GATT commands and requests, and accepts responses, for example, a computer or smartphone.


A device that receives GATT commands and requests, and returns responses, for example, a temperature sensor.


A data value transferred between client and server, for example, the current battery voltage.


A collection of related characteristics, which operate together to perform a particular function. For instance, the Health Thermometer service includes characteristics for a temperature measurement value, and a time interval between measurements.


A descriptor provides additional information about a characteristic. For instance, a temperature value characteristic may have an indication of its units (e.g. Celsius), and the maximum and minimum values which the sensor can measure. Descriptors are optional – each characteristic can have any number of descriptors.

Services, characteristics, and descriptors are collectively referred to as attributes, and identified by UUIDs.