Eddystone-EID is another part of Eddystone specification, designed to secure the Eddystone advertising. This is achieved by having the beacon broadcast “ephemeral” identifiers that change every few minutes. However, an authorized app or service in possession of a special key can resolve the ephemeral identifier to a “real” one.
You can read more about it in Google’s own Eddystone Ephemeral Identifier documentation.
Info: Eddystone-EID also comes with encrypted Eddystone-TLM (also known as “Eddystone-eTLM”).
Using Eddystone-EID requires:
- a resolving service: something that will take the ephemeral identifier, and translate it into a “real” one
- since Eddystone is an open protocol, and that includes Eddystone-EID, you could take the EID Computation spec, and build your own resolver …
- … or, you can use Google’s beacon cloud, which already implements one, and is built into Nearby
- provisioning a beacon so that it actually starts advertising ephemeral identifiers
- during that process, the beacon and the resolver exchange a secret key that allows the resolver to “decode” the ephemeral identifiers
In the family of Estimote Beacons, only Location Beacons support Eddystone-EID at this time. The easiest way to provision them for Eddystone-EID and the Google’s resolver is with the Eddystone Configuration Service and Google’s Beacon Tools.
Alternatively, you can also provision your Location Beacons with Eddystone-EID and Google’s resolver via Estimote Cloud. This however is a semi-automatic process: you need to send us a Service Account Key that we can use to upload the beacons’ secret keys to your Google Cloud Platform account:
- Create a new Service Account for your project.
- Create a new JSON key for that Service Account.
- Email it to email@example.com with subject “Eddystone-EID registration”. It typically takes us a few business days to process such requests. We’d also appreciate if you could mention how you intend to use Eddystone-EID and how your use case will benefit from the added security.
Tip: If you don’t require the extra security, or are still prototyping and trying things out, you can simply use Eddystone-UID instead. Other than the security features, the two are pretty much interchangable!