BLE UUID Generator

Generate random UUIDs for BLE services and characteristics. UUID v4 with formatted and raw output. Bulk generate and copy. Free.

Options

Formatted is canonical for GATT files. BLE Short expands a 16-bit ID against the Bluetooth Base UUID.

1 50

Short ID replaces bytes 2-3 in the Bluetooth Base UUID

Generated UUIDs

History (last 10)

How to Use

  1. 1
    Choose your output format

    Pick the canonical 8-4-4-4-12 dashed form for GATT service files, the raw 32-character form for binary contexts, or the BLE 16-bit short UUID variant for SIG-allocated services.

  2. 2
    Set the bulk count and case

    Use the count input or 1 / 5 / 10 preset buttons to generate up to 50 UUIDs at once, and toggle uppercase or lowercase to match your project conventions.

  3. 3
    Copy what you need

    Click any UUID to copy a single value, use Copy All to grab the whole batch, or pull from the History panel which keeps the last 10 generated UUIDs even after re-rolling.

About

Universally Unique Identifiers (UUIDs) are 128-bit values standardised by RFC 4122 and incorporated into ISO/IEC 9834-8. They were created to give software systems a way to label objects across machines without a central authority — a problem that became urgent in the 1980s when distributed object frameworks like Apollo NCS and DCE/RPC needed globally unique interface identifiers. The 128-bit width is large enough that values generated independently on different machines are extraordinarily unlikely to collide.

RFC 4122 defines five UUID versions. Version 1 derives the value from the host MAC address and a 60-bit timestamp; version 2 is a DCE Security variant; versions 3 and 5 hash a name inside a namespace using MD5 and SHA-1 respectively; version 4 fills the value with random bits. Six bits are reserved for version (4 bits) and variant (2 bits), leaving 122 bits of entropy for v4. The canonical text representation is 32 hexadecimal digits grouped 8-4-4-4-12 with hyphens, lowercased by default.

Bluetooth Low Energy adopted UUIDs as the identifier for every GATT service, characteristic, and descriptor. The Bluetooth Base UUID 00000000-0000-1000-8000-00805F9B34FB lets short 16-bit and 32-bit identifiers expand into the full 128-bit space, so SIG-assigned services fit into compact advertising packets. Vendor services that are not in the assigned numbers registry must use fully random 128-bit UUIDs — generated with a v4 RNG — to be safely unique. This generator uses the Web Crypto API (crypto.randomUUID with a getRandomValues fallback) so every value is produced locally in your browser; nothing is sent to a server.

FAQ

What is a UUID?
A UUID (Universally Unique Identifier) is a 128-bit value defined by RFC 4122 and used to label resources without a central registry. In BLE the GATT specification uses UUIDs to identify every service, characteristic, and descriptor — 16-bit short UUIDs for Bluetooth SIG standard profiles and full 128-bit UUIDs for any custom vendor service.
What is the difference between UUID v1 and UUID v4?
UUID v1 is generated from the host MAC address and a high-resolution timestamp, which leaks identifying information and time of creation. UUID v4 is generated from 122 bits of cryptographically random data, with the version (4) and variant (RFC 4122) bits set to fixed values. For BLE service UUIDs you should always use v4 because it carries no device fingerprint and the random distribution is what makes collisions astronomically unlikely.
What is the collision probability of a random UUID v4?
UUID v4 has 122 bits of entropy, which gives roughly 5.3 × 10^36 possible values. Using the birthday bound, you would need to generate about 2.71 quintillion UUIDs to reach a 50% chance of a single collision. For practical purposes — including labelling every BLE characteristic ever shipped — UUID v4 collisions can be ignored.
When should I use a 16-bit short UUID instead of a full 128-bit UUID?
Bluetooth SIG-defined services (Heart Rate, Battery Service, Device Information, etc.) are allocated 16-bit short UUIDs that are expanded against the Bluetooth Base UUID 00000000-0000-1000-8000-00805F9B34FB. They save 14 bytes per advertising packet and per GATT discovery response. Custom services that are not registered with the SIG must use fully random 128-bit UUIDs to avoid colliding with assigned numbers.
How are UUIDs used in BLE GATT services and characteristics?
Every GATT service and characteristic on a BLE peripheral is identified by a UUID. Central devices discover services by advertising or by reading the GATT primary service list, then traverse characteristics by UUID to find the data they care about. Vendors typically pick one random base UUID per product and vary bytes 12–13 to derive related characteristic UUIDs, which keeps the namespace organised while still being collision-free.