Eddystone-EID is an implementation of Ephemeral ID in the Eddystone format. When Eddystone EID is enabled, Kontakt.io devices generate and broadcast an ephemeral identifier that changes periodically - resulting in a more secure beacon signal. These ephemeral identifiers mean nothing to third-party apps that are not integrated with the Kontakt.io APIs. However, these identifiers are resolved via the Kontakt.io APIs to obtain the real device identifier.
As part of enabling Eddystone EID, an important decision is selecting a Rotation Exponent (eidRotationPeriodExponent
) that sets how frequent new indentifiers are generated (rotation interval). Specific to the Kontakt.io platform, there are a few implications to consider, namely that each Rotation Exponent has a time-safe margin. This time-safe margin is important due to the time-sensitive nature of EID generation. If a device's time drift is too far apart, the API will not be able to resolve the EIDs generated by the device.
For example, when the Rotation Exponent is set to 7, a device generates a new EID every 2^7=128 seconds. If the device's local time drifts by over 128 seconds, the EIDs generated will actually be in the future. To compensate for a device time drift, the API calculates X future EIDs for every Rotation Exponent to provide a safe margin.