← Back to docs
Guide · Security

Register devices for code protection

'Protected storage' keeps your strategy code on our server as ciphertext only. Only this account and the devices (agents) it has signed can open the stored copy. This guide shows how to build that device list.

Status — protected storage is live (2026-10-14). For accounts logged in with a password, new strategies and allocators are protected by default; older strategies can be switched one by one or all at once from the 🛡 in the studio. This list is the set of devices that can open that code.

Who can open it

This account: opens it in a browser where you logged in with your password (the account key comes from an envelope that only your password or backup code opens). Signed devices: agents on the list below open it with their own key — that is how backtests and live runs work without a browser. The soritrading server: cannot open the stored ciphertext, and cannot change the list (signing happens only in your browser). Code does pass through the server when it is saved and when an AI reads it — see the limits below.

Steps

  1. Update the agent to 1.302.0 or later. It creates a device-only seal key (seal-key.json) and prints `[seal] code-seal key` with a 16-character fingerprint in its startup log.
  2. Log in with your password in this browser. The account key is prepared then, and the recipient list is created automatically if it does not exist.
  3. Trading menu → Agents. Under 'Connected agents' on the left, the 'Devices that can open protected code' panel shows one line per device.
  4. Select a device once in the list (encrypted connection) and it is registered automatically — nothing to press. You can check the fingerprint against the `seal` line in that device's log whenever you like.
  5. When the line says 'Signed ✓' you are done. The only manual case is 'Key changed' (reinstall etc.) — tick it only if you did it and the fingerprint matches, then [Sign and save].

資産 →

Line states and what to do

Signed — This device can open protected code.
Needs confirmation — New device — select it once in the list (encrypted connection) and it is registered automatically.
Key changed — It reported a different key than the one registered (reinstall or key file replaced). Tick and sign only if you did this yourself and the fingerprint matches the `[seal] code-seal key …` line in this device's log — otherwise leave it.
Key file error — The agent could not read its seal key file (seal-key.json). Check the `[seal]` line in the agent log. The file is never overwritten automatically.
Update needed — Currently vx.y.z — automatic registration needs agent 1.302.0. It appears here after updating.
Waiting for report — Version vx.y.z is fine but no key has been reported yet. Right after start, wait 1–10 minutes. If it stays like this, search `seal` in this device's Log tab.

FAQ

  • What if I remove a device? — It drops out on the next signature, and code saved after that cannot be opened by it. Past versions it already received cannot be taken back.
  • 'Key changed' — happens after reinstalling the agent or deleting seal-key.json. Tick again only if you did this and the fingerprint matches the log.
  • 'Log in again' — this browser has no account key (another browser, after logout, …). Log out and log in with your password. Device lines are visible before that too.
  • The fingerprint differs from the log — do not tick. The server or something in between may be presenting a different key. If it still differs after restarting that device, contact us.
  • Should I back up seal-key.json? — Recommended. Losing it does not lose your code (the account can still open it), but that device must be confirmed again with a new key.

Limits (honestly)

  • Code passes through our server in transit. The server encrypts it on arrival and does not store the original, but at the moment of saving, and when an AI (connector, wizard) reads it (your agent opens it for that one request), the code passes through server memory.
  • When you show code to a remote AI (subscription connector, API-key wizard), the code goes to that AI company at that moment. Protected storage stops it from staying on our server, not from being sent to an AI.
  • Strategy names, symbols and backtest results are not encrypted.
  • Your browser alone cannot detect the server re-presenting an older list (one that still had a removed device). That device was one you confirmed before, so the damage is limited to 'a removed device receives again'.
  • Removing a device does not erase past versions it already received.