MetaTrader License Library & Installer Builder
License-checking MQL library plus a Windows builder that stamps per-product installers, so each MT4/MT5 indicator verifies its access key against the seller's API.
The problem
Selling MetaTrader indicators means shipping compiled files to customers and making sure only paying accounts can run them. Off-the-shelf licensing services add a third party in the middle. The business wanted checks against its own backend and a one-click install for traders.
What I built
- License library: MQL4 and MQL5 code each product includes. On chart attach it posts the product slug, access key, account number and file type to the seller’s access endpoint and blocks the product if access is denied. It comes in DLL and no-DLL variants for MT5.
- Generic installer: a Tkinter app frozen with PyInstaller. The trader enters only an access key and picks their brokers. The installer downloads the product and license helper and writes them into the right MT4/MT5 data folders.
- Builder app: a desktop tool that stamps a per-product installer by appending the product config to a copy of the generic installer. PyInstaller finds its archive from the end of the file, so the stamped exe still boots and reads its config.
- Per-product configs: one JSON config per indicator, so a new product needs a config, not a rebuild.
- Tests and CI: unit tests for the builder and installer core, plus an endpoint validation script. A CI workflow builds the installer template and then the builder on Windows.
- Pipeline hooks: scripts that publish built installers and product files to the CRM as part of the release flow.