Documentation

Documentation

3. Symbols & Ticker Formats

Created
Jun 5, 2026
Updated
Jun 21, 2026

A symbol identifies the instrument a chart shows. This page explains how to type symbols, how they resolve to a provider, and how the URL is normalized.

Typing a symbol

Symbols are case-insensitive and are normalized to uppercase. You can enter them in the toolbar's symbol input, in the URL (/chart/<symbol>), or pick them from a watchlist.

AAPL            # a US equity (resolves to Massive, then Alpaca)
BTCUSDT         # a Binance crypto spot pair
BTC-USDT        # an OKX crypto spot pair (dash-separated instId)
BTC-USDT-SWAP   # an OKX perpetual swap
BTC/USD         # a Kraken crypto spot pair (slash-separated)
PF_XBTUSD       # a Kraken perpetual future (XBT is Kraken's code for BTC)

Crypto symbol formats differ per provider: Binance concatenates (BTCUSDT), OKX uses dash-separated instrument IDs (BTC-USDT, BTC-USDT-SWAP), and Kraken uses a slash for spot (BTC/USD) and its exact perpetual id for futures (PF_XBTUSD). The symbol search dialog normalizes separators so typing BTCUSDT also surfaces BTC-USDT; Kraken instruments are searched exactly as Kraken names them (so search BTC/USD or PF_XBTUSD).

How resolution works

When you type a bare symbol, the app asks each provider whether it covers that symbol and picks the first match in priority order:

  1. Binance — crypto spot pairs and USDⓈ-M perpetual futures.
  2. OKX — crypto spot pairs and linear perpetual swaps.
  3. Kraken — crypto spot pairs and perpetual futures.
  4. Massive — US equities (preferred equity provider).
  5. Alpaca — US equities (used when Massive isn't configured or doesn't cover the symbol).

So a crypto pair goes to Binance first (then OKX, then Kraken), and an equity goes to Massive first, then Alpaca. If nothing matches, the symbol falls back to your Default provider.

Pinning a provider

Two ways force a specific provider when you don't want auto-resolution:

  • A query parameter: ?provider=massive, ?provider=alpaca, ?provider=binance, ?provider=okx, or ?provider=kraken.

    /chart/AAPL?provider=alpaca
    /chart/BTCUSDT?provider=binance
    /chart/BTC-USDT?provider=okx
    /chart/BTC-USDT-SWAP?provider=okx
    /chart/BTC%2FUSD?provider=kraken
  • A prefix on the symbol using the two-letter provider code, separated by a colon:

    PrefixProviderExample
    MA:MassiveMA:AAPL
    AL:AlpacaAL:AAPL
    BI:BinanceBI:BTCUSDT
    OK:OKXOK:BTC-USDT
    KR:KrakenKR:BTC/USD

    For perpetual contracts, add the asset-class token FU between the prefix and the ticker:

    OK:FU:BTC-USDT-SWAP   # OKX perpetual swap, forced to futures asset class
    BI:FU:BTCUSDT         # Binance USDⓈ-M perpetual futures
    KR:FU:PF_XBTUSD       # Kraken perpetual future

Use AL:AAPL to force Alpaca even when Massive is also configured, or OK:BTC-USDT / KR:BTC/USD to open the OKX or Kraken pair when the auto-resolved result would be Binance.

URL normalization

After a symbol resolves, the workspace rewrites the URL to a canonical form: the ticker is uppercased, and the provider parameter is added only when it is needed (an explicit or non-default provider). A panel parameter is preserved so you can deep-link straight into the Indicators, Backtesting, or AI panels. If a lookup fails upstream, the workspace still loads the chart from your input and surfaces a load error rather than failing the page.

Next steps

See how live data flows in.

Next: Realtime vs Delayed Data