← Back to Blog
Comparison Guide

EA License Protection in 2026: MQL5 Market vs. Rolling Your Own vs. Hosted Services

August 5, 2026 · 8 min read · By MTLicense Team

If you sell MetaTrader Expert Advisors, you have exactly four realistic options for stopping piracy. This is an honest comparison of all of them — including when not to use a hosted service like ours.

The short answer: For a one-off EA given to a friend, hardcode their account number and move on. For selling through a marketplace you don’t mind sharing revenue with, use MQL5 Market. For selling direct and keeping your customer list, use server-side license validation — build it yourself if you enjoy running servers, or use a hosted service like MTLicense if you’d rather ship EAs.

Option 1: Account-Number Hardcoding — Free, and Worth What It Costs

if(AccountNumber() != 12345) return(INIT_FAILED);

Works for exactly one customer. Dies the moment you have two. Any ex4/ex5 decompiler removes it in minutes, and decompilers exist for both platforms — assume the file will be opened. Verdict: fine for favors, not for a business.

Option 2: Obfuscation — a Speed Bump, Not a Wall

Obfuscators and “uncrackable” compile tricks make cracking slower and more annoying. They do not make it impossible, and the cracking community that targets trading tools is well practiced. If your entire security model lives inside the file you hand the customer, the customer’s decompiler owns your security model. Verdict: acceptable as a layer, never as the plan.

Option 3: MQL5 Market — Licensing Solved, Customer Surrendered

Selling through the official MQL5 Market gets you real, platform-enforced licensing with activation limits. The trade: the marketplace takes its cut, sets the rules, and owns the customer relationship — you cannot email your buyers, upsell them, or move them to a subscription. Verdict: the right choice if you want zero licensing work and accept marketplace economics.

Option 4: Server-Side License Validation — How Commercial Software Actually Works

The EA calls a server via WebRequest on init, sending the license key and the customer’s account number. The server decides: valid, invalid, revoked, or expired. The decision logic never ships in the file, a leaked key is killed instantly from a dashboard, and a cracked-out WebRequest call just produces an EA that will not run.

4a. Build It Yourself

A weekend project for the basic version: a small Node or Flask endpoint, a SQLite table of keys, a WebRequest check in OnInit with a grace window so a server blip does not kill a live trade. The parts that quietly consume your next six months: key expiry, revocation, max-accounts-per-key, customer account transfers, trial keys, and telling every customer how to whitelist your URL under Tools → Options → Expert Advisors. Verdict: right for developers who want full control and do not mind owning infrastructure.

4b. Hosted Service (This Is What MTLicense Is)

Same architecture, but the server, dashboard, key lifecycle, and SDK are done. Integration is two lines of MQL4/MQL5 — include the license manager, check the key in OnInit. Keys are created, revoked, expired, and account-limited from a web dashboard. Plans run $19–$99/month with a 14-day free trial, no credit card required. Verdict: right for sellers who would rather spend the weekend on their EA than on licensing infrastructure. Wrong for you if you enjoy running servers or sell exclusively through MQL5 Market.

Comparison Table

CostStops sharing?Survives decompiling?You own the customer?Setup time
Account hardcodeFreeOne customer onlyNoYes1 minute
ObfuscationFree–$$NoNoYesHours
MQL5 MarketRev shareYesYesNoDays (approval)
Self-hosted serverYour timeYesYesYesWeekend + upkeep
MTLicense (hosted)From $19/moYesYesYes~5 minutes

Common Questions

Can a cracker just remove the license check?

They can patch out the WebRequest call — and then the EA does not initialize. The yes/no decision lives on the server, not in the file. That is the entire point of the architecture.

What happens if the license server goes down?

Any sane implementation (including ours) caches the last successful validation and trades within a grace window, so a network blip never kills a live EA mid-trade.

Do customers need to configure anything?

One thing: the validation URL must be whitelisted under Tools → Options → Expert Advisors → “Allow WebRequest for listed URL”. It is every seller’s number-one support question — build your error message around it.

Can I lock one key to one account?

Yes — binding the key to the customer’s account number is the default model, with per-key account limits when you want to allow more.

Skip the infrastructure. Keep the customer.

Server-side license protection for your MT4/MT5 EA in about 5 minutes.

Protect My EA Now 14-day free trial · No credit card · Cancel anytime

Read next

What actually stops clients copying your EA →Bind your MT4 EA to an account number — the code →