GATT & ATT UUID

UUID

<\/script>\n
'; }, get iframeSnippet() { const domain = '{ SITE_DOMAIN }'; const type = '{ embed_type }'; const slug = '{ embed_slug }'; return ''; }, get activeSnippet() { return this.method === 'script' ? this.scriptSnippet : this.iframeSnippet; }, copySnippet() { navigator.clipboard.writeText(this.activeSnippet).then(() => { this.copied = true; setTimeout(() => { this.copied = false; }, 2000); }); } }" @keydown.escape.window="open = false" @click.outside="open = false">

Embed This Widget

Theme


      
    

Widget powered by . Free, no account required.

Universally Unique Identifier used to identify GATT services and characteristics. 16-bit for SIG-adopted, 128-bit for custom.

Also known as: Universally Unique Identifier

What Is a UUID in BLE?

A Universally Unique Identifier (ATT">UUID) is the addressing scheme that identifies every service, characteristic, and descriptor in the GATT hierarchy. When a client discovers a BLE device's attribute database, it reads UUIDs to understand what data the device offers and how to interact with it.

16-Bit vs. 128-Bit UUIDs

The Bluetooth SIG defines a base UUID: 00000000-0000-1000-8000-00805F9B34FB. All SIG-adopted services and characteristics are allocated a 16-bit shorthand that maps into this base. For example, the Heart Rate Service UUID 0x180D expands to 0000180D-0000-1000-8000-00805F9B34FB. This shorthand saves bandwidth during service discovery because the 16-bit form requires only 2 bytes on the wire versus 16 bytes for a full 128-bit UUID.

Custom (vendor-specific) services must use a 128-bit UUID that does not collide with the SIG base range. The standard approach is to generate a random UUID v4 and use it as a project-wide base, then vary one or two octets for different services and characteristics within the same product.

SIG-Assigned Numbers

The Bluetooth SIG maintains the Assigned Numbers document, which catalogs all standardized UUIDs. Key ranges include:

Range Usage
0x1800 -- 0x18FF GATT Services
0x2A00 -- 0x2AFF GATT Characteristics
0x2900 -- 0x290F GATT Descriptors
0x2800 -- 0x2803 Attribute Types (service/char declarations)

Using SIG-defined UUIDs wherever applicable improves interoperability because generic BLE tools and mobile operating systems can automatically label and parse these attributes.

UUID in Advertising

When a device advertises, it can include a list of service UUIDs in the advertising payload to help scanners filter devices by capability before connecting. The advertising data types for this purpose include Complete List of 16-bit Service UUIDs (type 0x03), Incomplete List (type 0x02), and corresponding 128-bit variants. Including UUIDs in advertising consumes valuable payload space (31 bytes in legacy advertising, more with extended advertising), so devices typically advertise only their primary service UUID.

Collision Avoidance

Although a randomly generated 128-bit UUID has an astronomically low collision probability (1 in 2^122), developers should still document and register their UUIDs internally. Some organizations maintain a UUID registry per product line. Reusing another vendor's custom UUID can cause subtle interoperability failures where a client connects to the wrong device type and misinterprets characteristic data.

Related Terms

Frequently Asked Questions

Our glossary covers 90+ BLE technical terms organized by category. Each term includes a definition, related terms, and links to relevant chips and guides.