How we license our MT5 EAs without keys, account locks, or DLL wrappers

Most EA licensing methods (key inputs, account-number locks, DLL wrappers) treat paying customers as the threat, fire a support ticket on every reinstall, and still get cracked. Here's the approach we settled on instead.

The setup, three parts:

  • Entitlement lives on a server you control (this email owns this product).
  • The EA asks one HTTPS endpoint a single yes/no question on a slow timer.
  • The answer is cached in a local, fail-closed state file. Trading reads only that file, never a live HTTP response.

The parts that matter:

  • HMAC-SHA256 signed request bodies with a timestamp + nonce, for replay protection.
  • A 24h grace window so a VPS DNS blip doesn't strand a paying customer mid-session.
  • A 48h staleness ceiling, so firewalling the endpoint isn't a free bypass.
  • Stop NEW trades on a lapsed licence, never force-close open positions.

Full writeup with working MQL5 + ASP.NET code (and a downloadable example): stratotank.com/ideas/securing-ea-license-checks

Curious how others handle the fail-open vs fail-closed tradeoff.

Posted Jun 25, 2026, 7:16 AM UTC

10
Loading comments…