Symbols
Auto supports symbol tracking and execution across connected exchanges.
Auto is not crypto-only: alongside crypto majors, HIP-3 markets on Hyperliquid give you tokenised equities, indices, commodities, FX, and pre-IPO names — all trading 24/7. See HIP-3 asset classes below, and Catalyst Triggers for the automations they enable.
Tracking vs execution
- Tracking: Symbols available on connected exchanges — crypto majors across perp venues (Hyperliquid, GMX, Binance), plus HIP-3 markets for tokenised equities, commodities, FX, and indices. Symbol availability is per-venue.
- Execution (
market_order,limit_order, orllmcallbacks that place trades): only symbols tradable as perps on the target venue are executable. Tradability is per-venue — a symbol may be tradable on some venues and not others. The action'sexchangeparam selects the venue; see Supported Venues.
Symbol formats
Crypto symbols
Use plain uppercase ticker symbols:
BTCETHSOLHYPE
HIP-3 symbols
HIP-3 markets are DEX-prefixed. Always use the prefixed form in Auto query
symbol fields and in trade actions:
<dex>:<SYMBOL>
xyz:TSLA,xyz:NVDA,xyz:GOLD,xyz:CL,xyz:SP500mkts:US500
A bare symbol is rejected. {"symbol": "GOLD"} fails validation with
EQL_INVALID_SYMBOL — "Condition symbol 'GOLD' is not supported for exchange
'hyperliquid'". Only plain crypto tickers (BTC, ETH) work without a prefix,
because those live on Hyperliquid's main DEX.
Which DEX prefix to use
In practice, xyz lists nearly everything and carries almost all the volume.
mkts lists a smaller overlapping set. Those are the two you'll use.
Hyperliquid hosts other HIP-3 DEXs whose markets are dormant — listed, but with no open interest and no trading. Auto does not accept them. A symbol on a dormant DEX is rejected exactly like a typo:
EQL_INVALID_SYMBOL — Condition symbol 'vntl:OPENAI' is not supported for exchange 'hyperliquid'
Auto's catalog only carries markets that actually trade. A market can exist on Hyperliquid, be visible in an explorer, and still be rejected here because nothing is trading on it.
The same asset is often listed on several DEXs — GOLD appears on six — but only
the liquid listing is usable. Don't assume a prefix; confirm the exact symbol with
Validate Symbol, and treat rejection as "this market is dead",
not "Auto is missing an asset".
HIP-3 asset classes
These markets trade 24/7, including when the underlying cash market is closed. See Catalyst Triggers for what that unlocks.
| Class | Examples |
|---|---|
| Indices | xyz:SP500, xyz:XYZ100 (Nasdaq 100), xyz:JP225, xyz:KR200, mkts:US500, mkts:USTECH |
| Sector & country baskets | xyz:SMH (semis), xyz:XLE (energy), xyz:EWY (Korea), xyz:EWJ (Japan) |
| Equities — mega-cap | xyz:NVDA, xyz:TSLA, xyz:AAPL, xyz:MSFT, xyz:GOOGL, xyz:AMZN, xyz:META, xyz:AVGO, xyz:ORCL, xyz:NFLX |
| Equities — semis & AI compute | xyz:AMD, xyz:TSM, xyz:ASML, xyz:ARM, xyz:MU, xyz:QCOM, xyz:CRWV, xyz:INTC, xyz:MRVL |
| Equities — high-beta & crypto-adjacent | xyz:COIN, xyz:MSTR, xyz:CRCL, xyz:HOOD, xyz:PLTR, xyz:GME, xyz:RKLB |
| Equities — international & ADRs | xyz:BABA, xyz:SMSN, xyz:HYUNDAI, xyz:SOFTBANK |
| Pre-IPO / private | xyz:SPCX (SpaceX), xyz:ZHIPU, xyz:MINIMAX |
| Commodities — energy | xyz:CL (WTI crude), xyz:BRENTOIL, xyz:NATGAS |
| Commodities — metals | xyz:GOLD, xyz:SILVER, xyz:COPPER, xyz:PLATINUM |
| FX | xyz:EUR, xyz:JPY, xyz:GBP |
| Crypto | BTC, ETH, SOL, HYPE (no prefix — main DEX) |
Illustrative, not exhaustive — and listings change. Markets are added, and markets go dormant and drop out of the catalog. Never hardcode this list: confirm any symbol with Validate Symbol before you build on it.
Composite tickers (funding / liquidation)
The funding and liquidation sources do not take a symbol plus an
exchange arg. They take a single composite ticker that carries the venue:
{SYMBOL}:{EXCHANGE}
For example BTC:BINANCE, ETH:HYPERLIQUID, SOL:BYBIT. SYMBOL is the base
asset (BTC, not BTCUSDT), and the ticker is normalized to uppercase.
Use each venue's own base-symbol convention — the multiplied-ticker variants differ between venues:
| Asset | Binance / Bybit | Hyperliquid |
|---|---|---|
| PEPE (1000x) | 1000PEPE | KPEPE |
HIP-3 dex-prefixed symbols (xyz:TSLA, xyz:GOLD) are valid for
price/ta conditions and for trade actions — but they are rejected for
funding and liquidation.
This trips people up because HIP-3 assets are real Hyperliquid perps and they do
appear in the market catalog. The funding and liquidation feeds simply never
publish keys for them, so a condition on one could never fire — Auto rejects it
up front (EQL_INVALID_ARG_VALUE, details.hip3: true) rather than accepting a
plan that would sit silent forever.
Full reference: Funding and Liquidations.
Fast path to first trade
- Pick the canonical query symbol (
BTCfor majors, or<dex>:<SYMBOL>for HIP-3). - Optionally pre-check the symbol with
GET /v2/auto/validate-symbol/{exchange}/{symbol}. - Submit a query with
market_orderorlimit_orderaction in API key mode, with an active exchange connection (see Trading Execution).
HIP-3 markets are tradable on hyperliquid only — GMX lists none of them, and
a HIP-3 symbol on gmx is rejected with EQL_INVALID_SYMBOL.
Validate symbols
If you want a pre-flight check before submitting a query, use GET /v2/auto/validate-symbol/{exchange}/{symbol} to verify a symbol is supported on a given venue. This applies to both trade execution (market_order / limit_order) and price / ta data sources.
curl https://api.elfa.ai/v2/auto/validate-symbol/hyperliquid/xyz:TSLA \
-H "x-elfa-api-key: $ELFA_API_KEY"
{ "supported": "true" }
Endpoint: GET /v2/auto/validate-symbol/{exchange}/{symbol}.
If a trade symbol is not tradable
- Order actions (
market_order,limit_order, orllmcallbacks to those) are rejected by trade-symbol validation for non-tradable symbols. - Typical fallback: keep the condition symbol, switch action to
notify/webhook/telegram_bot, and route execution externally if needed.
Templates
Tracking-only starter (alert/webhook path):
{
"title": "TSLA breakout tracker",
"description": "Track TSLA breakout and notify my runner.",
"query": {
"conditions": {
"AND": [
{
"source": "price",
"method": "current",
"args": { "symbol": "xyz:TSLA", "exchange": "hyperliquid" },
"operator": ">",
"value": 300
}
]
},
"actions": [
{
"stepId": "step_1",
"type": "telegram_bot",
"params": { "botToken": "<TELEGRAM_BOT_TOKEN>", "chatId": "<TELEGRAM_CHAT_ID>" }
}
],
"expiresIn": "24h"
}
}
Trade-executing starter (HIP-3, direct execution path):
{
"title": "Gold breakout — market buy",
"description": "Buy 50 USDC notional of gold once it breaks above 3400, any hour of the day.",
"query": {
"conditions": {
"AND": [
{
"source": "price",
"method": "current",
"args": { "symbol": "xyz:GOLD", "exchange": "hyperliquid" },
"operator": "crosses_above",
"value": 3400
}
]
},
"actions": [
{
"stepId": "step_1",
"type": "market_order",
"params": {
"exchange": "hyperliquid",
"symbol": "xyz:GOLD",
"side": "buy",
"amount": "50"
}
}
],
"expiresIn": "72h"
}
}
The same shape works for any HIP-3 market — swap xyz:GOLD for xyz:SP500,
xyz:NVDA, xyz:CL, or xyz:SPCX. For catalyst-driven versions of this
(fire the order when a rate decision or an earnings beat lands, not when a price
level is hit), see Catalyst Triggers.