Skip to main content

Symbols

Auto supports a broad symbol universe for tracking (conditions, alerts, webhooks, Telegram, LLM steps), while execution is narrower and tied to tradable perp markets.

Tracking vs execution

  • Tracking: DEX/on-chain (effectively unbounded — long-tail tokens, pre-CEX-listing assets, niche memes), crypto majors across CEXes and perp venues, plus HIP-3 markets on Hyperliquid for tokenised equities, commodities, FX, and indices; assume the majority of commonly requested symbols are already available.
  • Execution (market_order, limit_order, or llm callbacks that place trades): only symbols tradable as perps on the target venue are executable. Tradability is per-venue — a symbol may be tradable on hyperliquid, gmx, both, or neither. The action's exchange param selects the venue.

If you are building a monitoring-only query, you usually do not need a pre-check. If you are placing trades, you can optionally pre-check tradability before submitting order actions.

Symbol formats

Crypto symbols

Use plain uppercase ticker symbols:

  • BTC
  • ETH
  • SOL
  • HYPE

HIP-3 symbols

HIP-3 markets can come from multiple providers (for example xyz, flx, vntl, and others).

In Auto query symbol fields, use the provider-prefixed canonical symbol form:

  • xyz:WTIOIL
  • xyz:TSLA
  • xyz:NVDA
  • flx:OIL
  • flx:GOLD
  • vntl:OPENAI
  • vntl:MAG7

General pattern:

  • <provider>:<base_symbol> for provider-scoped HIP-3 symbols
  • <ticker> for standard crypto symbols

Asset classes (examples)

ClassExamplesNotes
OnchainRAVE, TAO, long-tail tokensBroad tracking coverage.
Crypto majorsBTC, ETH, SOL, HYPEUse plain ticker format.
Tokenised equities (HIP-3)xyz:TSLA, xyz:NVDA, flx:CRCL, vntl:SPACEXUse provider prefix form: <provider>:<base_symbol>.
Commodities (HIP-3)xyz:WTIOIL, flx:OIL, flx:GOLD, xyz:SILVERProvider prefix depends on listing venue.
FX / indices (HIP-3)xyz:EURUSD, xyz:USDJPY, xyz:XYZ100, flx:USA500Same prefix rule as other HIP-3 symbols.

These are examples, not an exhaustive list.

Symbol translation cheat sheet

Use this when you see pair-style market names and need the Auto query symbol value:

Seen in market listingsUse in Auto query symbol
TSLA-USDC on provider xyzxyz:TSLA
WTIOIL-USDC on provider xyzxyz:WTIOIL
EURUSD-USDC on provider xyzxyz:EURUSD
OIL-USDH on provider flxflx:OIL
OPENAI-USDH on provider vntlvntl:OPENAI
BTC (standard crypto ticker)BTC

Fast path to first trade

  1. Pick the canonical query symbol (BTC for majors, or <provider>:<base_symbol> for HIP-3).
  2. Optionally pre-check the symbol with GET /v2/auto/validate-symbol/{exchange}/{symbol} (exchange = hyperliquid or gmx).
  3. Submit a query with market_order or limit_order action in API key mode, with an active exchange connection (see Trading Execution).

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 (exchange = hyperliquid or gmx). 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" }

Reference: Validate Symbol.

If a trade symbol is not tradable

  • Order actions (market_order, limit_order, or llm callbacks to those) are rejected by trade-symbol validation for non-tradable symbols.
  • The same symbol can still be useful for tracking conditions and non-trade actions.
  • 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" },
"operator": ">",
"value": 300
}
]
},
"actions": [
{
"stepId": "step_1",
"type": "telegram_bot",
"params": { "botToken": "<TELEGRAM_BOT_TOKEN>", "chatId": "<TELEGRAM_CHAT_ID>" }
}
],
"expiresIn": "24h"
}
}

Trade-executing starter (direct execution path):

{
"title": "BTC > 80k market buy",
"description": "Buy 10 USDC notional of BTC once BTC trades above 80k.",
"query": {
"conditions": {
"AND": [
{
"source": "price",
"method": "current",
"args": { "symbol": "BTC" },
"operator": ">",
"value": 80000
}
]
},
"actions": [
{
"stepId": "step_1",
"type": "market_order",
"params": {
"exchange": "hyperliquid",
"symbol": "BTC",
"side": "buy",
"amount": "10"
}
}
],
"expiresIn": "24h"
}
}

Agent rule of thumb

  • For tracking-only workflows: proceed directly with the symbol you want.
  • For trade-executing workflows: submit create/convert directly when you already know the symbol is tradable; use validate-symbol when you want pre-flight certainty.