• Icon

    • About Ember VPN
    • Downloads
    • Plans & Pricing

  • License Agreement
  • Privacy Statement

Ember VPN

Icon
Icon

Ember VPN


Powered by BetterStack Status

Product

About EmberDownloadsPlans & Pricing

Guides

API Documentation

Legal

License AgreementPrivacy Statement

Copyright © 2022 - 2025

All rights reserved

Before authenticating with the Ember VPN API, it's crucial to probe the hardware ID (HWID) of the device. This step ensures that authentication is performed with up-to-date and specific device information, enhancing security and preventing the use of stale credentials.

Purpose of HWID Probing

  • Device Identification: Allows users to easily recognize and manage devices connected to their Ember VPN account.
  • Single Authorization Token per Device: Ensures that each device is associated with a unique authorization token, enhancing security and simplifying token management.
  • Account Security: Helps in monitoring and controlling device access to the user's VPN account, preventing unauthorized use.

Generating the HWID

The HWID is a base64-encoded JSON object containing information about the device. The HWID is generated by the client and passed to the Ember VPN API when authorizing clients.

Required Fields

The following fields are required in the HWID payload:

PropertyDescription
hwidA unique identifier for the device (e.g., serial number, MAC address).
manufacturerThe company that manufactured the device.
modelNameThe specific model of the device.
osNameThe operating system running on the device.

You can add additional fields to the HWID payload to add entropy. The data in the payload should be unique to the device and should not change over time.

Example JSON Payload

Convert JSON to Base64

After creating the JSON payload, you must convert it to base64. In Node.js for example, you can use the following code snippet, assuming that the payload is stored in a variable named payload:

The resulting base64 string is the HWID that you must pass to the Ember VPN API when authorizing clients.

  • On this page
    • Generating the HWID

      • Required Fields

      • Example JSON Payload

      • Convert JSON to Base64

  • JSON with Comments

    JSON with Comments

    {  "hwid": "XX:XX:XX:XX:XX:XX", 	// A unique identifier for the device (e.g., serial number, MAC address).  "manufacturer": "Apple",    	// The company that manufactured the device.  "modelName": "iPhone 15 Pro", // The specific model of the device.  "osName": "iOS", 		  		// The operating system running on the device.	  // Additional fields (optional but must not change over time)  "supportedCpuArchitectures": ["arm64e"],  "totalMemory": 5925339136}
    JavaScript

    JavaScript

    const base64Payload = Buffer.from(JSON.stringify(payload)).toString("base64");console.log(base64Payload); // eyJod2lkIjoiWFg6WFg6WFg6WFg6WFg6WFgiLCJtYW51...