Kontakt.io devices are uniquely identifiable through a property called Kontakt.io Unique ID. Each Beacon, Gateway or any other Kontakt.io device has an unique alphanumeric string assigned to itself. However, due to various new use cases and technology changes, the scheme used for assigning Unique IDs has been evolving through the years. Therefore, devices bought in different years can have Unique IDs that look different or have various length.
All Unique IDs are alphanumeric strings (using letters a-z, A-Z and numbers 0-9) that are at least 4 characters long. They are randomly generated during production of beacons and cannot be changed later. No two beacons can have the same Unique ID. The only exception from this rule is a warranty replacement - if a device needs to be replaced due to Kontakt.io's fault or any other valid reasons, a clone of that device is provided. It means it will have the same configuration, including the Unique ID.
nRF51 and DA14580 devices
Devices based on these chipsets have fixed, 4-characters long Unique IDs, assigned at random.
Newer devices have more flexibility when it comes to the length of their Unique IDs. First batches of products with nRF52 chipset used the same 4-characters schema as nRF51-based beacons. It was later replaced with a 6-characters long identifier. This format, however, is not entirely random.
The first character represents a number of a week in a year when a device was manufactured. The second characters refers to a year of production. The last 4 characters are randomly generated and are unique for devices assembled in a given week.
First Gateways had 5-characters long Unique IDs, all random. When 6-characters long IDs were introduced on nRF52 devices, Gateways were switched to this schema as well.
In some circumstances non-Kontakt.io devices can be integrated with Kontakt.io ecosystem. They can use various identification schemes. We do not generate Unique IDs for them, but instead usually incorporate their existing identifiers as Unique IDs within Kontakt.io system. It means that it is possible for Unique IDs to have values significantly different than what was described above, e.g. they can be MAC addresses of 3rd party devices. But please keep in mind this refers only to external, non-Kontakt.io devices.