Docs / User guide / Deliver broker credentials

Deliver broker credentials

This guide shows you how a broker password reaches your server encrypted, what PerkBridge keeps and what it does not, and how to remember a password on the server if you choose to.

Updated 26 Oct 2026·Version 0.x
Demo accounts only. Use broker demo accounts only. Remembered credentials are opt-in, need nile-vault on the server, and have not had an independent security review yet.

1. How delivery works

You type the broker login and password when you start a deployment. They are not stored by PerkBridge unless you choose to remember them on the server (section 5).

  1. Your browser sends them to the control plane over HTTPS.
  2. The control plane checks your permissions and seals them with HPKE to an encryption key that the target server’s agent created and holds. The sealed copy is bound to your organization, server, agent, deployment, this one session and a validity window (10 minutes by default).
  3. The sealed copy travels inside the signed start command over the agent’s mutual-TLS connection.
  4. The agent checks every binding itself, opens it, and writes the login to a short-lived file on a RAM disk. The terminal reads it once, and the file is overwritten and deleted.

The database, logs, audit events, backups and browser storage never hold the password. The only stored form is the sealed copy, which only that one agent’s key can open. It is deleted when the start finishes or expires.

2. Start with credentials

Create the deployment with Deliver once at start (see Deploy a trading account). The server’s agent must be connected, its policy must have remote.credential_delivery: true (servers added from the dashboard have it by default), and its encryption key must be confirmed.

  1. Open the deployment’s Credentials tab and choose Start with credentials.
  2. If you signed in more than about 15 minutes ago, confirm your identity first, with your password or with single sign-on.
  3. Enter the Broker account number (login) (digits only) and the Broker account password.
  4. Tick This is a demo account. Deliver these credentials once to this deployment’s session.
  5. Choose Send once and start.
A deployment's Credentials tab with the tab marked 1, Start with credentials marked 2 and the Remember credentials Turn on button marked 3.
1 The Credentials tab. 2 Start with credentials. 3 Turn on, for remembering the password (section 5).
The Start with credentials dialog with the broker login, password, demo tick box and Send once and start, numbered 1 to 4.
1 Broker account number (login). 2 Broker account password. 3 The demo account tick box. 4 Send once and start.

You need the credential:deliver and deployment:manage permissions. A request is never retried for you. If the connection drops, the page checks what happened and offers Check again, never a second send.

3. Read the result

The dashboard shows two separate values.

VALUEWHAT IT MEANS
Delivery stateHow far the sealed copy got, for example DISPATCHED, RECEIVED, APPLIED (the terminal read it), EXPIRED or FAILED.
Broker statusBROKER_AUTHORIZED or BROKER_AUTH_FAILED, taken only from the terminal’s own login journal. With no result within 5 minutes (the default) it shows BROKER_UNDETERMINED, never success.
The Credential deliveries section showing Delivery status APPLIED and Broker authorization BROKER_AUTHORIZED, numbered 1 and 2.
1 Delivery state. 2 Broker status, taken from the terminal’s own journal.

An applied delivery is not a broker login. If the start fails, start again with a new request; because sessions are single-use, you may need a new deployment.

Common refusals: agent_offline (nothing was sealed or stored), encryption_key_unavailable, reauthentication_required, credentials_required.

4. What delivery does not protect against

  • A compromised control plane. It sees the password in memory for the moment it takes to seal it, so it could capture passwords typed while it is compromised. It cannot open passwords delivered earlier.
  • Your server’s administrators. Root, members of the docker group, your hosting provider and the hypervisor can read the password on the host. The terminal itself holds it for the whole session.
  • Swap. Host swap can hold RAM-disk pages. Encrypted or disabled swap is your choice.
  • MT5’s own files. Whether MT5 writes a password-derived value inside the session has not been verified. The session’s files are on a RAM disk and are removed at cleanup.

Revoking an agent does not erase credentials already on that host. If you think a password leaked, change it at your broker.

5. Remember credentials on the server (optional)

If you do not want to type the password for every start, you can let your server remember it. The password is encrypted, and the key that opens it is split in two halves: one stays on the server in nile-vault, the other is kept by the control plane. Neither side alone can open it.

It is off by default and turned on per deployment. It needs:

  • a deployment created with Deliver once at start;
  • the control plane vault key (see Install the control plane);
  • nile-vault on the server, installed when you add it with Remember credentials on the server (section 6).

On the deployment’s Credentials tab, under Remember credentials on the server, enter the login and password, tick This is a demo account. Remember its password on this server. and choose Turn on and save. Later, choose Start with the remembered password. A start you make still needs a recent sign-in.

The Remember credentials on the server form after choosing Turn on, with login, password, two tick boxes and Turn on and save, numbered 1 to 5.
1 Broker account number (login). 2 Broker account password. 3 Also allow starts without a person (automatic use, optional). 4 The demo account tick box. 5 Turn on and save.

Automatic use. You can also allow starts with nobody present. PerkBridge then uses the remembered password only for starts you set up: a new session after a container or terminal failure, after a server reboot, or on a failover standby. Every such start begins with trading halted and is audited with the control plane as the actor. You can stop automatic use at any time.

Standby servers. When you choose a standby server for failover, PerkBridge copies the remembered record from the main server’s vault to the standby’s vault, sealed to that server. The password never passes through a new place in readable form. If the main server is offline, the copy waits, and you can type the password for the standby server instead. Turning failover off or choosing another standby erases the record there.

Choose Turn off to withdraw consent. The control plane’s half is deleted at once, and the page shows Erase on the server not confirmed yet until the server confirms with Erased from the server. Removing the deployment or its server also erases it. Erasing does not remove copies taken earlier, such as disk snapshots.

Tip. Backups never contain remembered passwords or the vault key. After a restore, or if the control plane’s vault volume is lost, every remembered deployment asks for its password again. Nothing at the broker changes.

6. nile-vault on the server

Choose Remember credentials on the server when you add a server, and setup installs nile-vault from the release bundle, starts it and connects it to the agent. Where the server has a TPM, the vault’s identity key is sealed to it. See Add a server.

The option is chosen only when the server is added. For a server added without it, remove the server and add it again with the option. Removing the server with host cleanup stops nile-vault and removes its stored halves.

The vault runs with no network, no Docker access and no capabilities, talks only to the agent, and refuses to start if it cannot lock its memory. It has not been reviewed independently yet.

Important. The split key protects stored copies: a server disk, a database copy or a backup alone cannot reveal the password. It does not protect against someone who controls the running server as root, or a compromised control plane. If either may have happened, change the broker password. Do not copy the control plane’s vault key into your own backups.

Terms used here are explained in the glossary.

Was this page helpful?