Attribute Protocol (ATT) is a protocol in the Bluetooth Low Energy (BLE) protocol stack. It defines how data is represented in a BLE server database and the methods by which that data can be read or written.
For example, when using a fitness tracker, it gathers data about your steps and heart rate. It acts as a server, holding this data until a smartphone, the client, requests it. This data is stored on the BLE server as attributes.
By definition an attribute is composed of four fields:
- attribute type (a universally unique identifier–128-bit number),
- attribute handle (a non-zero number for referencing the specific attribute),
- attribute permissions (defines if it can be read and/or written) and
- attribute value.
These attributes can be read or written using methods which are defined by ATT. For example, requests are sent to servers by the clients and they invoke a response, but notifications are sent to clients by servers and without invoking a response.