Atlas · Open source · MIT · Updated 2026-11-07
One ID for every real-world asset, on every venue.
Atlas is a free, open-source security master for real-world-asset and crypto perpetuals. It maps every equity, commodity, FX, index, pre-IPO and crypto contract on 28 CEX and DEX venues (Hyperliquid HIP-3, Avantis, Lighter, GRVT, Aster, Variational, Binance, Bybit, OKX and more) to one normalized ID and one Atlas asset. It keeps the delisted contracts, and it refreshes itself every day.
The problem
Same market, different names
Real-world assets have tickers, ISINs and exchanges of record. Their perpetuals do not. Every venue invents its own scheme: one names TSLA by ticker, another by a numeric market index, a third behind a deployer's dex: prefix. The same ticker can also mean a stock on one venue and an unrelated token on the next.
Join them by hand and the code works until it silently doesn't. Atlas does the mapping once, in the open, for everyone: each contract gets an Atlas ID, and each asset an Atlas asset ID that is the same on every venue.
| Venue | Native ID | Atlas ID |
|---|---|---|
| Hyperliquid Perpetuals + HIP-3 | xyz:TSLA | perpetual-XYZ:TSLA-USDC:USDC |
| Lighter Perpetuals | 112 | perpetual-TSLA-USDC:USDC |
| Avantis Perpetuals | 86 | perpetual-TSLA-USDC:USDC |
| Aster Perpetuals | tslausdt | perpetual-TSLA-USDT:USDT |
| GRVT Perpetuals | TSLA_USDT_Perp | perpetual-TSLA-USDT:USDT |
| Variational Perpetuals | TSLA | perpetual-TSLA-USDC:USDC |
| Extended Perpetuals | TSLA_24_5-USD | perpetual-TSLA_24_5-USD:USD |
| Atlas asset | Tesla · Equity · listed live on 18 venue snapshots | |
| Atlas unified ID | perpetual-TSLA-USDC:USDC (the same contract, written in asset IDs) | |
RWA first, crypto too
Every asset class the venues list
Each contract carries the asset class its venue declares. Click an asset to see every venue that lists it.
Commodities
FX
Indices
Pre-IPO
Crypto
Why it matters
Reference data for markets that never had any
A ticker is not an asset
SPX is a memecoin (SPX6900) on 14 live perpetual venues, while the S&P 500 trades as SP500, USA500 or US500 on 6. Atlas keys every contract on venue and native ID, then resolves it to an asset, so a stock never collides with a token that borrowed its ticker.
One asset, many names
Gold perpetuals trade as GOLD, XAU on 23 venue snapshots, and tokenized gold (PAXG) is a separate asset. Atlas gives the reference asset one ID, XAU, whatever the venue calls it.
FX has conventions
The euro trades as xyz:EUR on Hyperliquid, 96 on Lighter, 11 on Avantis, EUR-USD on Extended, EURUSD on Pacifica. Atlas reads them all as EUR priced in dollars, and keeps pairs not quoted in USD whole (USDJPY), so a quote is never silently inverted.
Pre-IPO and oracle-priced markets
64 live pre-IPO contracts (OPENAI, ANTHROPIC, OURA, MOONSHOT, PREDICT) and oracle-priced venues have no exchange ticker to lean on. Avantis names its markets by pair index: 86 is perpetual-TSLA-USDC:USDC.
Backtests that remember the dead
Exchange APIs only list what trades today. Atlas keeps all 31,259 delisted instruments with the day they stopped trading, 345 of them real-world-asset contracts, so a universe can be rebuilt as it was on any date.
An audit trail for free
The snapshots are plain JSON in git. Every listing, delisting and correction is a commit you can diff, blame and pin, so research can name the exact version of the universe it ran on.
Catalogue
Search 58,180 instruments
Search by ticker, native ID, Atlas ID, unified ID or asset ID. Filter by asset class, venue, type and status. Everything runs in your browser on the published snapshot.
| Venue | Native ID | Atlas ID | Asset | Class | Listed |
|---|---|---|---|---|---|
| The catalogue loads with JavaScript. Browse the venue pages or the raw files without it. | |||||
Coverage
56 venue snapshots, ordered by live RWA contracts
Bars show each venue's instruments by asset class: equities commodities FX indices pre-IPO crypto unclassified
Bitget
CEXbitget-spot- Equities 3,110
- Commodities 2
- Crypto 822
- +551 other
MEXC
CEXmexc-perps- Equities 537
- Commodities 22
- FX 8
- +718 other
Gate
CEXgateio-perps-usdt- Equities 439
- Commodities 15
- FX 4
- +1,203 other
Bitget
CEXbitget-perps-usdt- Equities 368
- Commodities 10
- Crypto 636
- +143 other
Kraken
CEXkraken-spot- Equities 354
- FX 13
- Crypto 1,457
- +409 other
Bybit
CEXbybit-perps-usd- Equities 302
- Commodities 4
- FX 4
- +921 other
OKX
CEXokx-perps- Equities 230
- Commodities 10
- Crypto 517
- +7 other
Binance
CEXbinance-futures- Equities 222
- Commodities 8
- FX 1
- +832 other
HTX
CEXhtx-perps-usdt- Equities 206
- Commodities 10
- Indices 7
- +663 other
OKX
CEXokx-spot- Equities 197
- Commodities 4
- Crypto 1,754
- +401 other
Crypto.com
CEXcryptocom-perps- Equities 175
- Commodities 8
- Pre-IPO 3
- +320 other
Hyperliquid
DEXhyperliquid-perps- Equities 181
- Commodities 34
- FX 7
- +328 other
Aster
DEXaster-perps- Equities 128
- Commodities 13
- Pre-IPO 9
- +489 other
Extended
DEXextended-perps- Equities 163
- Commodities 8
- FX 2
- +243 other
Variational
DEXvariational-perps- Equities 126
- Commodities 8
- Pre-IPO 2
- +438 other
Avantis
DEXavantis-perps- Equities 106
- Commodities 4
- FX 10
- +55 other
GRVT
DEXgrvt-perps- Equities 95
- Commodities 8
- Pre-IPO 3
- +78 other
Lighter
DEXlighter-perps- Equities 79
- Commodities 11
- FX 9
- +144 other
OKX
CEXokx-futures- Equities 91
- Commodities 36
- Crypto 5,695
- +251 other
WhiteBIT
CEXwhitebit-perps- Equities 85
- Commodities 8
- Crypto 302
Phemex
CEXphemex-perps- Equities 129
- Commodities 9
- Indices 11
- +922 other
Deribit
CEXderibit-perps- Equities 36
- Commodities 4
- Indices 1
- +108 other
Kraken
CEXkraken-perps- Equities 27
- Commodities 6
- FX 3
- +491 other
ApeX Omni
DEXapex-perps- Equities 30
- Commodities 6
- Indices 4
- +90 other
Pacifica
DEXpacifica-perps- Equities 14
- Commodities 8
- FX 2
- +54 other
Phemex
CEXphemex-spot- Equities 30
- Crypto 968
- Unclassified 6
Bitfinex
CEXbitfinex-perps- Commodities 4
- FX 2
- Indices 10
- +87 other
KuCoin
CEXkucoin-spot- Equities 11
- Crypto 967
- Unclassified 1,549
Bitstamp
CEXbitstamp-perps- Equities 2
- Commodities 4
- FX 1
- +13 other
Gemini
CEXgemini-spot- FX 6
- Crypto 330
- Unclassified 169
Hyperliquid
DEXhyperliquid-spot- Equities 5
- Crypto 122
- Unclassified 223
Binance
CEXbinance-spot- FX 4
- Crypto 2,999
- Unclassified 444
Bitstamp
CEXbitstamp-spot- FX 3
- Crypto 255
- Unclassified 160
Gate
CEXgateio-spot- Equities 6
- Crypto 2,425
- Unclassified 3,540
Bitfinex
CEXbitfinex-spot- FX 2
- Crypto 150
- Unclassified 628
HTX
CEXhtx-spot- Equities 1
- Commodities 1
- FX 2
- +1,898 other
Crypto.com
CEXcryptocom-spot- FX 1
- Crypto 567
- Unclassified 510
Coinbase
CEXcoinbase-spot- Equities 1
- Crypto 769
- Unclassified 143
Upbit
CEXupbit-spot- Crypto 881
- Unclassified 195
Poloniex
CEXpoloniex-spot- Crypto 873
- Unclassified 1,843
Bybit
CEXbybit-spot- Crypto 666
- Unclassified 397
Deribit
CEXderibit-futures- Crypto 290
- Unclassified 2,335
Bitget
CEXbitget-perps-usdc- Crypto 64
- Unclassified 2
Bybit
CEXbybit-futures- Crypto 552
- Unclassified 255
Binance
CEXbinance-futures-cm- Crypto 277
Gate
CEXgateio-futures-usdt- Crypto 78
Bybit
CEXbybit-perps-coin- Crypto 27
- Unclassified 1
Bitget
CEXbitget-perps-coin- Crypto 20
Gemini
CEXgemini-perps- Crypto 13
- Unclassified 43
Crypto.com
CEXcryptocom-futures- Crypto 12
- Unclassified 94
Kraken
CEXkraken-futures- Crypto 25
- Unclassified 689
HTX
CEXhtx-futures-coin- Crypto 17
HTX
CEXhtx-perps-coin- Crypto 5
- Unclassified 73
Bitget
CEXbitget-futures-coin- Crypto 4
HTX
CEXhtx-futures-usdt- Crypto 10
- Unclassified 567
Gate
CEXgateio-perps-btc- Crypto 21
- Unclassified 2
The symbology
Two IDs: the contract and the asset
The Atlas ID (internal_id) names the contract as the venue lists it. It is lossless, so it maps back to the venue's own instrument.
<type>-<symbol>-<denominator>[:<margin>][-<yyyymmdd>]
The unified ID writes the same contract in Atlas asset IDs, so it reads the same on every venue. Hyperliquid's xyz:TSLA and Bybit's TSLAUSDT both trade the asset TSLA.
- type
spot,perpetualorfuture.- symbol
- The base as the venue lists it.
1000PEPEstays1000PEPE, and a HIP-3 dex keeps its prefix. - denominator
- The quote or settlement currency the price is in.
- :margin
- The collateral asset. Derivatives only; it tells linear from inverse.
- -yyyymmdd
- The delivery date. Dated futures only.
- underlying
equity,commodity,forex,index,pre_marketorcrypto, from the venue's own metadata.
| Venue | Native ID | Atlas ID |
|---|---|---|
| Hyperliquid HIP-3 | xyz:TSLA | perpetual-XYZ:TSLA-USDC:USDC |
| Avantis | 11 (pair index) | perpetual-EUR-USDC:USDC |
| Extended | XAU-USD | perpetual-XAU-USD:USD |
| Bybit inverse | BTCUSD | perpetual-BTC-USD:BTC |
| Bybit futures | BTCUSDT-27MAR26 | future-BTC-USDT:USDT-20260327 |
| Binance spot | BTCUSDT | spot-BTC-USDT |
Each record also holds the contract size, margin asset, asset class, the Atlas asset IDs of every leg and the listing window: first_capture and, once it stops trading, end_date.
Quick start
Local lookups, no key
Python 3.12 or later. The snapshots ship with the package, so every lookup is a local dictionary read with no network call.
pip install git+https://github.com/aperiodic-io/atlas
Prefer plain data? Every snapshot is published as JSON next to this page, for example data/avantis-perps.json, and the whole catalogue as catalog/instruments.json.
from atlas import SecurityMaster
sm = SecurityMaster.load() # bundled snapshots, no network
# One stock, three venues, three native names
sm.base_asset("hyperliquid-perps", "xyz:TSLA").asset_id # 'TSLA'
sm.base_asset("bybit-perps-usd", "TSLAUSDT").asset_id # 'TSLA'
sm.base_asset("binance-futures", "tslausdt").asset_id # 'TSLA'
# Every venue that lists Tesla, live or delisted
sm.exchanges_for_asset("TSLA")
# Gold is XAU, whatever the venue calls it
sm.base_asset("hyperliquid-perps", "xyz:GOLD").asset_id # 'XAU'
# The full record: class, contract size, margin, listing window
sm.instrument_metadata("avantis-perps", "11")
# {'symbol': 'EUR', 'underlying': 'forex', 'margin': 'USDC', ...}
Kept up to date, in public
A daily pipeline you can read
- 01
Fetch
Every day at 02:00 UTC a GitHub Action reads each venue's whole current universe from that venue's own public API, for centralized and decentralized venues alike.
- 02
Merge
New listings are parsed into Atlas IDs. Delistings get an end date, and fields a source stops sending are kept, not wiped.
- 03
Resolve
Each contract is matched to an Atlas asset. The evidence is CoinMarketCap's own venue listings, venue lineage and cross-venue consensus, with reference assets for stocks, commodities and indices.
- 04
Publish
The snapshots are committed to git, the tests guard every parser, and this site rebuilds from the new data.