Skip to main content
Developer Integration Guide

Sell Your EA on Ultimate Extractor

Add license protection to your Expert Advisor with just 3 function calls. We handle payments, license keys, and seat management — you focus on building great EAs.

What You Get

Store Listing

Your EA listed in the UE Store with its own product page, description, and screenshots

License Protection

Compiled TridentGuard library prevents piracy — users need a valid license to run your EA

Payment Processing

Stripe handles one-time purchases and recurring subscriptions automatically

Seat Management

Customers activate/deactivate MT5 accounts from their dashboard — no work for you

Integration Steps

1

Get the TridentGuard Header

TridentGuard is a single header file — the full validation logic compiles directly into your EA's .ex5. No external library, nothing extra for your customers to install:

TridentGuard.mqhPlace next to your .mq5 source file
Download
2

Add TridentGuard to Your EA

Add the include and 3 function calls to your existing EA code:

YourEA.mq5
#include "TridentGuard.mqh"

input string InpLicenseKey = "";  // License Key
input string InpHmacSecret = "";  // HMAC Secret

int OnInit()
{
   // This MUST be first — blocks EA if license is invalid
   if(TG_Init(InpLicenseKey, InpHmacSecret) != INIT_SUCCEEDED)
      return INIT_FAILED;

   // ... your existing init code ...
   return INIT_SUCCEEDED;
}

void OnTick()
{
   // This MUST be first — stops trading if license expires
   if(!TG_IsValid()) return;

   // Optional: stop opening new trades during shutdown
   if(TG_IsClosingDown())
   {
      // License is failing — manage exits only
      ManageExistingTrades();
      return;
   }

   // ... your existing tick code ...
}

void OnDeinit(const int reason)
{
   // Frees up the license seat when EA is removed
   TG_Deinit();

   // ... your existing deinit code ...
}
That's it for code changes. Three required functions: TG_Init() in OnInit, TG_IsValid() in OnTick, TG_Deinit() in OnDeinit. Optional: TG_IsClosingDown() to handle graceful shutdown.
3

Allow the API URL

TridentGuard validates licenses via HTTPS. Add the URL to MT5's allowed list:

In MetaEditor: Tools → Options → Expert Advisors
Add URL: https://ultimateextractor.com
4

Compile & Submit

Compile your EA in MetaEditor and send us the following:

Your compiled .ex5 file
Product name, description, and screenshots
Your desired price (one-time and/or monthly subscription)
5

We Handle the Rest

List your EA in the store with its own product page
Generate license keys automatically for every purchase
Process payments through Stripe
You receive your revenue share minus the platform fee

What Your Customers Do

1

Purchase your EA on ultimateextractor.com

2

Download a single file: your EA's .ex5 — licensing is built in

3

Copy it to MQL5/Experts/ and allow https://ultimateextractor.com in MT5's WebRequest list

4

Attach EA to a chart, paste their License Key and HMAC Secret from their dashboard

5

EA validates and runs — seats managed automatically

Security & Protection

Compiled Binary

TridentGuard is distributed as a compiled .ex5 — source code is never exposed

HMAC-SHA256 Signing

Every server response is cryptographically signed to prevent tampering

Replay Protection

Unique nonce on every request prevents replay attacks

24h Re-validation

Licenses re-validate automatically — expired or revoked licenses stop working

DLL Injection Block

EA refuses to start if DLL imports are enabled, preventing runtime hooking attacks

3-Strike Graceful Shutdown

Re-validation failures use a 3-strike system with escalating warnings before stopping

Important Notes

  • !Never distribute the TridentGuard.mq5 source file — only the compiled .ex5
  • !Do not remove or bypass the TG_ function calls — purchases will not work without them
  • !The licensing check happens on EA startup and re-validates every 24 hours
  • !If a customer's subscription lapses, the EA stops on the next re-validation cycle (3-strike grace)
  • !Customers must have DLL imports DISABLED in terminal settings (this is the default MT5 setting)
  • !Use TG_IsClosingDown() in OnTick to stop opening new trades during the shutdown grace period

Developer Terms

Version 2026-07-24 · Accepted per submission when you submit an EA for review.

Revenue share. A 10% platform fee is deducted from each sale — you keep 90%, and Stripe payment-processing costs are covered by the platform’s share. You set your price and receive your share via Stripe Connect payouts.

Licensing. All listed EAs must integrate TridentGuard license protection. License keys, seats, and validation are operated by Ultimate Extractor.

Review & delisting. Submissions are reviewed before listing. Ultimate Extractor may request changes, decline, or delist a product at its discretion — including for misrepresented performance, malicious behavior, or unresolved customer issues.

Your responsibilities. You confirm you own or have the rights to the submitted software, that its description and results are truthful, and you remain responsible for the EA’s trading behavior and product support.

Ownership. You retain all intellectual property in your EA. Listing grants Ultimate Extractor the right to distribute the compiled product to purchasers and to use its name and images for the store listing.

No guarantees. Ultimate Extractor does not guarantee sales volume, placement, or continued availability of the store. Trading involves substantial risk; you must not market listed products with promises of profit.

Frequently Asked Questions

Ready to List Your EA?

Sign in to access the Developer Portal where you can upload your EA, set pricing, and submit for review.

Go to Developer Portal