# Asset symbols

One canonical namespace, prefixed by asset class so identifiers never collide across categories.

## Tickers and the universe

A **ticker** is one tradeable instrument: an equity (`AAPL`) or a cryptocurrency (`X:BTCUSD`). The universe is roughly 12,000 US-listed equities plus the top 75 cryptocurrencies by market cap.

The **universe** is "every ticker we track." It's conceptual; not a parameter you pass. Universe-shaped queries (`/scan`, webhooks) return a set of matching tickers; ticker-scoped queries (`/tickers`, `/signals`) return data for one known ticker. Filter by sector, market cap, or any other column via the WHERE clause.

## The prefix table

We follow Polygon's prefix convention where they have one; commodities use our own prefix.

| Asset class | Prefix | Example |
|-------------|--------|---------|
| Equity | (none) | `AAPL`, `NVDA`, `SPY` |
| Cryptocurrency | `X:` | `X:BTCUSD`, `X:ETHUSD` |
| Forex | `C:` | `C:EURUSD`, `C:GBPJPY` |
| Commodity | `CMD:` | `CMD:GOLD`, `CMD:WTI` |

## No auto-resolution

The API doesn't guess. Passing `BTC` to a stock endpoint returns the Grayscale Bitcoin Mini Trust ETF — a real US-listed equity with that ticker — not bitcoin spot. If you want the cryptocurrency, ask for `X:BTCUSD`.

## Symbols that collide

- `BTC`: Grayscale Bitcoin Mini Trust ETF (equity) vs `X:BTCUSD` (bitcoin spot).
- `GOLD`: Barrick Gold Corp (equity) vs `CMD:GOLD` (gold spot).

## Equities vs. crypto

Equity and crypto tickers go through the same endpoints with the same response shapes. The differences:

- Crypto tickers don't have `session_open` / `session_high` / `session_low` (markets never close). Use the rolling 24-hour columns.
- Crypto tickers lack most fundamentals (`pe_ratio`, `eps`, `dividend_yield`). They have `market_cap`.
- Crypto tickers don't have corporate-event flags. `earnings_this_week` always `false`.
- Crypto refresh: 1 minute, 24/7. Equity refresh: 1 minute during 4 AM–8 PM ET, weekdays only. See https://tickerbot.io/api/refresh-cadence.
