Attribute Protocol (ATT)

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.