Market Data
Spot markets and AMM pairs: tickers, order books, trades and candles.
Alcor has two venues: spot order book markets and AMM pools. Both are described with the same ticker format.
A token id is <symbol>-<contract> in lower case, because any contract can issue a token with any symbol. A ticker id
joins two token ids, base first: <base>_<target>, e.g. tlm-alien.worlds_wax-eosio.token. Prices are in target per
one base.
The spot endpoints and the AMM feed follow the CoinGecko and CoinMarketCap DEX integration format, so they can be read by the same code.
Pairs
All spot markets.
GET https://wax.alcor.exchange/api/v2/pairs
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| base | string | no | Only markets with this base token id |
| target | string | no | Only markets with this target token id |
Example
curl "https://wax.alcor.exchange/api/v2/pairs?base=tlm-alien.worlds&target=wax-eosio.token"[
{
"base": { "id": "tlm-alien.worlds", "contract": "alien.worlds", "symbol": "TLM", "precision": 4 },
"target": { "id": "wax-eosio.token", "contract": "eosio.token", "symbol": "WAX", "precision": 8 },
"ticker_id": "tlm-alien.worlds_wax-eosio.token"
}
]Response fields
| Name | Type | Description |
|---|---|---|
| ticker_id | string | Ticker id, <base>_<target> |
| base, target | object | The tokens: id, contract, symbol, precision |
Tickers
Price and 24-hour volume of every spot market.
GET https://wax.alcor.exchange/api/v2/tickers
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| hide_scam | boolean | no | true leaves out markets with a token on the scam lists |
Example
curl "https://wax.alcor.exchange/api/v2/tickers?hide_scam=true"Answers an array of tickers, as in Ticker.
Ticker
Price and 24-hour volume of one spot market.
GET https://wax.alcor.exchange/api/v2/tickers/<ticker_id>
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker_id | string | yes | Ticker id, in the path |
Example
curl https://wax.alcor.exchange/api/v2/tickers/tlm-alien.worlds_wax-eosio.token{
"ticker_id": "tlm-alien.worlds_wax-eosio.token",
"market_id": 26,
"pool_id": "26",
"base_currency": "tlm-alien.worlds",
"target_currency": "wax-eosio.token",
"base_cmc_ucid": 9119,
"target_cmc_ucid": 2300,
"global_ticker_id": "TLM-WAX",
"last_price": 0.247012,
"change24": -1.69,
"high24": 0.25251933,
"low24": 0.247012,
"high": 0.25251933,
"low": 0.247012,
"bid": 0.247012,
"ask": 0.251,
"base_volume": 1207270.74,
"target_volume": 301555.69152662,
"volumeUSD24": 2146.47,
"volume90d": 10404146.15519762,
"base_amm_liquidity": 3945319.8557,
"target_amm_liquidity": 902460.1896641699,
"min_buy": 0.5,
"min_sell": 1,
"frozen": false,
"fee": 20,
"trade_url": "https://alcor.exchange/v/wax/spot/tlm-alien.worlds_wax-eosio.token"
}An unknown ticker answers HTTP 404.
Response fields
| Name | Type | Description |
|---|---|---|
| ticker_id | string | Ticker id |
| market_id | number | Spot market id on the DEX contract |
| pool_id | string | The same market id, as a string (CoinGecko field name) |
| base_currency, target_currency | string | Token ids |
| base_cmc_ucid, target_cmc_ucid | number | CoinMarketCap ids, or null |
| global_ticker_id | string | BASE-TARGET when CoinMarketCap lists both tokens, otherwise null |
| last_price | number | Price of the last trade |
| change24 | number | 24-hour price change, percent |
| high24, low24 | number | 24-hour price range |
| high, low | number | The same range, null for a market that has not traded |
| bid | number | Best buy order price |
| ask | number | Best sell order price |
| base_volume, target_volume | number | 24-hour volume in each token, spot trades plus the AMM pools of the same pair |
| volumeUSD24 | number | 24-hour volume in USD, spot plus AMM |
| volume90d | number | 90-day spot volume, in target |
| base_amm_liquidity, target_amm_liquidity | number | Tokens held by the AMM pools of the same pair |
| min_buy | number | Smallest buy order, in target |
| min_sell | number | Smallest sell order, in base |
| frozen | boolean | Trading is frozen |
| fee | number | Market fee in hundredths of a percent: 20 is 0.2% |
| trade_url | string | Market page on Alcor |
Order book
Price levels of a spot market, best first.
GET https://wax.alcor.exchange/api/v2/tickers/<ticker_id>/orderbook
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker_id | string | yes | Ticker id, in the path |
| depth | number | no | Price levels per side. Default 300 |
Example
curl "https://wax.alcor.exchange/api/v2/tickers/tlm-alien.worlds_wax-eosio.token/orderbook?depth=2"{
"ticker_id": "tlm-alien.worlds_wax-eosio.token",
"timestamp": 1792068184805,
"bids": [
["0.24701200", "14224.8352"],
["0.24625802", "500.0000"]
],
"asks": [
["0.25100000", "154048.5865"],
["0.25150125", "116243.9926"]
]
}Response fields
| Name | Type | Description |
|---|---|---|
| ticker_id | string | Ticker id |
| timestamp | number | Server time, unix milliseconds |
| bids | array | Buy levels, highest price first: [price, quantity] |
| asks | array | Sell levels, lowest price first: [price, quantity] |
Prices are in target per base, quantities in base. Orders at the same price are merged into one level.
Historical trades
The most recent trades of a spot market, oldest first.
GET https://wax.alcor.exchange/api/v2/tickers/<ticker_id>/historical_trades
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker_id | string | yes | Ticker id, in the path |
| type | string | no | buy or sell |
| limit | number | no | Number of trades. Default 200, maximum 1000; 0 returns the maximum |
| start_time | number | no | Only trades at or after this time, unix seconds |
| end_time | number | no | Only trades at or before this time, unix seconds |
Example
curl "https://wax.alcor.exchange/api/v2/tickers/tlm-alien.worlds_wax-eosio.token/historical_trades?limit=2"[
{
"trade_id": "6ad0881529945be352b4a651",
"price": 0.25,
"base_volume": 0.7387,
"target_volume": 0.18465495,
"trade_timestamp": 1792051221,
"type": "sell",
"trx_id": "996734af8d0c193c69940c745efa35fd34028f7b24461db7caf7507278ec2d92"
}
]Response fields
| Name | Type | Description |
|---|---|---|
| trade_id | string | Trade id |
| price | number | Trade price, target per base |
| base_volume | number | Amount of base traded |
| target_volume | number | Amount of target traded |
| trade_timestamp | number | Trade time, unix seconds |
| type | string | buy or sell, from the taker's side |
| trx_id | string | Transaction id |
Candles
OHLCV candles of a spot market, oldest first. Periods without trades are filled with flat candles at the last price.
GET https://wax.alcor.exchange/api/v2/tickers/<ticker_id>/charts
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker_id | string | yes | Ticker id, in the path |
| resolution | string | yes | Candle size: 1, 5, 15, 30, 60, 240 (minutes), 1D, 1W, 1M |
| from | number | yes | Start time, unix milliseconds |
| to | number | no | End time, unix milliseconds |
| limit | number | no | Most candles to return. Maximum and default 5000 |
Example
curl "https://wax.alcor.exchange/api/v2/tickers/tlm-alien.worlds_wax-eosio.token/charts?resolution=60&from=1792057410000&to=1792068210000"[
{ "time": 1792054800000, "open": 0.247012, "high": 0.247012, "low": 0.247012, "close": 0.247012, "volume": 0 },
{ "time": 1792058400000, "open": 0.247012, "high": 0.247012, "low": 0.247012, "close": 0.247012, "volume": 0.02573648 }
]Response fields
| Name | Type | Description |
|---|---|---|
| time | number | Candle start, unix milliseconds |
| open, high, low, close | number | Prices, target per base |
| volume | number | Volume in target |
AMM pairs
Active AMM pools, one entry per pool. A pool's ticker id follows its token order, <tokenA>_<tokenB>, so pools of
the same pair with different fees share a ticker id and are told apart by pool_id.
GET https://wax.alcor.exchange/api/v2/amm/pairs
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| min_liquidity_usd | number | no | Only pools with at least this TVL, in USD |
| hide_scam | boolean | no | true leaves out pools with a token on the scam lists |
Example
curl "https://wax.alcor.exchange/api/v2/amm/pairs?min_liquidity_usd=10000"[
{
"ticker_id": "wax-eosio.token_nbg-gkniftyheads",
"base": { "id": "wax-eosio.token", "contract": "eosio.token", "symbol": "WAX", "precision": 8 },
"target": { "id": "nbg-gkniftyheads", "contract": "gkniftyheads", "symbol": "NBG", "precision": 8 },
"pool_id": "9107"
}
]AMM tickers
Price, volume and liquidity of every active AMM pool, by TVL (highest first). Takes the same parameters as AMM pairs.
GET https://wax.alcor.exchange/api/v2/amm/tickers
Example
curl "https://wax.alcor.exchange/api/v2/amm/tickers?min_liquidity_usd=10000&hide_scam=true"[
{
"ticker_id": "parausd-parareserves_usdt-wrap.alcor",
"base_currency": "parausd-parareserves",
"target_currency": "usdt-wrap.alcor",
"base_cmc_ucid": null,
"target_cmc_ucid": 825,
"global_ticker_id": null,
"pool_id": "12468",
"last_price": 0.999038,
"base_volume": 232.622545,
"target_volume": 232.340836,
"liquidity_in_usd": 99908.95,
"high": null,
"low": null,
"volume_usd_24h": 232.36,
"fee_percent": 0.05,
"trade_url": "https://alcor.exchange/v/wax/swap/parausd-parareserves_usdt-wrap.alcor"
}
]Response fields
| Name | Type | Description |
|---|---|---|
| ticker_id | string | <tokenA>_<tokenB> |
| base_currency, target_currency | string | Token ids of token A and token B |
| base_cmc_ucid, target_cmc_ucid | number | CoinMarketCap ids, or null |
| global_ticker_id | string | BASE-TARGET when CoinMarketCap lists both tokens, otherwise null |
| pool_id | string | Pool id |
| last_price | number | Current pool price, target per base |
| base_volume, target_volume | number | 24-hour volume in each token |
| liquidity_in_usd | number | Pool TVL in USD |
| high, low | number | 24-hour price range, null when the pool has not traded |
| volume_usd_24h | number | 24-hour volume in USD |
| fee_percent | number | Pool fee, percent |
| trade_url | string | Swap page on Alcor |
AMM historical trades
The most recent swaps of all active pools of one ticker, oldest first.
GET https://wax.alcor.exchange/api/v2/amm/historical_trades
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker_id | string | yes | <tokenA>_<tokenB>, as in AMM pairs |
| type | string | no | buy or sell, the base token's side |
| limit | number | no | Number of trades. Default 200, maximum 1000; 0 returns the maximum |
| start_time | number | no | Only trades at or after this time, unix seconds |
| end_time | number | no | Only trades at or before this time, unix seconds |
Example
curl "https://wax.alcor.exchange/api/v2/amm/historical_trades?ticker_id=wax-eosio.token_usdt-usdt.alcor&limit=1"[
{
"trade_id": "110411821387",
"ticker_id": "wax-eosio.token_usdt-usdt.alcor",
"pool_id": "1095",
"price": 0.004925598210938818,
"base_volume": 87.80659353,
"target_volume": 0.4325,
"trade_timestamp": 1792065005,
"type": "buy",
"trx_id": "096bbefb42fe7e43580c68d05c02b95682b5c722b1fd01fb90fadf29e0abb90e"
}
]The fields are those of spot Historical trades, plus ticker_id and pool_id. trade_id is the
swap action's global sequence. A ticker without an active pool answers HTTP 404.