import type { SourceRecord } from "@market-atlas/market-model"; /** * Source registry. A source is an organization/endpoint family; a connector is one technical * integration of a source. `family` groups sources believed to share an upstream so the consensus * engine does not count them as independent confirmations. */ export const SOURCES: SourceRecord[] = [ { id: "coinbase", name: "Coinbase Exchange", organization: "Coinbase Global, Inc.", sourceType: "WEBSOCKET", homepage: "https://exchange.coinbase.com", jurisdiction: "US", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "coinbase", category: "EXCHANGE", enabled: true }, { id: "kraken", name: "Kraken", organization: "Payward, Inc.", sourceType: "WEBSOCKET", homepage: "https://www.kraken.com", jurisdiction: "US", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "kraken", category: "EXCHANGE", enabled: true }, { id: "binance", name: "Binance", organization: "Binance", sourceType: "WEBSOCKET", homepage: "https://www.binance.com", jurisdiction: null, rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "binance", category: "EXCHANGE", enabled: true }, { id: "okx", name: "OKX", organization: "OKX", sourceType: "WEBSOCKET", homepage: "https://www.okx.com", jurisdiction: null, rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "okx", category: "EXCHANGE", enabled: true }, { id: "bitstamp", name: "Bitstamp", organization: "Bitstamp Ltd", sourceType: "WEBSOCKET", homepage: "https://www.bitstamp.net", jurisdiction: "GB", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "bitstamp", category: "EXCHANGE", enabled: true }, { id: "gemini", name: "Gemini", organization: "Gemini Trust Company, LLC", sourceType: "WEBSOCKET", homepage: "https://www.gemini.com", jurisdiction: "US", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "gemini", category: "EXCHANGE", enabled: true }, { id: "bitfinex", name: "Bitfinex", organization: "iFinex Inc.", sourceType: "WEBSOCKET", homepage: "https://www.bitfinex.com", jurisdiction: null, rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "bitfinex", category: "EXCHANGE", enabled: true }, { id: "bybit", name: "Bybit", organization: "Bybit", sourceType: "WEBSOCKET", homepage: "https://www.bybit.com", jurisdiction: null, rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "bybit", category: "EXCHANGE", enabled: true }, { id: "gate", name: "Gate", organization: "Gate Technology Inc.", sourceType: "WEBSOCKET", homepage: "https://www.gate.io", jurisdiction: null, rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "gate", category: "EXCHANGE", enabled: true }, { id: "cryptocom", name: "Crypto.com Exchange", organization: "Crypto.com", sourceType: "WEBSOCKET", homepage: "https://crypto.com/exchange", jurisdiction: "SG", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "cryptocom", category: "EXCHANGE", enabled: true }, { id: "kucoin", name: "KuCoin", organization: "KuCoin", sourceType: "WEBSOCKET", homepage: "https://www.kucoin.com", jurisdiction: "SC", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "kucoin", category: "EXCHANGE", enabled: true }, { id: "nasdaq-com", name: "Nasdaq.com — delayed quotes (validation only)", organization: "Nasdaq, Inc.", sourceType: "XHR", homepage: "https://www.nasdaq.com/market-activity", jurisdiction: "US", rightsStatus: "PUBLIC_RESTRICTED_REDISTRIBUTION", realtimeStatus: "DELAYED", family: "nasdaq", category: "EXCHANGE", enabled: true }, { id: "cboe", name: "Cboe Global Markets — delayed quotes", organization: "Cboe Global Markets", sourceType: "XHR", homepage: "https://www.cboe.com", jurisdiction: "US", rightsStatus: "DELAYED", realtimeStatus: "DELAYED", family: "cboe", category: "EXCHANGE", enabled: true }, { id: "ecb-frankfurter", name: "ECB euro foreign exchange reference rates (via Frankfurter)", organization: "European Central Bank", sourceType: "OFFICIAL_API", homepage: "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html", jurisdiction: "EU", rightsStatus: "OFFICIAL_OPEN_DATA", realtimeStatus: "END_OF_DAY", family: "ecb", category: "CENTRAL_BANK", enabled: true }, { id: "bank-of-canada", name: "Bank of Canada Valet API", organization: "Bank of Canada", sourceType: "OFFICIAL_API", homepage: "https://www.bankofcanada.ca/valet/docs", jurisdiction: "CA", rightsStatus: "OFFICIAL_OPEN_DATA", realtimeStatus: "END_OF_DAY", family: "bank-of-canada", category: "CENTRAL_BANK", enabled: true }, { id: "us-treasury", name: "U.S. Department of the Treasury — daily par yield curve", organization: "U.S. Department of the Treasury", sourceType: "XML", homepage: "https://home.treasury.gov/resource-center/data-chart-center/interest-rates", jurisdiction: "US", rightsStatus: "OFFICIAL_OPEN_DATA", realtimeStatus: "END_OF_DAY", family: "us-treasury", category: "GOVERNMENT", enabled: true }, { id: "sec-edgar", name: "SEC EDGAR", organization: "U.S. Securities and Exchange Commission", sourceType: "RSS", homepage: "https://www.sec.gov/edgar", jurisdiction: "US", rightsStatus: "OFFICIAL_OPEN_DATA", realtimeStatus: "REALTIME", family: "sec", category: "REGULATOR", enabled: true }, { id: "nasdaq-trader", name: "Nasdaq Trader", organization: "Nasdaq, Inc.", sourceType: "BULK_FILE", homepage: "https://www.nasdaqtrader.com", jurisdiction: "US", rightsStatus: "PUBLIC_ATTRIBUTED", realtimeStatus: "REALTIME", family: "nasdaq", category: "EXCHANGE", enabled: true }, { id: "hfmarketdata", name: "HF Market Data", organization: "spboucher.ai", sourceType: "OFFICIAL_API", homepage: "https://www.hfmarketdata.io", jurisdiction: "CA", rightsStatus: "LICENSED", realtimeStatus: "END_OF_DAY", family: "firstrate", category: "OFFICIAL_DATASET", enabled: true }, ]; export const sourceById = (id: string) => SOURCES.find((s) => s.id === id);