Skip to main content
A bound offline license file (.authforge) is locked to one or more hardware ids. The operator cannot mint that file until they have the id from the same SDK that will later call loginFromFile. Do not ask the customer to type the HWID into an email. Email truncates, line-wraps, autocorrects and adds trailing whitespace; every one of those fails later as hwid_mismatch and looks like a product bug. Prefer an activation request file (.authforge-request) that the SDK writes and the dashboard checksums.

Surface it in the product

Recommend a copy-to-clipboard control on an About, Settings or Support screen (or a --hwid CLI flag). The getter is already public in every official SDK; you do not need a network call or an app secret.
An offline-only client constructed with just appId and publicKey can do this. No login(), no app secret, no network.

It is not portable

Collect the value from the same SDK language that will load the file. A Node getHwid() is not a C# GetHwid() on the same machine. See HWID locking. If your product uses several SDKs on one box, pass hwidOverride with an identifier you control instead.

It changes when hardware does

HWID is derived from MAC address, CPU and disk serial. A motherboard swap, a disk swap, or some VM moves produce a new value. The customer should expect to send a new request (and receive a new .authforge file) after significant hardware replacement.

If they already pasted a string

Before you mint:
  1. Strip whitespace.
  2. Check for a line-wrap in the middle of the hex.
  3. Ask for a .authforge-request instead.
A bound file minted to a damaged string is a wasted credit and another support ticket.