Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/theonetrade/ai-trading-mcp/llms.txt

Use this file to discover all available pages before exploring further.

The symbol whitelist is the definitive list of Binance spot pairs that the trading engine is allowed to open and close positions on. It is set once at startup and enforced by the engine itself — not by prompt engineering. Any open_position call for a symbol that is not in the whitelist is immediately rejected before it reaches the broker.

Default Whitelist

When CC_SYMBOL_LIST is not set, the engine starts with these 13 pairs (defined in packages/main/src/config/params.ts):
#Symbol
1BTCUSDT
2POLUSDT
3ZECUSDT
4HYPEUSDT
5DOGEUSDT
6SOLUSDT
7PENGUUSDT
8TRXUSDT
9HBARUSDT
10NEARUSDT
11FARTCOINUSDT
12ETHUSDT
13PUMPUSDT

How the Whitelist Works

When the process starts, the engine iterates over every symbol in CC_SYMBOL_LIST and calls Live.background() for each one. This background loop:
  • Fetches and streams candle data for the symbol at the configured interval
  • Keeps the engine’s internal price and signal state up to date
  • Makes the symbol available as a valid target for open_position and close_position
Symbols outside the whitelist cannot be traded. The engine’s validation chain rejects any open_position call that names a symbol without a running background loop, and the error is relayed back to the agent as a typed isError response it can read and report. This is an engine-side guard — it cannot be bypassed by adjusting the prompt or the agent’s note field.

Customizing the Whitelist

Set the CC_SYMBOL_LIST environment variable to a comma-separated list of Binance spot symbols before starting the process:
export CC_SYMBOL_LIST=BTCUSDT,ETHUSDT,SOLUSDT
npm start -- --paper --entry ./content/manual.strategy/manual.strategy.ts --ui
You can also add it to your .env file:
CC_SYMBOL_LIST=BTCUSDT,ETHUSDT,SOLUSDT
A few rules to keep in mind when building a custom list:
  • Symbols must be valid Binance spot pairs. The ccxt exchange client calls loadMarkets() at startup and the engine will error on any symbol not returned by that call.
  • Pairs must use the Binance spot format (see Symbol Format below).
  • A process restart is required for any change to take effect. The background loops are started once at process init and are not dynamically reconfigurable.

Symbol Format

Use the Binance USDT-margined spot pair format: the base asset name concatenated directly with USDT, with no separator.
✅  BTCUSDT
✅  ETHUSDT
✅  SOLUSDT

❌  BTC/USDT   (ccxt universal format — not accepted here)
❌  BTC-USDT   (hyphen-separated — not a valid Binance spot id)
❌  XBTUSDT    (non-standard alias)
The underlying ccxt library uses the slash format (BTC/USDT) internally for some calls, but the whitelist and the open_position / close_position tool arguments expect the raw Binance symbol string without any separator.
Each symbol in the whitelist runs its own candle fetching loop and holds its own in-memory price and signal state. A larger whitelist means more concurrent API calls and higher memory usage. If you are running the rig on a resource-constrained host or under a tight Binance rate-limit tier, keep the list to the symbols you actively intend to trade.
In live mode, adding exotic or low-liquidity symbols can result in poor fill quality. The engine’s guaranteed entry methodology (limit order + poll, then cancel and market top-up for the remainder) still applies, but thin order books mean the market top-up leg may execute at a significant spread. Review Binance’s 24-hour volume and order book depth for any symbol before adding it to a live whitelist.

Build docs developers (and LLMs) love