PARTICIPANT SETUP

Join the arena.

Connect one dedicated Alpaca paper account to the scoreboard. The official connector observes it; your credentials and strategy stay private.

The optional skill helps compatible AI assistants guide this setup. If your assistant cannot install skills, unzip it and attach SKILL.md—never your credentials.

01

Create a dedicated paper account

“Dedicated” means a separate paper account used only for this participant and tournament. You do not need a new Alpaca login or a live brokerage account.

  1. Sign in to Alpaca. Open the upper-left account selector and select Paper Trading.
  2. Choose Open New Paper Account and give it a recognizable name, such as YourName-TournamentName.
  3. Set the exact starting balance shown for your tournament in the Current tournaments panel. Leave Sync to your live account balance disabled.
  4. Confirm there are no positions and no open orders.

An existing paper account is acceptable only if it has the exact balance, no positions, no open orders, no unrelated bots, and no prior activity that could affect reporting. A new account is simpler.

02

Get both sets of keys

Alpaca paper credentials

  1. With the new paper account selected, open API Keys and generate a key and secret.
  2. Save the secret immediately; it may appear only once. Regenerating credentials invalidates the previous pair.

Use paper—not live—credentials. The endpoint stays fixed at https://paper-api.alpaca.markets.

Arena connector key

Your tournament administrator privately supplies your unique ta_… key. This is ARENA_CONNECTOR_KEY, not an Alpaca credential.

Never paste any credential into the Arena website, chat, an AI assistant, source control, screenshots, or support messages. Do not share or commit your connector key.

03

Set up a private local folder

Keep the folder outside a Git repository. Download the official arena_connector.py, then follow the instructions for your operating system.

macOS or Linux: .env

ARENA_URL="https://trading-arena-388.pages.dev"
ARENA_CONNECTOR_KEY="ta_replace_me"
APCA_API_KEY_ID="replace_me"
APCA_API_SECRET_KEY="replace_me"

Replace the three credential placeholders. Never share or commit .env. Optionally protect it with chmod 600 .env.

run.sh

#!/usr/bin/env bash
set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

set -a
source "$HERE/.env"
set +a

exec python3 "$HERE/arena_connector.py"

From that folder, run:

bash run.sh

Windows PowerShell: run.ps1

$ErrorActionPreference = "Stop"

$env:ARENA_URL="https://trading-arena-388.pages.dev"
$env:ARENA_CONNECTOR_KEY="ta_replace_me"
$env:APCA_API_KEY_ID="replace_me"
$env:APCA_API_SECRET_KEY="replace_me"

python "$PSScriptRoot\arena_connector.py"

Replace the three credential placeholders, save the file beside arena_connector.py, and run:

powershell -ExecutionPolicy Bypass -File .\run.ps1

Both .env and run.ps1 contain secrets. Keep your chosen file private, outside source control, and never send it to anyone.

04

Wait for READY or ACTIVE

IDLE
The tournament is not accepting observations yet or has finished.
READY
Preflight passed. Leave the connector running.
ACTIVE
The tournament is live and observations are being reported.
BLOCKED
Follow the non-secret reason on the same line.
ERROR
Diagnose the displayed non-secret error and retry.

Setup is complete only at READY or ACTIVE. During a live tournament, confirm your public scoreboard timestamp keeps advancing.

Keep the terminal running and the computer awake. Restart after a reboot, and never run multiple copies for one participant. The connector keeps a credential-free .trading-arena-state.sqlite3 file beside the script so it can queue observations during an Arena outage and replay them after reconnecting. Keep that file until the tournament and reconciliation finish. Automatic startup is an optional advanced setup for later.

QUICK FIXES

Troubleshooting

Never reveal credentials while troubleshooting.

Alpaca 401 or 403

  • Confirm the keys came from the selected paper account, not a live account.
  • Confirm the endpoint is exactly https://paper-api.alpaca.markets.
  • If keys were regenerated, update your private setup file and restart the connector.

BLOCKED

  • Check exact starting equity.
  • Check for positions or open orders.
  • Ensure no other bot uses the account.
  • Check the system clock.

Stale reporting

  • Confirm run.sh or run.ps1 is running.
  • Keep the computer awake.
  • Check outbound HTTPS.
  • Run only one connector instance.
  • Do not delete .trading-arena-state.sqlite3; queued observations upload automatically when Arena returns.
UploadedEquity and cash observations
Current positions
Executed fills
Never uploadedAlpaca credentials
Pending or unexecuted orders
Strategy logic or source code