diff --git a/.github/scripts/aggregate_signals.py b/.github/scripts/aggregate_signals.py new file mode 100644 index 0000000..4197e4b --- /dev/null +++ b/.github/scripts/aggregate_signals.py @@ -0,0 +1,41 @@ +import json +import os +import sys +import yaml + +from collections import defaultdict, OrderedDict + + +def main(input_path: str, output_path: str): + shared_prefix_traits: dict[str, dict] = {} + + iter_ = os.walk(input_path) + root, dirs, files = iter_.__next__() + for d in dirs: + if (file := f"{d}.yaml") in files: + with open(os.path.join(root, file), 'r') as f: + shared_prefix_traits[d] = yaml.safe_load(f) + else: + print(f"Missing {d}.yaml") + exit(1) + + for root, _, files in iter_: + signal_ids: dict[str, OrderedDict] = defaultdict(OrderedDict) + prefix = root.split('/')[-1] + for file in sorted(files): + with open(os.path.join(root, file), 'r') as f: + signal_id = file.split('.')[0] + prefixed_signal_id = f"{prefix}:{signal_id}" + + signal_ids[prefixed_signal_id].update(yaml.safe_load(f)) + signal_ids[prefixed_signal_id].update(shared_prefix_traits[prefix]) + + if not os.path.exists(output_path): + os.makedirs(output_path) + + with open(f"{output_path}/registry.json", 'w') as f: + json.dump(signal_ids, f, indent=4) + + +if __name__ == '__main__': + main(*sys.argv[1:]) diff --git a/.github/scripts/validate.rs b/.github/scripts/validate.rs new file mode 100755 index 0000000..b1cd76a --- /dev/null +++ b/.github/scripts/validate.rs @@ -0,0 +1,31 @@ +#!/usr/bin/env rust-script +//! ```cargo +//! [dependencies] +//! serde_json = "1.0.128" +//! bothan-core = "0.0.1-alpha.3" +//! ``` + +use std::env; +use std::fs::File; +use std::io::BufReader; +use std::path::Path; + +use bothan_core::registry::{Invalid, Registry}; + +fn main() { + let args = env::args().collect::>(); + if args.len() != 2 { + eprintln!("unexpected arguments: {:?}", args); + std::process::exit(1); + } + + let path = Path::new(args[1].as_str()); + let registry: Registry = { + let file = File::open(path).expect("Failed to open registry file"); + let reader = BufReader::new(file); + serde_json::from_reader(reader).expect("Failed to parse registry file") + }; + registry.validate().expect("Registry is invalid"); + + println!("Registry is valid"); +} diff --git a/.github/workflows/aggregate_signals.yml b/.github/workflows/aggregate_signals.yml new file mode 100644 index 0000000..f0b2c76 --- /dev/null +++ b/.github/workflows/aggregate_signals.yml @@ -0,0 +1,50 @@ +name: Aggregate Signals + +on: + push: + +jobs: + aggregate-signal: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.11.2' + + - name: Install Python Dependencies + run: | + python -m pip install --upgrade pip + pip install pyyaml + + - name: Aggregate Signals + run: python .github/scripts/aggregate_signals.py ./signals ./registry + + - name: Cache Rust-Script + uses: actions/cache@v4 + with: + path: ~/.cache/rust-script + key: ${{ runner.os }}-rust-script-${{ hashFiles('.github/scripts/validate.rs') }} + restore-keys: | + ${{ runner.os }}-rust-script-${{ hashFiles('.github/scripts/validate.rs') }} + + - name: Setup Rust Toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + + - name: Install Rust Script + run: cargo install rust-script + + - name: Install Dependencies + run: sudo apt update && sudo apt-get install clang -y + + - name: Validate Aggregated Signals + run: .github/scripts/validate.rs registry/registry.json + + - name: Commit + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: aggregated signals diff --git a/CS.yaml b/CS.yaml deleted file mode 100644 index f56272f..0000000 --- a/CS.yaml +++ /dev/null @@ -1,4 +0,0 @@ -processor: - function: median - params: - min_source_count: 3 diff --git a/registry/registry.json b/registry/registry.json new file mode 100644 index 0000000..0fab94d --- /dev/null +++ b/registry/registry.json @@ -0,0 +1,10720 @@ +{ + "CS:1000SATS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "1000satsusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "1000satsusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "28683" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:1INCH-USD": { + "sources": [ + { + "source_id": "binance", + "id": "1inchusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "1INCH-USD" + }, + { + "source_id": "coingecko", + "id": "1inch" + }, + { + "source_id": "coinmarketcap", + "id": "8104" + }, + { + "source_id": "kraken", + "id": "1INCH/USD" + }, + { + "source_id": "okx", + "id": "1INCH-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "1INCH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AAVE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "aaveusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AAVE-USD" + }, + { + "source_id": "coingecko", + "id": "aave" + }, + { + "source_id": "coinmarketcap", + "id": "7278" + }, + { + "source_id": "kraken", + "id": "AAVE/USD" + }, + { + "source_id": "okx", + "id": "AAVE-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "AAVE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ABT-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "ABT-USD" + }, + { + "source_id": "coinmarketcap", + "id": "2545" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ADA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "adausdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "adausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ADA-USD" + }, + { + "source_id": "coinbase", + "id": "ADA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "cardano" + }, + { + "source_id": "coinmarketcap", + "id": "2010" + }, + { + "source_id": "kraken", + "id": "ADA/USD" + }, + { + "source_id": "kraken", + "id": "ADA/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ADA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ADA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AERO-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "AERO-USD" + }, + { + "source_id": "coingecko", + "id": "aerodrome-finance" + }, + { + "source_id": "coinmarketcap", + "id": "29270" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AEVO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "aevousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "aevo-exchange" + }, + { + "source_id": "coinmarketcap", + "id": "29676" + }, + { + "source_id": "kraken", + "id": "AEVO/USD" + }, + { + "source_id": "okx", + "id": "AEVO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AIOZ-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "AIOZ-USD" + }, + { + "source_id": "coingecko", + "id": "aioz-network" + }, + { + "source_id": "coinmarketcap", + "id": "9104" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AKT-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "AKT-USD" + }, + { + "source_id": "coingecko", + "id": "akash-network" + }, + { + "source_id": "coinmarketcap", + "id": "7431" + }, + { + "source_id": "kraken", + "id": "AKT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ALGO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "algousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "algousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ALGO-USD" + }, + { + "source_id": "coingecko", + "id": "algorand" + }, + { + "source_id": "coinmarketcap", + "id": "4030" + }, + { + "source_id": "kraken", + "id": "ALGO/USD" + }, + { + "source_id": "kraken", + "id": "ALGO/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ALGO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ALGO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ALT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "altusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "altusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "29073" + }, + { + "source_id": "kraken", + "id": "ALT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AMP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ampusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AMP-USD" + }, + { + "source_id": "coingecko", + "id": "amp-token" + }, + { + "source_id": "coinmarketcap", + "id": "6945" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ANKR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ankrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ANKR-USD" + }, + { + "source_id": "coingecko", + "id": "ankr" + }, + { + "source_id": "coinmarketcap", + "id": "3783" + }, + { + "source_id": "kraken", + "id": "ANKR/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ANT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "aragon" + }, + { + "source_id": "coinmarketcap", + "id": "1680" + }, + { + "source_id": "kraken", + "id": "ANT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:APE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "apeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "APE-USD" + }, + { + "source_id": "coinbase", + "id": "APE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "apecoin" + }, + { + "source_id": "coinmarketcap", + "id": "18876" + }, + { + "source_id": "kraken", + "id": "APE/USD" + }, + { + "source_id": "kraken", + "id": "APE/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "APE-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "APE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:APT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "aptusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "aptusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "APT-USD" + }, + { + "source_id": "coinbase", + "id": "APT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "aptos" + }, + { + "source_id": "coinmarketcap", + "id": "21794" + }, + { + "source_id": "kraken", + "id": "APT/USD" + }, + { + "source_id": "okx", + "id": "APT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "APT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "arusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "arusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "arweave" + }, + { + "source_id": "coinmarketcap", + "id": "5632" + }, + { + "source_id": "okx", + "id": "AR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "AR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ARB-USD": { + "sources": [ + { + "source_id": "binance", + "id": "arbusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "arbusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ARB-USD" + }, + { + "source_id": "coingecko", + "id": "arbitrum" + }, + { + "source_id": "coinmarketcap", + "id": "11841" + }, + { + "source_id": "kraken", + "id": "ARB/USD" + }, + { + "source_id": "okx", + "id": "ARB-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ARB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ARKM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "arkmusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "arkmusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ARKM-USD" + }, + { + "source_id": "coingecko", + "id": "arkham" + }, + { + "source_id": "coinmarketcap", + "id": "27565" + }, + { + "source_id": "kraken", + "id": "ARKM/USD" + }, + { + "source_id": "okx", + "id": "ARKM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ASTR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "astrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "astar" + }, + { + "source_id": "coinmarketcap", + "id": "12885" + }, + { + "source_id": "kraken", + "id": "ASTR/USD" + }, + { + "source_id": "okx", + "id": "ASTR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ASTR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ATH-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "aethir" + }, + { + "source_id": "coinmarketcap", + "id": "30083" + }, + { + "source_id": "okx", + "id": "ATH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ATOM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "atomusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "atomusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ATOM-USD" + }, + { + "source_id": "coinbase", + "id": "ATOM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "cosmos" + }, + { + "source_id": "coinmarketcap", + "id": "3794" + }, + { + "source_id": "kraken", + "id": "ATOM/USD" + }, + { + "source_id": "kraken", + "id": "ATOM/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ATOM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ATOM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AUDIO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "audiousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AUDIO-USD" + }, + { + "source_id": "coinmarketcap", + "id": "7455" + }, + { + "source_id": "kraken", + "id": "AUDIO/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AVAX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "avaxusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "avaxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AVAX-USD" + }, + { + "source_id": "coinbase", + "id": "AVAX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "avalanche-2" + }, + { + "source_id": "coinmarketcap", + "id": "5805" + }, + { + "source_id": "kraken", + "id": "AVAX/USD" + }, + { + "source_id": "kraken", + "id": "AVAX/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "AVAX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "AVAX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AXL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "axlusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AXL-USD" + }, + { + "source_id": "coingecko", + "id": "axelar" + }, + { + "source_id": "coinmarketcap", + "id": "17799" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:AXS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "axsusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "AXS-USD" + }, + { + "source_id": "coinbase", + "id": "AXS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "axie-infinity" + }, + { + "source_id": "coinmarketcap", + "id": "6783" + }, + { + "source_id": "kraken", + "id": "AXS/USD" + }, + { + "source_id": "okx", + "id": "AXS-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "AXS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BAND-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bandusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BAND-USD" + }, + { + "source_id": "coinmarketcap", + "id": "4679" + }, + { + "source_id": "kraken", + "id": "BAND/USD" + }, + { + "source_id": "okx", + "id": "BAND-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BAND-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BAT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "batusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BAT-USD" + }, + { + "source_id": "coingecko", + "id": "basic-attention-token" + }, + { + "source_id": "coinmarketcap", + "id": "1697" + }, + { + "source_id": "kraken", + "id": "BAT/USD" + }, + { + "source_id": "okx", + "id": "BAT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BAT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BCH-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bchusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "bchusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BCH-USD" + }, + { + "source_id": "coingecko", + "id": "bitcoin-cash" + }, + { + "source_id": "coinmarketcap", + "id": "1831" + }, + { + "source_id": "kraken", + "id": "BCH/USD" + }, + { + "source_id": "kraken", + "id": "BCH/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BCH-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BCH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BDX-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "beldex" + }, + { + "source_id": "coinmarketcap", + "id": "3987" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BEAM-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "beam-2" + }, + { + "source_id": "coinmarketcap", + "id": "28298" + }, + { + "source_id": "kraken", + "id": "BEAM/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BGB-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "bitget-token" + }, + { + "source_id": "coinmarketcap", + "id": "11092" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BICO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bicousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BICO-USD" + }, + { + "source_id": "coinbase", + "id": "BICO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "9543" + }, + { + "source_id": "kraken", + "id": "BICO/USD" + }, + { + "source_id": "okx", + "id": "BICO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BICO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BLAST-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "BLAST-USD" + }, + { + "source_id": "coinmarketcap", + "id": "28480" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BLUR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "blurusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "blurusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BLUR-USD" + }, + { + "source_id": "coingecko", + "id": "blur" + }, + { + "source_id": "coinmarketcap", + "id": "23121" + }, + { + "source_id": "kraken", + "id": "BLUR/USD" + }, + { + "source_id": "okx", + "id": "BLUR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BLUR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BNB-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bnbusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "bnbusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "binancecoin" + }, + { + "source_id": "coinmarketcap", + "id": "1839" + }, + { + "source_id": "okx", + "id": "BNB-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BNB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BNX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bnxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "23635" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BOME-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bomeusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "bomeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "book-of-meme" + }, + { + "source_id": "coinmarketcap", + "id": "29870" + }, + { + "source_id": "okx", + "id": "BOME-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BONK-USD": { + "sources": [ + { + "source_id": "binance", + "id": "bonkusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "bonkusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BONK-USD" + }, + { + "source_id": "coingecko", + "id": "bonk" + }, + { + "source_id": "coinmarketcap", + "id": "23095" + }, + { + "source_id": "kraken", + "id": "BONK/USD" + }, + { + "source_id": "okx", + "id": "BONK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BRETT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "based-brett" + }, + { + "source_id": "coinmarketcap", + "id": "29743" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BSV-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "bitcoin-cash-sv" + }, + { + "source_id": "coinmarketcap", + "id": "3602" + }, + { + "source_id": "okx", + "id": "BSV-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BSV-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BTC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "btcusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "btcusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "BTC-USD" + }, + { + "source_id": "coinbase", + "id": "BTC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "bitcoin" + }, + { + "source_id": "coinmarketcap", + "id": "1" + }, + { + "source_id": "kraken", + "id": "XBT/USD" + }, + { + "source_id": "kraken", + "id": "XBT/USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "kraken", + "id": "XBT/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BTC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "BTC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BTG-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "bitcoin-gold" + }, + { + "source_id": "coinmarketcap", + "id": "2083" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:BTT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "bittorrent" + }, + { + "source_id": "coinmarketcap", + "id": "16086" + }, + { + "source_id": "kraken", + "id": "BTT/USD" + }, + { + "source_id": "okx", + "id": "BTT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CAIR-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "28670" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CAKE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "cakeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "pancakeswap-token" + }, + { + "source_id": "coinmarketcap", + "id": "7186" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CAT-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "32724" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CELO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "celousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "celo" + }, + { + "source_id": "coinmarketcap", + "id": "5567" + }, + { + "source_id": "okx", + "id": "CELO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CFG-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "6748" + }, + { + "source_id": "kraken", + "id": "CFG/USD" + }, + { + "source_id": "okx", + "id": "CFG-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CFX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "cfxusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "cfxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "conflux-token" + }, + { + "source_id": "coinmarketcap", + "id": "7334" + }, + { + "source_id": "okx", + "id": "CFX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CFX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CHEEL-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "23054" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CHZ-USD": { + "sources": [ + { + "source_id": "binance", + "id": "chzusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "CHZ-USD" + }, + { + "source_id": "coinbase", + "id": "CHZ-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "chiliz" + }, + { + "source_id": "coinmarketcap", + "id": "4066" + }, + { + "source_id": "kraken", + "id": "CHZ/USD" + }, + { + "source_id": "okx", + "id": "CHZ-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CHZ-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CKB-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ckbusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ckbusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "nervos-network" + }, + { + "source_id": "coinmarketcap", + "id": "4948" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:COMP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "compusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "COMP-USD" + }, + { + "source_id": "coingecko", + "id": "compound-governance-token" + }, + { + "source_id": "coinmarketcap", + "id": "5692" + }, + { + "source_id": "kraken", + "id": "COMP/USD" + }, + { + "source_id": "okx", + "id": "COMP-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "COMP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CORE-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "coredaoorg" + }, + { + "source_id": "coinmarketcap", + "id": "23254" + }, + { + "source_id": "okx", + "id": "CORE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CRO-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "CRO-USD" + }, + { + "source_id": "coinbase", + "id": "CRO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "crypto-com-chain" + }, + { + "source_id": "coinmarketcap", + "id": "3635" + }, + { + "source_id": "okx", + "id": "CRO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CRO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CRV-USD": { + "sources": [ + { + "source_id": "binance", + "id": "crvusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "crvusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "CRV-USD" + }, + { + "source_id": "coingecko", + "id": "curve-dao-token" + }, + { + "source_id": "coinmarketcap", + "id": "6538" + }, + { + "source_id": "kraken", + "id": "CRV/USD" + }, + { + "source_id": "okx", + "id": "CRV-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CRV-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CTC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "5198" + }, + { + "source_id": "okx", + "id": "CTC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CTC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:CVX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "cvxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "CVX-USD" + }, + { + "source_id": "coinmarketcap", + "id": "9903" + }, + { + "source_id": "kraken", + "id": "CVX/USD" + }, + { + "source_id": "okx", + "id": "CVX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "CVX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DAI-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "DAI-USD" + }, + { + "source_id": "coingecko", + "id": "dai" + }, + { + "source_id": "coinmarketcap", + "id": "4943" + }, + { + "source_id": "kraken", + "id": "DAI/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DASH-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dashusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "DASH-USD" + }, + { + "source_id": "coingecko", + "id": "dash" + }, + { + "source_id": "coinmarketcap", + "id": "131" + }, + { + "source_id": "kraken", + "id": "DASH/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DCR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dcrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "1168" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DEXE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dexeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dexe" + }, + { + "source_id": "coinmarketcap", + "id": "7326" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DOG-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "dog-go-to-the-moon-rune" + }, + { + "source_id": "coinmarketcap", + "id": "30933" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DOGE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dogeusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "dogeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "DOGE-USD" + }, + { + "source_id": "coinbase", + "id": "DOGE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dogecoin" + }, + { + "source_id": "coinmarketcap", + "id": "74" + }, + { + "source_id": "kraken", + "id": "XDG/USD" + }, + { + "source_id": "kraken", + "id": "XDG/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "DOGE-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "DOGE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DOGS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dogsusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dogs-2" + }, + { + "source_id": "coinmarketcap", + "id": "32698" + }, + { + "source_id": "okx", + "id": "DOGS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DOT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dotusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "dotusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "DOT-USD" + }, + { + "source_id": "coinbase", + "id": "DOT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "polkadot" + }, + { + "source_id": "coinmarketcap", + "id": "6636" + }, + { + "source_id": "kraken", + "id": "DOT/USD" + }, + { + "source_id": "kraken", + "id": "DOT/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "DOT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "DOT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DSYNC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "29884" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DYDX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dydxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dydx-chain" + }, + { + "source_id": "coinmarketcap", + "id": "28324" + }, + { + "source_id": "kraken", + "id": "DYDX/USD" + }, + { + "source_id": "okx", + "id": "DYDX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "DYDX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:DYM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "dymusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dymension" + }, + { + "source_id": "coinmarketcap", + "id": "28932" + }, + { + "source_id": "kraken", + "id": "DYM/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:EDLC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "28112" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:EDU-USD": { + "sources": [ + { + "source_id": "binance", + "id": "eduusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "24613" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:EGLD-USD": { + "sources": [ + { + "source_id": "binance", + "id": "egldusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "EGLD-USD" + }, + { + "source_id": "coingecko", + "id": "elrond-erd-2" + }, + { + "source_id": "coinmarketcap", + "id": "6892" + }, + { + "source_id": "kraken", + "id": "EGLD/USD" + }, + { + "source_id": "okx", + "id": "EGLD-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "EGLD-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ELF-USD": { + "sources": [ + { + "source_id": "binance", + "id": "elfusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "aelf" + }, + { + "source_id": "coinmarketcap", + "id": "2299" + }, + { + "source_id": "okx", + "id": "ELF-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ENA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "enausdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "enausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ethena" + }, + { + "source_id": "coinmarketcap", + "id": "30171" + }, + { + "source_id": "kraken", + "id": "ENA/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ENJ-USD": { + "sources": [ + { + "source_id": "binance", + "id": "enjusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "enjincoin" + }, + { + "source_id": "coinmarketcap", + "id": "2130" + }, + { + "source_id": "kraken", + "id": "ENJ/USD" + }, + { + "source_id": "okx", + "id": "ENJ-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ENS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ensusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ensusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ENS-USD" + }, + { + "source_id": "coinbase", + "id": "ENS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ethereum-name-service" + }, + { + "source_id": "coinmarketcap", + "id": "13855" + }, + { + "source_id": "kraken", + "id": "ENS/USD" + }, + { + "source_id": "okx", + "id": "ENS-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ENS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:EOS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "eosusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "eosusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "EOS-USD" + }, + { + "source_id": "coingecko", + "id": "eos" + }, + { + "source_id": "coinmarketcap", + "id": "1765" + }, + { + "source_id": "kraken", + "id": "EOS/USD" + }, + { + "source_id": "kraken", + "id": "EOS/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "EOS-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "EOS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ETC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "etcusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ETC-USD" + }, + { + "source_id": "coingecko", + "id": "ethereum-classic" + }, + { + "source_id": "coinmarketcap", + "id": "1321" + }, + { + "source_id": "kraken", + "id": "ETC/USD" + }, + { + "source_id": "okx", + "id": "ETC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ETC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ETH-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ethusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ethusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ETH-USD" + }, + { + "source_id": "coinbase", + "id": "ETH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ethereum" + }, + { + "source_id": "coinmarketcap", + "id": "1027" + }, + { + "source_id": "kraken", + "id": "ETH/USD" + }, + { + "source_id": "kraken", + "id": "ETH/USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "kraken", + "id": "ETH/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ETH-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ETH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ETHDYDX-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "dydx" + }, + { + "source_id": "coinmarketcap", + "id": "11156" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ETHFI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ethfiusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ethfiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ether-fi" + }, + { + "source_id": "coinmarketcap", + "id": "29814" + }, + { + "source_id": "kraken", + "id": "ETHFI/USD" + }, + { + "source_id": "okx", + "id": "ETHFI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ETHW-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "ethereum-pow-iou" + }, + { + "source_id": "coinmarketcap", + "id": "21296" + }, + { + "source_id": "kraken", + "id": "ETHW/USD" + }, + { + "source_id": "okx", + "id": "ETHW-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ETHW-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FDUSD-USD": { + "sources": [ + { + "source_id": "binance", + "id": "fdusdusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "first-digital-usd" + }, + { + "source_id": "coinmarketcap", + "id": "26081" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FET-USD": { + "sources": [ + { + "source_id": "binance", + "id": "fetusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "fetusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "FET-USD" + }, + { + "source_id": "coinbase", + "id": "FET-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "fetch-ai" + }, + { + "source_id": "coinmarketcap", + "id": "3773" + }, + { + "source_id": "kraken", + "id": "FET/USD" + }, + { + "source_id": "okx", + "id": "FET-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FIL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "filusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "filusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "FIL-USD" + }, + { + "source_id": "coingecko", + "id": "filecoin" + }, + { + "source_id": "coinmarketcap", + "id": "2280" + }, + { + "source_id": "kraken", + "id": "FIL/USD" + }, + { + "source_id": "okx", + "id": "FIL-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "FIL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FLOKI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "flokiusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "flokiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "floki" + }, + { + "source_id": "coinmarketcap", + "id": "10804" + }, + { + "source_id": "kraken", + "id": "FLOKI/USD" + }, + { + "source_id": "okx", + "id": "FLOKI-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "FLOKI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FLOW-USD": { + "sources": [ + { + "source_id": "binance", + "id": "flowusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "FLOW-USD" + }, + { + "source_id": "coinbase", + "id": "FLOW-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "flow" + }, + { + "source_id": "coinmarketcap", + "id": "4558" + }, + { + "source_id": "kraken", + "id": "FLOW/USD" + }, + { + "source_id": "okx", + "id": "FLOW-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "FLOW-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FLR-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "FLR-USD" + }, + { + "source_id": "coingecko", + "id": "flare-networks" + }, + { + "source_id": "coinmarketcap", + "id": "7950" + }, + { + "source_id": "kraken", + "id": "FLR/USD" + }, + { + "source_id": "okx", + "id": "FLR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "FLR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FLUX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "fluxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "zelcash" + }, + { + "source_id": "coinmarketcap", + "id": "3029" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FLZ-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "20787" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FNSA-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "4512" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FRAX-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "frax" + }, + { + "source_id": "coinmarketcap", + "id": "6952" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FTM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ftmusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ftmusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "fantom" + }, + { + "source_id": "coinmarketcap", + "id": "3513" + }, + { + "source_id": "kraken", + "id": "FTM/USD" + }, + { + "source_id": "okx", + "id": "FTM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "FTM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FTN-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "fasttoken" + }, + { + "source_id": "coinmarketcap", + "id": "22615" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:FTT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "fttusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "4195" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:G-USD": { + "sources": [ + { + "source_id": "binance", + "id": "gusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "G-USD" + }, + { + "source_id": "coingecko", + "id": "g-token" + }, + { + "source_id": "coinmarketcap", + "id": "32120" + }, + { + "source_id": "okx", + "id": "G-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GAL-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "GAL-USD" + }, + { + "source_id": "coingecko", + "id": "project-galaxy" + }, + { + "source_id": "coinmarketcap", + "id": "11877" + }, + { + "source_id": "kraken", + "id": "GAL/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GALA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "galausdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "galausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "gala" + }, + { + "source_id": "coinmarketcap", + "id": "7080" + }, + { + "source_id": "kraken", + "id": "GALA/USD" + }, + { + "source_id": "okx", + "id": "GALA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "GALA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GAS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "gasusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "gas" + }, + { + "source_id": "coinmarketcap", + "id": "1785" + }, + { + "source_id": "okx", + "id": "GAS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GIGA-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "30063" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GLM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "glmusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "GLM-USD" + }, + { + "source_id": "coingecko", + "id": "golem" + }, + { + "source_id": "coinmarketcap", + "id": "1455" + }, + { + "source_id": "okx", + "id": "GLM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "GLM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GLMR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "glmrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "6836" + }, + { + "source_id": "kraken", + "id": "GLMR/USD" + }, + { + "source_id": "okx", + "id": "GLMR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "GLMR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GMT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "gmtusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "GMT-USD" + }, + { + "source_id": "coinbase", + "id": "GMT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "stepn" + }, + { + "source_id": "coinmarketcap", + "id": "18069" + }, + { + "source_id": "kraken", + "id": "GMT/USD" + }, + { + "source_id": "okx", + "id": "GMT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "GMT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GMX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "gmxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "gmx" + }, + { + "source_id": "coinmarketcap", + "id": "11857" + }, + { + "source_id": "kraken", + "id": "GMX/USD" + }, + { + "source_id": "okx", + "id": "GMX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GNO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "gnousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "GNO-USD" + }, + { + "source_id": "coingecko", + "id": "gnosis" + }, + { + "source_id": "coinmarketcap", + "id": "1659" + }, + { + "source_id": "kraken", + "id": "GNO/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GRT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "grtusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "GRT-USD" + }, + { + "source_id": "coingecko", + "id": "the-graph" + }, + { + "source_id": "coinmarketcap", + "id": "6719" + }, + { + "source_id": "kraken", + "id": "GRT/USD" + }, + { + "source_id": "okx", + "id": "GRT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "GRT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:GT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "gatechain-token" + }, + { + "source_id": "coinmarketcap", + "id": "4269" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:H2O-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "h2o-dao" + }, + { + "source_id": "coinmarketcap", + "id": "19091" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:HBAR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "hbarusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "HBAR-USD" + }, + { + "source_id": "coinbase", + "id": "HBAR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "hedera-hashgraph" + }, + { + "source_id": "coinmarketcap", + "id": "4642" + }, + { + "source_id": "okx", + "id": "HBAR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "HBAR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:HNT-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "HNT-USD" + }, + { + "source_id": "coingecko", + "id": "helium" + }, + { + "source_id": "coinmarketcap", + "id": "5665" + }, + { + "source_id": "kraken", + "id": "HNT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:HONEY-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "HONEY-USD" + }, + { + "source_id": "coinmarketcap", + "id": "22850" + }, + { + "source_id": "kraken", + "id": "HONEY/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:HOT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "hotusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "holotoken" + }, + { + "source_id": "coinmarketcap", + "id": "2682" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ICP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "icpusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "icpusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ICP-USD" + }, + { + "source_id": "coinbase", + "id": "ICP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "internet-computer" + }, + { + "source_id": "coinmarketcap", + "id": "8916" + }, + { + "source_id": "kraken", + "id": "ICP/USD" + }, + { + "source_id": "okx", + "id": "ICP-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ICP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ID-USD": { + "sources": [ + { + "source_id": "binance", + "id": "idusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "21846" + }, + { + "source_id": "okx", + "id": "ID-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ILV-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ilvusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ILV-USD" + }, + { + "source_id": "coingecko", + "id": "illuvium" + }, + { + "source_id": "coinmarketcap", + "id": "8719" + }, + { + "source_id": "okx", + "id": "ILV-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:IMX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "imxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "IMX-USD" + }, + { + "source_id": "coinbase", + "id": "IMX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "immutable-x" + }, + { + "source_id": "coinmarketcap", + "id": "10603" + }, + { + "source_id": "kraken", + "id": "IMX/USD" + }, + { + "source_id": "okx", + "id": "IMX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "IMX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:INJ-USD": { + "sources": [ + { + "source_id": "binance", + "id": "injusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "injusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "INJ-USD" + }, + { + "source_id": "coingecko", + "id": "injective-protocol" + }, + { + "source_id": "coinmarketcap", + "id": "7226" + }, + { + "source_id": "kraken", + "id": "INJ/USD" + }, + { + "source_id": "okx", + "id": "INJ-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:IO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "iousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "iousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "29835" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:IOTA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "iotausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "iota" + }, + { + "source_id": "coinmarketcap", + "id": "1720" + }, + { + "source_id": "okx", + "id": "IOTA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "IOTA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:IOTX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "iotxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "IOTX-USD" + }, + { + "source_id": "coingecko", + "id": "iotex" + }, + { + "source_id": "coinmarketcap", + "id": "2777" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:IPV-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "28367" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:JASMY-USD": { + "sources": [ + { + "source_id": "binance", + "id": "jasmyusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "JASMY-USD" + }, + { + "source_id": "coinbase", + "id": "JASMY-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "jasmycoin" + }, + { + "source_id": "coinmarketcap", + "id": "8425" + }, + { + "source_id": "kraken", + "id": "JASMY/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:JST-USD": { + "sources": [ + { + "source_id": "binance", + "id": "jstusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "just" + }, + { + "source_id": "coinmarketcap", + "id": "5488" + }, + { + "source_id": "okx", + "id": "JST-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:JTO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "jtousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "jtousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "JTO-USD" + }, + { + "source_id": "coingecko", + "id": "jito-governance-token" + }, + { + "source_id": "coinmarketcap", + "id": "28541" + }, + { + "source_id": "kraken", + "id": "JTO/USD" + }, + { + "source_id": "okx", + "id": "JTO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "JTO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:JUP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "jupusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "jupusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "jupiter-exchange-solana" + }, + { + "source_id": "coinmarketcap", + "id": "29210" + }, + { + "source_id": "kraken", + "id": "JUP/USD" + }, + { + "source_id": "okx", + "id": "JUP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:KAS-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "kaspa" + }, + { + "source_id": "coinmarketcap", + "id": "20396" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:KAVA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "kavausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "KAVA-USD" + }, + { + "source_id": "coingecko", + "id": "kava" + }, + { + "source_id": "coinmarketcap", + "id": "4846" + }, + { + "source_id": "kraken", + "id": "KAVA/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:KCS-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "kucoin-shares" + }, + { + "source_id": "coinmarketcap", + "id": "2087" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:KLAY-USD": { + "sources": [ + { + "source_id": "binance", + "id": "klayusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "klay-token" + }, + { + "source_id": "coinmarketcap", + "id": "4256" + }, + { + "source_id": "okx", + "id": "KLAY-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "KLAY-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:KSM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ksmusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "KSM-USD" + }, + { + "source_id": "coingecko", + "id": "kusama" + }, + { + "source_id": "coinmarketcap", + "id": "5034" + }, + { + "source_id": "kraken", + "id": "KSM/USD" + }, + { + "source_id": "okx", + "id": "KSM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "KSM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LDO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ldousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ldousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "LDO-USD" + }, + { + "source_id": "coingecko", + "id": "lido-dao" + }, + { + "source_id": "coinmarketcap", + "id": "8000" + }, + { + "source_id": "kraken", + "id": "LDO/USD" + }, + { + "source_id": "okx", + "id": "LDO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LDO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LEO-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "leo-token" + }, + { + "source_id": "coinmarketcap", + "id": "3957" + }, + { + "source_id": "okx", + "id": "LEO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LINK-USD": { + "sources": [ + { + "source_id": "binance", + "id": "linkusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "linkusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "LINK-USD" + }, + { + "source_id": "coinbase", + "id": "LINK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "chainlink" + }, + { + "source_id": "coinmarketcap", + "id": "1975" + }, + { + "source_id": "kraken", + "id": "LINK/USD" + }, + { + "source_id": "kraken", + "id": "LINK/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LINK-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LINK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LPT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "lptusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "LPT-USD" + }, + { + "source_id": "coingecko", + "id": "livepeer" + }, + { + "source_id": "coinmarketcap", + "id": "3640" + }, + { + "source_id": "kraken", + "id": "LPT/USD" + }, + { + "source_id": "okx", + "id": "LPT-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LPT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LRC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "lrcusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "LRC-USD" + }, + { + "source_id": "coinbase", + "id": "LRC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "1934" + }, + { + "source_id": "kraken", + "id": "LRC/USD" + }, + { + "source_id": "okx", + "id": "LRC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LRC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LTC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ltcusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ltcusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "LTC-USD" + }, + { + "source_id": "coingecko", + "id": "litecoin" + }, + { + "source_id": "coinmarketcap", + "id": "2" + }, + { + "source_id": "kraken", + "id": "LTC/USD" + }, + { + "source_id": "kraken", + "id": "LTC/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LTC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LTC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LUNA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "lunausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "terra-luna-2" + }, + { + "source_id": "coinmarketcap", + "id": "20314" + }, + { + "source_id": "kraken", + "id": "LUNA/USD" + }, + { + "source_id": "okx", + "id": "LUNA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LUNA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:LUNC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "luncusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "terra-luna" + }, + { + "source_id": "coinmarketcap", + "id": "4172" + }, + { + "source_id": "okx", + "id": "LUNC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "LUNC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MANA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "manausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "MANA-USD" + }, + { + "source_id": "coingecko", + "id": "decentraland" + }, + { + "source_id": "coinmarketcap", + "id": "1966" + }, + { + "source_id": "kraken", + "id": "MANA/USD" + }, + { + "source_id": "kraken", + "id": "MANA/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MANA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MANA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MANTA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "mantausdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "mantausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "manta-network" + }, + { + "source_id": "coinmarketcap", + "id": "13631" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MASK-USD": { + "sources": [ + { + "source_id": "binance", + "id": "maskusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "MASK-USD" + }, + { + "source_id": "coinbase", + "id": "MASK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "mask-network" + }, + { + "source_id": "coinmarketcap", + "id": "8536" + }, + { + "source_id": "kraken", + "id": "MASK/USD" + }, + { + "source_id": "okx", + "id": "MASK-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MASK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MATIC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "maticusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "maticusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "MATIC-USD" + }, + { + "source_id": "coinbase", + "id": "MATIC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "matic-network" + }, + { + "source_id": "coinmarketcap", + "id": "3890" + }, + { + "source_id": "kraken", + "id": "MATIC/USD" + }, + { + "source_id": "kraken", + "id": "MATIC/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MATIC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MATIC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MEME-USD": { + "sources": [ + { + "source_id": "binance", + "id": "memeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "memecoin-2" + }, + { + "source_id": "coinmarketcap", + "id": "28301" + }, + { + "source_id": "okx", + "id": "MEME-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:METIS-USD": { + "sources": [ + { + "source_id": "binance", + "id": "metisusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "METIS-USD" + }, + { + "source_id": "coingecko", + "id": "metis-token" + }, + { + "source_id": "coinmarketcap", + "id": "9640" + }, + { + "source_id": "okx", + "id": "METIS-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "METIS-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MEW-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "cat-in-a-dogs-world" + }, + { + "source_id": "coinmarketcap", + "id": "30126" + }, + { + "source_id": "okx", + "id": "MEW-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MGC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "29839" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MINA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "minausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "MINA-USD" + }, + { + "source_id": "coinbase", + "id": "MINA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "mina-protocol" + }, + { + "source_id": "coinmarketcap", + "id": "8646" + }, + { + "source_id": "kraken", + "id": "MINA/USD" + }, + { + "source_id": "okx", + "id": "MINA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MINA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MKR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "mkrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "MKR-USD" + }, + { + "source_id": "coingecko", + "id": "maker" + }, + { + "source_id": "coinmarketcap", + "id": "1518" + }, + { + "source_id": "kraken", + "id": "MKR/USD" + }, + { + "source_id": "okx", + "id": "MKR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "MKR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MNT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "mantle" + }, + { + "source_id": "coinmarketcap", + "id": "27075" + }, + { + "source_id": "kraken", + "id": "MNT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MOG-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "mog-coin" + }, + { + "source_id": "coinmarketcap", + "id": "27659" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MWC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "5031" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:MX-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "mx-token" + }, + { + "source_id": "coinmarketcap", + "id": "4041" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:NEAR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "nearusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "nearusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "NEAR-USD" + }, + { + "source_id": "coinbase", + "id": "NEAR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "near" + }, + { + "source_id": "coinmarketcap", + "id": "6535" + }, + { + "source_id": "kraken", + "id": "NEAR/USD" + }, + { + "source_id": "okx", + "id": "NEAR-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "NEAR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:NEO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "neousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "neousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "neo" + }, + { + "source_id": "coinmarketcap", + "id": "1376" + }, + { + "source_id": "okx", + "id": "NEO-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "NEO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:NEXO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "nexousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "nexo" + }, + { + "source_id": "coinmarketcap", + "id": "2694" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:NFT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "apenft" + }, + { + "source_id": "coinmarketcap", + "id": "9816" + }, + { + "source_id": "okx", + "id": "NFT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:NOT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "notusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "notusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "notcoin" + }, + { + "source_id": "coinmarketcap", + "id": "28850" + }, + { + "source_id": "okx", + "id": "NOT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:OKB-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "okb" + }, + { + "source_id": "coinmarketcap", + "id": "3897" + }, + { + "source_id": "okx", + "id": "OKB-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "OKB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:OM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "omusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "mantra-dao" + }, + { + "source_id": "coinmarketcap", + "id": "6536" + }, + { + "source_id": "okx", + "id": "OM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "OM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ONDO-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "ONDO-USD" + }, + { + "source_id": "coingecko", + "id": "ondo-finance" + }, + { + "source_id": "coinmarketcap", + "id": "21159" + }, + { + "source_id": "kraken", + "id": "ONDO/USD" + }, + { + "source_id": "okx", + "id": "ONDO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ONE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "oneusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "3945" + }, + { + "source_id": "okx", + "id": "ONE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:OP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "opusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "opusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "OP-USD" + }, + { + "source_id": "coinbase", + "id": "OP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "optimism" + }, + { + "source_id": "coinmarketcap", + "id": "11840" + }, + { + "source_id": "kraken", + "id": "OP/USD" + }, + { + "source_id": "okx", + "id": "OP-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "OP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ORBR-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "17520" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ORDI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ordiusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "ordiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ordinals" + }, + { + "source_id": "coinmarketcap", + "id": "25028" + }, + { + "source_id": "okx", + "id": "ORDI-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ORDI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:OSMO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "osmousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "OSMO-USD" + }, + { + "source_id": "coingecko", + "id": "osmosis" + }, + { + "source_id": "coinmarketcap", + "id": "12220" + }, + { + "source_id": "kraken", + "id": "OSMO/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PAXG-USD": { + "sources": [ + { + "source_id": "binance", + "id": "paxgusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "pax-gold" + }, + { + "source_id": "coinmarketcap", + "id": "4705" + }, + { + "source_id": "kraken", + "id": "PAXG/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PENDLE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "pendleusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "pendleusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "pendle" + }, + { + "source_id": "coinmarketcap", + "id": "9481" + }, + { + "source_id": "kraken", + "id": "PENDLE/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PEOPLE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "peopleusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "peopleusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "constitutiondao" + }, + { + "source_id": "coinmarketcap", + "id": "14806" + }, + { + "source_id": "okx", + "id": "PEOPLE-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "PEOPLE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PEPE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "pepeusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "pepeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "pepe" + }, + { + "source_id": "coinmarketcap", + "id": "24478" + }, + { + "source_id": "kraken", + "id": "PEPE/USD" + }, + { + "source_id": "okx", + "id": "PEPE-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "PEPE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PEPECOIN-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "pepecoin-2" + }, + { + "source_id": "coinmarketcap", + "id": "24835" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:POLYX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "polyxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "polymesh" + }, + { + "source_id": "coinmarketcap", + "id": "20362" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PONKE-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "29150" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:POPCAT-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "popcat" + }, + { + "source_id": "coinmarketcap", + "id": "28782" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PRIME-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "PRIME-USD" + }, + { + "source_id": "coingecko", + "id": "echelon-prime" + }, + { + "source_id": "coinmarketcap", + "id": "23711" + }, + { + "source_id": "kraken", + "id": "PRIME/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PYTH-USD": { + "sources": [ + { + "source_id": "binance", + "id": "pythusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "pyth-network" + }, + { + "source_id": "coinmarketcap", + "id": "28177" + }, + { + "source_id": "kraken", + "id": "PYTH/USD" + }, + { + "source_id": "okx", + "id": "PYTH-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "PYTH-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:PYUSD-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "PYUSD-USD" + }, + { + "source_id": "coingecko", + "id": "paypal-usd" + }, + { + "source_id": "coinmarketcap", + "id": "27772" + }, + { + "source_id": "kraken", + "id": "PYUSD/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:QNT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "qntusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "QNT-USD" + }, + { + "source_id": "coinbase", + "id": "QNT-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "quant-network" + }, + { + "source_id": "coinmarketcap", + "id": "3155" + }, + { + "source_id": "kraken", + "id": "QNT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:QTUM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "qtumusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "qtum" + }, + { + "source_id": "coinmarketcap", + "id": "1684" + }, + { + "source_id": "kraken", + "id": "QTUM/USD" + }, + { + "source_id": "okx", + "id": "QTUM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "QTUM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:QUBIC-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "29169" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RAY-USD": { + "sources": [ + { + "source_id": "binance", + "id": "rayusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "raydium" + }, + { + "source_id": "coinmarketcap", + "id": "8526" + }, + { + "source_id": "kraken", + "id": "RAY/USD" + }, + { + "source_id": "okx", + "id": "RAY-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RENDER-USD": { + "sources": [ + { + "source_id": "binance", + "id": "renderusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "renderusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "RENDER-USD" + }, + { + "source_id": "coingecko", + "id": "render-token" + }, + { + "source_id": "coinmarketcap", + "id": "5690" + }, + { + "source_id": "kraken", + "id": "RENDER/USD" + }, + { + "source_id": "okx", + "id": "RENDER-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "RENDER-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RLB-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "15271" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RON-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "ronin" + }, + { + "source_id": "coinmarketcap", + "id": "14101" + }, + { + "source_id": "okx", + "id": "RON-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "RON-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ROSE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "roseusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ROSE-USD" + }, + { + "source_id": "coinbase", + "id": "ROSE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "oasis-network" + }, + { + "source_id": "coinmarketcap", + "id": "7653" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RPL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "rplusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "RPL-USD" + }, + { + "source_id": "coingecko", + "id": "rocket-pool" + }, + { + "source_id": "coinmarketcap", + "id": "2943" + }, + { + "source_id": "kraken", + "id": "RPL/USD" + }, + { + "source_id": "okx", + "id": "RPL-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "RPL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RSR-USD": { + "sources": [ + { + "source_id": "binance", + "id": "rsrusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "reserve-rights-token" + }, + { + "source_id": "coinmarketcap", + "id": "3964" + }, + { + "source_id": "okx", + "id": "RSR-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RUNE-USD": { + "sources": [ + { + "source_id": "binance", + "id": "runeusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "runeusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "thorchain" + }, + { + "source_id": "coinmarketcap", + "id": "4157" + }, + { + "source_id": "kraken", + "id": "RUNE/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:RVN-USD": { + "sources": [ + { + "source_id": "binance", + "id": "rvnusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ravencoin" + }, + { + "source_id": "coinmarketcap", + "id": "2577" + }, + { + "source_id": "okx", + "id": "RVN-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "RVN-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SAFE-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "SAFE-USD" + }, + { + "source_id": "coingecko", + "id": "safe" + }, + { + "source_id": "coinmarketcap", + "id": "21585" + }, + { + "source_id": "kraken", + "id": "SAFE/USD" + }, + { + "source_id": "okx", + "id": "SAFE-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SAND-USD": { + "sources": [ + { + "source_id": "binance", + "id": "sandusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SAND-USD" + }, + { + "source_id": "coinbase", + "id": "SAND-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "the-sandbox" + }, + { + "source_id": "coinmarketcap", + "id": "6210" + }, + { + "source_id": "kraken", + "id": "SAND/USD" + }, + { + "source_id": "okx", + "id": "SAND-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SAND-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "scusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "siacoin" + }, + { + "source_id": "coinmarketcap", + "id": "1042" + }, + { + "source_id": "kraken", + "id": "SC/USD" + }, + { + "source_id": "okx", + "id": "SC-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SC-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SEI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "seiusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "seiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SEI-USD" + }, + { + "source_id": "coingecko", + "id": "sei-network" + }, + { + "source_id": "coinmarketcap", + "id": "23149" + }, + { + "source_id": "kraken", + "id": "SEI/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SFP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "sfpusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "safepal" + }, + { + "source_id": "coinmarketcap", + "id": "8119" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SHIB-USD": { + "sources": [ + { + "source_id": "binance", + "id": "shibusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "shibusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SHIB-USD" + }, + { + "source_id": "coinbase", + "id": "SHIB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "shiba-inu" + }, + { + "source_id": "coinmarketcap", + "id": "5994" + }, + { + "source_id": "kraken", + "id": "SHIB/USD" + }, + { + "source_id": "kraken", + "id": "SHIB/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SHIB-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SHIB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SKL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "sklusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SKL-USD" + }, + { + "source_id": "coinmarketcap", + "id": "5691" + }, + { + "source_id": "okx", + "id": "SKL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SNX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "snxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SNX-USD" + }, + { + "source_id": "coingecko", + "id": "havven" + }, + { + "source_id": "coinmarketcap", + "id": "2586" + }, + { + "source_id": "kraken", + "id": "SNX/USD" + }, + { + "source_id": "okx", + "id": "SNX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SNX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SOL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "solusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "solusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SOL-USD" + }, + { + "source_id": "coinbase", + "id": "SOL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "solana" + }, + { + "source_id": "coinmarketcap", + "id": "5426" + }, + { + "source_id": "kraken", + "id": "SOL/USD" + }, + { + "source_id": "kraken", + "id": "SOL/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SOL-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SOL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SSV-USD": { + "sources": [ + { + "source_id": "binance", + "id": "ssvusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinmarketcap", + "id": "12999" + }, + { + "source_id": "okx", + "id": "SSV-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:STRK-USD": { + "sources": [ + { + "source_id": "binance", + "id": "strkusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "strkusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "STRK-USD" + }, + { + "source_id": "coingecko", + "id": "starknet" + }, + { + "source_id": "coinmarketcap", + "id": "22691" + }, + { + "source_id": "kraken", + "id": "STRK/USD" + }, + { + "source_id": "okx", + "id": "STRK-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "STRK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:STX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "stxusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "stxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "STX-USD" + }, + { + "source_id": "coinbase", + "id": "STX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "blockstack" + }, + { + "source_id": "coinmarketcap", + "id": "4847" + }, + { + "source_id": "kraken", + "id": "STX/USD" + }, + { + "source_id": "okx", + "id": "STX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "STX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SUI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "suiusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "suiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SUI-USD" + }, + { + "source_id": "coingecko", + "id": "sui" + }, + { + "source_id": "coinmarketcap", + "id": "20947" + }, + { + "source_id": "kraken", + "id": "SUI/USD" + }, + { + "source_id": "okx", + "id": "SUI-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "SUI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SUN-USD": { + "sources": [ + { + "source_id": "binance", + "id": "sunusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "sun-token" + }, + { + "source_id": "coinmarketcap", + "id": "10529" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SUNDOG-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "sundog" + }, + { + "source_id": "coinmarketcap", + "id": "32717" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:SUPER-USD": { + "sources": [ + { + "source_id": "binance", + "id": "superusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "SUPER-USD" + }, + { + "source_id": "coingecko", + "id": "superfarm" + }, + { + "source_id": "coinmarketcap", + "id": "8290" + }, + { + "source_id": "kraken", + "id": "SUPER/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:T-USD": { + "sources": [ + { + "source_id": "binance", + "id": "tusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "T-USD" + }, + { + "source_id": "coingecko", + "id": "threshold-network-token" + }, + { + "source_id": "coinmarketcap", + "id": "17751" + }, + { + "source_id": "kraken", + "id": "T/USD" + }, + { + "source_id": "okx", + "id": "T-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "T-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TAO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "taousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "bittensor" + }, + { + "source_id": "coinmarketcap", + "id": "22974" + }, + { + "source_id": "kraken", + "id": "TAO/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TFUEL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "tfuelusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "theta-fuel" + }, + { + "source_id": "coinmarketcap", + "id": "3822" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:THETA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "thetausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "theta-token" + }, + { + "source_id": "coinmarketcap", + "id": "2416" + }, + { + "source_id": "okx", + "id": "THETA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TIA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "tiausdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "tiausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "TIA-USD" + }, + { + "source_id": "coingecko", + "id": "celestia" + }, + { + "source_id": "coinmarketcap", + "id": "22861" + }, + { + "source_id": "kraken", + "id": "TIA/USD" + }, + { + "source_id": "okx", + "id": "TIA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "TIA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TON-USD": { + "sources": [ + { + "source_id": "binance", + "id": "tonusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "tonusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "the-open-network" + }, + { + "source_id": "coinmarketcap", + "id": "11419" + }, + { + "source_id": "okx", + "id": "TON-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "TON-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TRAC-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "TRAC-USD" + }, + { + "source_id": "coingecko", + "id": "origintrail" + }, + { + "source_id": "coinmarketcap", + "id": "2467" + }, + { + "source_id": "kraken", + "id": "TRAC/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TRB-USD": { + "sources": [ + { + "source_id": "binance", + "id": "trbusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "trbusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "TRB-USD" + }, + { + "source_id": "coinmarketcap", + "id": "4944" + }, + { + "source_id": "okx", + "id": "TRB-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TRIBE-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "9025" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TRX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "trxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "tron" + }, + { + "source_id": "coinmarketcap", + "id": "1958" + }, + { + "source_id": "kraken", + "id": "TRX/USD" + }, + { + "source_id": "okx", + "id": "TRX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "TRX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TURBO-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "turbo" + }, + { + "source_id": "coinmarketcap", + "id": "24911" + }, + { + "source_id": "kraken", + "id": "TURBO/USD" + }, + { + "source_id": "okx", + "id": "TURBO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TUSD-USD": { + "sources": [ + { + "source_id": "binance", + "id": "tusdusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "true-usd" + }, + { + "source_id": "coinmarketcap", + "id": "2563" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:TWT-USD": { + "sources": [ + { + "source_id": "binance", + "id": "twtusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "trust-wallet-token" + }, + { + "source_id": "coinmarketcap", + "id": "5964" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:UMA-USD": { + "sources": [ + { + "source_id": "binance", + "id": "umausdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "UMA-USD" + }, + { + "source_id": "coinmarketcap", + "id": "5617" + }, + { + "source_id": "kraken", + "id": "UMA/USD" + }, + { + "source_id": "okx", + "id": "UMA-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "UMA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:UNI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "uniusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "uniusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "UNI-USD" + }, + { + "source_id": "coingecko", + "id": "uniswap" + }, + { + "source_id": "coinmarketcap", + "id": "7083" + }, + { + "source_id": "kraken", + "id": "UNI/USD" + }, + { + "source_id": "okx", + "id": "UNI-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "UNI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDB-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "usdb" + }, + { + "source_id": "coinmarketcap", + "id": "29599" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDC-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "usd-coin" + }, + { + "source_id": "coinmarketcap", + "id": "3408" + }, + { + "source_id": "kraken", + "id": "USDC/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDD-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "usdd" + }, + { + "source_id": "coinmarketcap", + "id": "19891" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDE-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "29470" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDT-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "USDT-USD" + }, + { + "source_id": "coingecko", + "id": "tether" + }, + { + "source_id": "coinmarketcap", + "id": "825" + }, + { + "source_id": "kraken", + "id": "USDT/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:USDY-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "ondo-us-dollar-yield" + }, + { + "source_id": "coinmarketcap", + "id": "29256" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:VET-USD": { + "sources": [ + { + "source_id": "binance", + "id": "vetusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "VET-USD" + }, + { + "source_id": "coingecko", + "id": "vechain" + }, + { + "source_id": "coinmarketcap", + "id": "3077" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:VTHO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "vthousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "VTHO-USD" + }, + { + "source_id": "coinmarketcap", + "id": "3012" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:W-USD": { + "sources": [ + { + "source_id": "binance", + "id": "wusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "wormhole" + }, + { + "source_id": "coinmarketcap", + "id": "29587" + }, + { + "source_id": "kraken", + "id": "W/USD" + }, + { + "source_id": "okx", + "id": "W-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "W-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:WEMIX-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "wemix-token" + }, + { + "source_id": "coinmarketcap", + "id": "7548" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:WIF-USD": { + "sources": [ + { + "source_id": "binance", + "id": "wifusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "wifusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "dogwifcoin" + }, + { + "source_id": "coinmarketcap", + "id": "28752" + }, + { + "source_id": "kraken", + "id": "WIF/USD" + }, + { + "source_id": "okx", + "id": "WIF-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "WIF-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:WLD-USD": { + "sources": [ + { + "source_id": "binance", + "id": "wldusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "wldusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "worldcoin-wld" + }, + { + "source_id": "coinmarketcap", + "id": "13502" + }, + { + "source_id": "okx", + "id": "WLD-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "WLD-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:WOO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "woousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "woo-network" + }, + { + "source_id": "coinmarketcap", + "id": "7501" + }, + { + "source_id": "kraken", + "id": "WOO/USD" + }, + { + "source_id": "okx", + "id": "WOO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XAUT-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "5176" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XDC-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "xdce-crowd-sale" + }, + { + "source_id": "coinmarketcap", + "id": "2634" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XEC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "xecusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ecash" + }, + { + "source_id": "coinmarketcap", + "id": "10791" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XEM-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "873" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XLM-USD": { + "sources": [ + { + "source_id": "binance", + "id": "xlmusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "XLM-USD" + }, + { + "source_id": "coinbase", + "id": "XLM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "stellar" + }, + { + "source_id": "coinmarketcap", + "id": "512" + }, + { + "source_id": "kraken", + "id": "XLM/USD" + }, + { + "source_id": "okx", + "id": "XLM-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "XLM-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XMR-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "monero" + }, + { + "source_id": "coinmarketcap", + "id": "328" + }, + { + "source_id": "kraken", + "id": "XMR/USD" + }, + { + "source_id": "kraken", + "id": "XMR/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XRD-USD": { + "sources": [ + { + "source_id": "coingecko", + "id": "radix" + }, + { + "source_id": "coinmarketcap", + "id": "11948" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XRP-USD": { + "sources": [ + { + "source_id": "binance", + "id": "xrpusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "xrpusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "XRP-USD" + }, + { + "source_id": "coinbase", + "id": "XRP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "ripple" + }, + { + "source_id": "coinmarketcap", + "id": "52" + }, + { + "source_id": "kraken", + "id": "XRP/USD" + }, + { + "source_id": "kraken", + "id": "XRP/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "XRP-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "XRP-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:XTZ-USD": { + "sources": [ + { + "source_id": "binance", + "id": "xtzusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "XTZ-USD" + }, + { + "source_id": "coingecko", + "id": "tezos" + }, + { + "source_id": "coinmarketcap", + "id": "2011" + }, + { + "source_id": "kraken", + "id": "XTZ/USD" + }, + { + "source_id": "kraken", + "id": "XTZ/USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "XTZ-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "XTZ-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:YFI-USD": { + "sources": [ + { + "source_id": "binance", + "id": "yfiusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "YFI-USD" + }, + { + "source_id": "coinmarketcap", + "id": "5864" + }, + { + "source_id": "kraken", + "id": "YFI/USD" + }, + { + "source_id": "okx", + "id": "YFI-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "YFI-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZBU-USD": { + "sources": [ + { + "source_id": "coinmarketcap", + "id": "27765" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZEC-USD": { + "sources": [ + { + "source_id": "binance", + "id": "zecusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ZEC-USD" + }, + { + "source_id": "coingecko", + "id": "zcash" + }, + { + "source_id": "coinmarketcap", + "id": "1437" + }, + { + "source_id": "kraken", + "id": "ZEC/USD" + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZETA-USD": { + "sources": [ + { + "source_id": "coinbase", + "id": "ZETA-USD" + }, + { + "source_id": "coinmarketcap", + "id": "21259" + }, + { + "source_id": "kraken", + "id": "ZETA/USD" + }, + { + "source_id": "okx", + "id": "ZETA-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZIL-USD": { + "sources": [ + { + "source_id": "binance", + "id": "zilusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "zilliqa" + }, + { + "source_id": "coinmarketcap", + "id": "2469" + }, + { + "source_id": "okx", + "id": "ZIL-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ZIL-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZK-USD": { + "sources": [ + { + "source_id": "binance", + "id": "zkusdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "zkusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coingecko", + "id": "zksync" + }, + { + "source_id": "coinmarketcap", + "id": "24091" + }, + { + "source_id": "kraken", + "id": "ZK/USD" + }, + { + "source_id": "okx", + "id": "ZK-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ZK-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZRO-USD": { + "sources": [ + { + "source_id": "binance", + "id": "zrousdc", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "binance", + "id": "zrousdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ZRO-USD" + }, + { + "source_id": "coingecko", + "id": "layerzero" + }, + { + "source_id": "coinmarketcap", + "id": "26997" + }, + { + "source_id": "kraken", + "id": "ZRO/USD" + }, + { + "source_id": "okx", + "id": "ZRO-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + }, + "CS:ZRX-USD": { + "sources": [ + { + "source_id": "binance", + "id": "zrxusdt", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + }, + { + "source_id": "coinbase", + "id": "ZRX-USD" + }, + { + "source_id": "coingecko", + "id": "0x" + }, + { + "source_id": "coinmarketcap", + "id": "1896" + }, + { + "source_id": "kraken", + "id": "ZRX/USD" + }, + { + "source_id": "okx", + "id": "ZRX-USDC", + "routes": [ + { + "signal_id": "CS:USDC-USD", + "operation": "*" + } + ] + }, + { + "source_id": "okx", + "id": "ZRX-USDT", + "routes": [ + { + "signal_id": "CS:USDT-USD", + "operation": "*" + } + ] + } + ], + "processor": { + "function": "median", + "params": { + "min_source_count": 3 + } + } + } +} \ No newline at end of file diff --git a/signals/CS/USDC-USD.yaml b/signals/CS/USDC-USD.yaml index 2121ac2..0605c6f 100644 --- a/signals/CS/USDC-USD.yaml +++ b/signals/CS/USDC-USD.yaml @@ -1,9 +1,4 @@ sources: -- source_id: binance - id: usdcusdt - routes: - - signal_id: CS:USDT-USD - operation: '*' - source_id: coingecko id: usd-coin - source_id: coinmarketcap