Ballast · invited beta

Your rules. Your trades. Automated.All guidesOrder flow & controlsTrade Desk

Ballast Trade Desk beta: tester guide

This is a free, invited beta. Your Trade Desk runs on a small server that you rent from DigitalOcean and control. Ballast is software, not investment advice, and makes no promise about results.

What you need

Trade Desk invite code and an email address if you were given a code instead. A code is valid for 30 days. Most codes admit one tester; a code shared with a group admits the first few testers who use it (each with their own email) and then says "This invite code has been used up." Ask for another one if that happens.

by you to DigitalOcean. Backups cost extra. Deleting the server stops the charges. Ballast charges nothing during the beta and has no access to your DigitalOcean account.

Three ways to set up

*Set up my Ballast Trade Desk using https://ballastdigital.xyz/desk/ai*. The same sentence works in the Claude desktop app, Claude Code on the command line, and Codex on the command line or in its app. Your own AI installs the signed Ballast setup skill, checks its signature, and walks you through: server, install, opening your desk, connecting Robinhood. Signing in, the four statements and your username stay on the setup page in your browser; the install command and tokens are typed by you in your own terminal window, never in the chat. See "With Claude Code or Codex" below.

time. The server is still created in your own DigitalOcean account and the install command is pasted into its console: DigitalOcean's API does not accept requests from web pages, and Ballast never holds your DigitalOcean password or token.

Set up (plain page)

your code and email and pick your username (yourname.ballastdigital.xyz); it cannot be changed later. Read and tick the four boxes. The button stays off until the four boxes are ticked and the fields are valid; anything missing is named under the field.

Basic > Regular > 2 GB, SSH key or password, then Create Droplet.

The command works once, for 60 minutes. It checks the installer's signature before running it, against the Ballast release key with this fingerprint (SHA-256 of the key): 3135 9FAC D4DE EBE3 AB80 6154 9FE1 3749 6E07 C538 C9AA 8B65 8AE3 3C37 FF2B 3C2A. The setup page shows the same fingerprint. If they differ, stop and email us.

one-time setup link and code. Open the link, enter the code, add a passkey and save your recovery codes.

With Claude Code or Codex

The skill (version 1.8.0) is a signed folder: the helper ballast-setup.mjs (Node 18 or newer, nothing else installed) and the assistant's playbook, which you can read at https://ballastdigital.xyz/desk/ai. Your AI runs every step and tells you in a sentence or two what each one does. You do not need a terminal. Your part is small: sign in, tick the four statements, press Copy twice, say yes or no to the server and its price, and set a passkey.

Your secrets do not go through the chat. When you press Copy, the helper reads the clipboard on your own computer and prints only how many characters it read. Your AI never sees the install command or your DigitalOcean token, and never reads the clipboard itself. Do not paste either one to your AI.

Your AI may ask you once to approve the setup commands (or to switch its mode for them) and tells you when that part is over. In Claude Code that is the permission mode; in Codex it is an approval request, because the helper needs network access and keeps its notes outside the project folder. If you prefer to approve each command yourself, say so; that works too.

too. Sign in to your Ballast account first if you have one; the page then shows your email and username. With an invite code instead, enter the code and your email; the page proposes a username (two words and a number) that you can keep, change with Suggest another, or replace with your own. Either way, read and tick the four statements yourself, press Get my install command, then press Copy and tell your AI. The helper reads the copied command, accepts only that exact command and never asks about the statements.

expiry 1 day, or the shortest offered), press Copy and tell your AI. Copy nothing else until the server exists. The helper first creates nothing: it shows the plan, which is your DigitalOcean account, the server's name, size and region, and the price. Your AI shows you that plan and asks. One server is created only after you answer yes to it. The token is held in memory for that command only and never sent to Ballast; delete it in DigitalOcean as soon as the server exists. A narrower token needs the custom scopes account:read, droplet:create, droplet:read, droplet:delete, image:read, regions:read and tag:create; that list is read from DigitalOcean's API reference and has not been confirmed by a test install. A token with only droplet create, read and delete is refused, and Regenerate keeps a token's old permissions. The install runs by itself on first boot.

your desk. Add a passkey and save your recovery codes.

the result goes to your desk encrypted. Nothing is written on your computer.

the key pair; you paste the public half into Robinhood and Robinhood's API key into the desk, both in your browser.

At any time, next says which step comes next and what your part in it is, and status shows where things stand. Both only read; neither prints a secret. After close your AI can still explain the desk's tour, lessons and settings in the desk's own words. It changes a setting only if you connect it to your desk and ask for that change. Your AI never goes live for you: when you ask, it walks you to the screen, and you accept the Terms and type GO LIVE yourself.

The helper never takes a piped answer as a confirmation. The one thing it asks you to type is DELETE, in capital letters, in your own terminal, and only if an install stopped and you choose to remove that server (recreate). If you would rather type your secrets yourself, you can run issue and create by hand in your own terminal: the prompts are hidden, a right-click pastes on Windows, and you type YES. That is your choice.

The helper keeps ~/.ballast-setup/state.json (step, username, server id, region; no secrets) and, until you run close, pairing.json (the key that unseals your setup link; useful only together with your own desk). If a step stops, it prints exactly what to do next. If your AI ever asks you to paste a code or token into the chat, do not: that is not how the skill works.

If the install stops

The setup page, the wizard and the helper show what the server is doing (preparing packages, downloading, checking the signature, installing, waiting for the certificate). If the install stops, they say "The install stopped:" followed by the reason. Nothing was switched to LIVE, and your username stays yours.

Ballast account, or with the same code and email (no new invite is needed while the desk never finished installing), and create a new server with the fresh command. With the helper: run recreate (it deletes the stopped server only after you type DELETE in capital letters, in your own terminal), then issue and create again.

again. Re-running is safe. If the helper created the server, DigitalOcean asks in the console for the root password it emailed you and makes you change it. The helper's status prints the console's exact address. If the page still says "Waiting for your server" after 15 minutes, the server stopped before it could report. Open the Droplet Console and read the end of /var/log/cloud-init-output.log, or email us.

After setup

own computer). Readiness and reconciliation checks run.

What Ballast keeps

Your email, your username, your server's public IP address and public key, and a daily check-in (username, time and app version). Your username is part of a public web name. Ballast never sees your broker logins, balances, orders, passwords or codes, and never sees your DigitalOcean token or your setup code.

If your desk is silent for 7 days, Ballast emails you. After 14 days the web name is removed and updates stop, so no one else can use the name. Ballast never switches off your server; anything running on it keeps running.

Deleting your server

Release your username before deleting the droplet. In the Droplet Console run sudo /usr/local/lib/ballast/ballast-desk-signal release, then delete the droplet in DigitalOcean. This removes your web name and update access; your username stays yours if you set up again.

Rebuilt or moved your server

On the setup page, use I rebuilt my server with your invite code and email. We email you a one-time link (60 minutes). You can move your username 3 times in 30 days. The old server stops getting updates.

Getting help

Email hello@ballastdigital.xyz. Ballast support never asks for your codes, passkeys, broker logins or DigitalOcean password, and never logs in to your server.