BlueprintsAI TradingOperator Requirements

AI Trading Operator Requirements

A trading operator is accepting bots that can spend compute, disk, model credits, and possibly capital.

Run allowlist admission and paper mode first. Move to public admission or live trading only after you have watched the operator run and fail safely.

Host requirements

RequirementMinimumRecommended
CPU2 vCPU4 vCPU
RAM4 GB8 GB
Disk40 GB SSD80 GB SSD
OSUbuntu 22.04/24.04 or another systemd distroUbuntu 24.04
Archx86_64x86_64
DockerEngine 24+Engine 24+, daemon supervised
NetworkPublic IPv4, inbound 22 and 443TLS through Caddy or equivalent

The sidecar image is large and bot state grows. Do not run this on a tiny box and expect useful results.

Operator binaries

Blueprint IDBinaryShape
13trading-blueprintCloud fleet. Many bots per operator instance.
14trading-instance-blueprintOne bot per service instance.
15trading-tee-instance-blueprintOne bot per service instance with TEE requirements.

The production install script verifies release binary checksums and writes a systemd unit. Re-running the installer with a new tag upgrades the binary while leaving keystore, settings, and bot state alone.

Required state

ValueWhy
SERVICE_IDThe service instance the operator serves. The binary exits if this is missing.
BLUEPRINT_IDThe blueprint ID registered on the target network.
CHAIN_IDDrives chain-specific behavior and paper/live defaults.
HTTP_RPC_URL, WS_RPC_URLContract reads and event subscriptions.
BLUEPRINT_STATE_DIRBot state, learning state, envelopes, and operator records.
OPERATOR_API_PORTAdmin/control API. Current examples use 9200.
TRADING_API_PORTBot-facing trading API. Current examples use 9100.

Keep secrets in an untracked settings.env. The tracked settings.env.example is only a template.

Admission and capacity

SettingDefault stance
TRADING_REQUESTER_ACCESS_MODEallowlist. Stay there until you want anyone to consume your capacity.
TRADING_REQUESTER_ALLOWLISTAddresses allowed to request bots. The operator address is included by policy.
OPERATOR_MAX_CAPACITYKeep a hard number. 0 or unset means unlimited.
TRADING_ENABLE_DIRECT_BOT_CREATEKeep false outside local/dev harnesses.

Public admission means public cost exposure. Every accepted bot can use CPU, disk, and model budget.

Paper mode and AI keys

The operator install path defaults new bots to paper trading. Paper mode uses live market data and simulated fills; it should not move capital.

AI keys are optional. If you set ZAI_API_KEY, ANTHROPIC_API_KEY, TANGLE_API_KEY, or OpenCode model/env settings, agentic activation and chat can use those settings when the selected sidecar advertises OpenCode. Treat OpenCode as one harness inside the same capability model as Claude Code, Kimi Code, Codex, AMP, Factory Droids, Pi, Hermes, Forge, OpenClaw, ACP, Cursor, CLI base, or a smaller blueprint sidecar subset. The operator docs are clear: there is no built-in per-bot, per-day, or total LLM spend cap today. Use provider-side billing limits.

Public endpoint

The Arena discovers operators from on-chain registration and then calls the advertised operator endpoint.

Check from outside the host:

curl https://<your-domain>/health
curl https://<your-domain>/api/bots

Ports 9100 and 9200 should not be publicly exposed directly. Put TLS on 443 and proxy only what the product expects.

Registration proof

After funding gas and TNT stake, the operator install flow can register and self-request a service instance:

sudo ./deploy/operator-install.sh --register --request-service

Verify registration against the deployed Tangle contract, then hit the public health endpoint. Keep the service ID and operator address in your runbook.