Licenses
Create license keys, lock them down with a secret key and per-license signal authentication, push EA settings live to MT5, and shape what your EA trades, all from one page.
Video walkthrough coming soon.
A license is the cord between TradingView, PineHook, and one MT5 terminal. You need one license per running terminal. The Licenses page is where every piece of that connection lives: the credentials the EA uses to authenticate, the per-license signal-authentication password, the trading parameters the EA reads in real time, and the symbol filter that decides what it can touch.
What you'll see#
The page is a two-column layout: your licenses on the left, with a search bar, a Cards or List view, and a Deprecated Licenses collapsible at the bottom; and the Global EA Settings sidebar on the right that sticks to the viewport as you scroll. Above both, a stats strip shows your Total, Active, Connected Now (with a live pulse), and Capacity counts.
An amber notice appears under the page header when your email isn't verified or you've hit your plan cap. If you have no active subscription, the New License button is disabled with a Subscribe to create licenses link beneath it.
Managing licenses#
Every license card has a three-dot menu grouped into four bands: identity and lifecycle (Rename, Disable / Enable), credentials (Regenerate License, Set Secret Key, Remove Secret Key, Signal Authentication), configuration (License Settings), and destructive (Delete).
The dot on the left of each card shows the live connection state:
| Dot | Status | Meaning |
|---|---|---|
| Gray | Disabled | The license is inactive. No signal delivery. |
| Pulsing green | Connected | An EA is online. The card shows the MT account and broker server below the dot. |
| Amber | Last: 2m ago (or 3h, 5d) | An EA was recently connected but isn't sending a live heartbeat. Often a momentary network blip. |
| Blue | Never connected | No EA has ever connected with this key. |
Rename is cosmetic. Disable is a soft off-switch you can flip back on at any time. Delete is permanent: the key moves to Deprecated Licenses and can never be reissued.
Regenerate License invalidates the current key the moment you confirm. Any EA still using it disconnects until you paste the new key into MT5. The old key joins Deprecated Licenses with a Regenerated badge.
Delete and Regenerate are not Disable
Disable pauses a terminal; you can re-enable it later. Delete retires the key forever, and Regenerate retires the previous key forever. Have MT5 in front of you before regenerating, and use Disable if you only want to pause.
The Secret Key#
A secret key gates the WebSocket connection itself. With one set, the EA must present both the license key and the matching secret to connect. A leaked license key alone can't be used to connect a rogue EA. It does not, however, block webhook signal injection into your already-connected EA: for that, enable Signal Authentication (below).
When you set or rotate a secret, the dialog displays the value one time. A heavy amber banner reads THIS IS THE ONLY TIME THE SECRET WILL BE DISPLAYED. The Done button stays disabled, and Escape, outside-click, and the corner X are all blocked, until you click Copy. The platform stores secrets only as a one-way hash; there is no backdoor, no recovery flow, and no support ticket that can produce the plaintext for you.
If you lose the readable value, open Set Secret Key again. When a secret is already set, this action rotates it: the previous value is invalidated and a new value is shown once.
Update both sides
After setting or rotating a secret, the EA disconnects within seconds. Paste the new value into EA Inputs → Secret Key and restart the EA before sending more signals.
Signal Authentication#
Signal Authentication is a second protection layer, independent of the Secret Key. Whereas the Secret Key gates the connection, Signal Authentication gates the webhook signals themselves. It is a per-license on/off switch with a single password: turn it on and set a password, and every webhook alert for that license must include that password or the signal is blocked. Turn it off and no alert needs it. Even if someone has your license key and your secret, they still can't fire a single signal without that password.
To turn it on, open Signal Authentication from the license card's three-dot menu, flip the toggle on, and set a password (8–72 characters, case-sensitive). Enabling the feature requires setting a password. There is no command picker: the switch covers the whole license.
Once enabled, every TradingView alert for that license must include auth=YOUR_PASSWORD (CSV) or "auth":"YOUR_PASSWORD" (JSON) in the payload. This applies to all commands with no exceptions, from buy and sell through close, cancel, modify, and EA-control commands. An alert that omits the password is blocked with reason missing_auth; an alert that carries the wrong password is blocked with reason invalid_auth. Blocked signals appear in your Signal Logs with a Blocked: Auth pill, and the same reason is returned to TradingView's alert execution status.
When the feature is off, no alert needs auth=. If a password is present anyway it is parsed and then ignored. Either way, on or off, the password is stripped from every stored signal and is never sent to the EA.
Secret Key and Signal Auth are independent
A license can have both, one, or neither. The Secret Key is checked once when the EA connects; Signal Authentication is checked on every webhook signal while the switch is on. Neither blocks or requires the other.
EA Settings#
Trading parameters live in two places. The Global EA Settings sidebar applies to every license unless that license overrides a field. The License Settings modal on each license lets you either inherit everything from global, or set custom overrides for just that license. Overridden fields show a small amber dot and a one-click reset link; Reset All wipes every override on a license and falls back to global.
The five field groups, same in both surfaces:
- Trading Basics: default lot size, magic number, spread limits in pips and as a percentage of price.
- Position Limits: long and short caps in lots or as a percent of balance, plus a Limit Mode dropdown (Reject the signal, or Cap its size).
- Risk & Recovery: daily drawdown cap with a reset hour in MT5 server (broker) time, recovery mode for missed signals, signal expiry window, log verbosity.
- Symbol Filtering: see Symbol Filters below.
- Active Hours: time-of-day filter with timezone choice (broker server clock, UTC, or local). It gates entry signals only; close and cancel commands always run, even outside the window.
Dashboard Mode vs MetaTrader Mode#
The MT5 EA reads its trading parameters from one of two places at any given time. You pick which by setting the Settings Source input parameter inside MT5.
| Mode | Where settings come from | Push behaviour |
|---|---|---|
| Dashboard Mode | The platform: Global EA Settings with any per-license overrides applied on top. | The dashboard pushes new values to the connected EA live, near real-time, without restart. |
| MetaTrader Mode | The EA's own input properties inside MT5. The dashboard fields are stored but ignored. | Saving in the dashboard persists the values but does not affect the EA. |
The badge in the License Settings modal tells you which mode the EA is reporting. A handful of EA inputs are MT5-only and cannot be set from the dashboard: License Key, Secret Key, Settings Source, Magic Mode, and Connection Profile (LOCAL for home PCs and laptops, VPS for always-on colocated servers).
MetaTrader Mode silently ignores dashboard settings
If you save changes in the License Settings modal but the EA badge reads MetaTrader Mode, the values are stored on the platform but the EA isn't reading them. Switch the EA's Settings Source input to Dashboard inside MT5 and restart it.
Symbol Filters#
Symbol filters control which instruments your EA is allowed to trade. There are two scopes: a global filter applied to every license, and a per-license filter on each license. They combine, they don't override.
Each filter is either Blacklist or Whitelist. In Blacklist mode the EA trades every symbol except the ones you list, and an empty list means every symbol is enabled. In Whitelist mode the EA trades only the symbols you list, and an empty list blocks every trade.
The composition rules between the global filter and a per-license filter:
| Global mode | Per-license mode | Effective behaviour |
|---|---|---|
| Blacklist | Blacklist | Union: anything in either list is blocked. |
| Whitelist | Whitelist | Intersection: only symbols in both lists are allowed. |
| Blacklist | Whitelist | Whitelist: the per-license list minus the globally-blocked symbols. |
| Whitelist | Blacklist | Whitelist: the global list minus the per-license-blocked symbols. |
Symbols inherited from the global filter appear on each license's mini-panel with a small lock icon and can only be removed from the global panel.
A Block manual trades on filtered symbols checkbox auto-closes any manually-placed MT5 trade that lands on a symbol the active filter would block. Off by default.
Beta-program note
During the beta program, Block manual trades on filtered symbols is hidden from the UI and forced off, regardless of what the database holds. It returns when the beta ends.
Webhook parameters vs stored settings#
No webhook command changes the stored EA Settings on the platform. Per-trade parameters like size_lots, sl_pips, tp_pips, maxspread_pips, and trail_trigger inside a buy or sell signal override behaviour for that single trade only. The next signal that omits the same parameter falls back to whatever is stored. To raise your default lot size permanently, edit it in Global EA Settings; there is no webhook equivalent.
The one exception is the eaon and eaoff family of webhook commands (including eaonexcept, eaoffexcept, closealleaoff, closecancelalleaoff). Those commands mutate a stored value: your per-license symbol filter. The change persists across reconnects and is visible on the license card's Symbol Filter mini-panel.
Plans, capacity, and deprecated keys#
License capacity scales with your plan.
| Plan | Maximum active licenses |
|---|---|
| Trial | 1 |
| Standard | 1 |
| Pro | 3 |
| Premium | 10 |
If you need more than 10 licenses, contact us about custom needs and we can put together a plan.
When you hit your plan's cap, the New License button is disabled and the capacity bar caption changes to Limit reached with an upgrade link. The amber notice under the page header reads License limit reached, with Upgrade your subscription to create more licenses.
Every license you've ever deleted or regenerated is kept under the Deprecated Licenses collapsible at the bottom of the left column. Deprecated keys can never be reissued, not to you, not to anyone; the section exists so old keys can't be reused as a back-channel, and so you have an audit trail of every credential rotation.
Beta program cap
While you're on a beta subscription, the cap is 1 license regardless of which plan name you purchased. Pro and Premium beta subscriptions both behave like Standard for capacity purposes. The normal cap returns the moment your beta transitions to a paid subscription.
Things to avoid#
The most common surprises:
- Lost secret keys can only be rotated, not recovered. The platform stores secrets only as a one-way hash. If you lose the plaintext before pasting it into MT5, open the menu and click Set Secret Key again to rotate.
- The search bar matches the masked key, not the full one. Pasting your full license key from MT5 into the search returns No licenses found. Search by name or by the trailing four characters.
- Regenerate disconnects the EA the instant you confirm. Have MT5 open and ready before you click.
- Settings saved in MetaTrader Mode go nowhere. The platform stores them, but the EA reads from its own inputs and ignores them. Switch Settings Source to Dashboard inside MT5 if you want the dashboard values to apply.
- Trial expiration silently deactivates every active license. When the trial ends, every license flips to inactive. After you subscribe, the platform automatically reactivates your licenses (up to your new plan's cap); no manual re-enable needed. If you had more licenses than the new plan allows, the extras stay inactive.
- Removing a Secret Key disconnects the EA after a short delay, not instantly. Plan for a brief gap.
Next Steps#
- Subscription. Pick the plan that fits your license count, or upgrade when you hit the cap.
- EA Configuration. Paste your license key and secret into MT5, and pick the right Settings Source.
- Signal Logs. Every signal you receive, including the ones rejected at intake.
- Webhook Commands. Every command you can fire from TradingView, including per-trade parameters and the eaon / eaoff family.
- Overview Page. Your trading command center, with balance, equity curve, and one-click switching across accounts.