'on', // (disabled example...your LOWERCASE plugin folder name in the folder: /plugins/) 'debt-interest-tracker' => 'on', // Track how much you pay in TOTAL interest MONTHLY on ALL your debt (credit cards, auto / personal / mortgage loan, etc) 'recurring-reminder' => 'off', // Recurring Reminder plugin (alert yourself every X days to do something) 'price-target-alert' => 'off', // Price target alert plugin (alert yourself when an asset's price target is reached) 'address-balance-tracker' => 'off', // Alerts for BTC / ETH / [SOL|SPL Token] / HNT address balance changes (when coins are sent / recieved) 'crypto-info-bot' => 'off', // WORK-IN-PROGRESS, NOT FUNTIONAL YET! 'on-chain-stats' => 'off', // WORK-IN-PROGRESS, NOT FUNTIONAL YET! ); //////////////////////////////////////// // !END! PLUGINS CONFIG //////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // !START! POWER USER CONFIGURATION (ADJUST WITH CARE, OR YOU CAN BREAK THE APP!) ///////////////////////////////////////////////////////////////////////////// // Enable / disable PHP error reporting (to error logs on the web server) // https://www.php.net/manual/en/function.error-reporting.php $ct['conf']['power']['php_error_reporting'] = 0; // 0 == off / -1 == on // $ct['conf']['power']['debug_mode'] enabled runs unit tests during ui runtimes (during webpage load), // errors detected are error-logged and printed as alerts in header alert bell area // It also logs ui / cron runtime telemetry to /cache/logs/app_log.log, AND /cache/logs/debug/ //////////////////////////////////////////////////////////////////////////////////////////// //// // ### GENERAL ### //// // 'off' (disables), // 'all' (all debugging), //// // ### TELEMETRY ### //// // 'all_telemetry' (ALL in-app telemetry), // 'conf_telemetry' (ct['conf'] caching), // 'light_chart_telemetry' (light chart caching), // 'memory_usage_telemetry' (PHP system memory usage), // 'ext_data_live_telemetry' (external API requests from server), // 'ext_data_cache_telemetry' (external API requests from cache), // 'smtp_telemetry' (smtp server responses to: /cache/logs/smtp_debug.log), // 'api_comms_telemetry' (API comms responses to: /cache/logs/debug/external_data/last-response-[service].log), // 'cron_telemetry' (cron runtime telemetry to: /cache/logs/debug/cron/cron_runtime_telemetry.log), //// // ### CHECKS ### //// // 'markets' (asset market checks), // 'texts' (mobile texting gateway checks), // 'alerts_charts' (price chart / price alert checks), // 'api_throttling' (API throttling checks), //// // ### SUMMARIES ### //// // 'stats' (hardware / software / runtime summary), // 'markets_conf' (outputs a markets configuration summary), //// //////////////////////////////////////////////////////////////////////////////////////////// // UNIT TESTS ('CHECKS' SECTION) WILL ONLY RUN DURING WEB PAGE INTERFACE RUNTIMES // PHP MAX EXECUTION TIME *SHOULD* AUTO-SET TO 1320 SECONDS (22 MINUTES) IN *ANY* DEBUG MODE (EXCEPT 'off') // IF YOU GET AN ERROR 500, TRY RUNNING ONE DEBUG MODE AT A TIME, TO AVOID GOING OVER THE PHP EXECUTION TIME LIMIT // DON'T LEAVE DEBUGGING ENABLED AFTER USING IT, THE /cache/logs/app_log.log AND /cache/logs/debug/ // LOG FILES !CAN GROW VERY QUICKLY IN SIZE! EVEN AFTER JUST A FEW RUNTIMES! $ct['conf']['power']['debug_mode'] = 'off'; // Level of detail / verbosity in log files. 'normal' logs minimal details (basic information), // 'verbose' logs maximum details (additional information IF AVAILABLE, for heavy debugging / tracing / etc) // IF DEBUGGING IS ENABLED ABOVE, LOGS ARE AUTOMATICALLY VERBOSE #WITHOUT THE NEED TO ADJUST THIS SETTING# $ct['conf']['power']['log_verbosity'] = 'normal'; // 'normal' / 'verbose' // If you want to override the default CURL user agent string (sent with API requests, etc) // Adding a string here automatically enables that as the custom curl user agent // LEAVING BLANK '' USES THE DEFAULT CURL USER AGENT LOGIC BUILT-IN TO THIS APP (WHICH INCLUDES ONLY BASIC SYSTEM CONFIGURATION STATS) $ct['conf']['power']['override_curl_user_agent'] = ''; // MINUTES to wait until running consecutive desktop edition emulated cron jobs // (HOW OFTEN BACKGROUND TASKS ARE RUN...#NOT# USED IN SERVER EDITION) // SET TO ZERO DISABLES EMULATED CRON JOBS ON #DESKTOP EDITIONS# // DON'T SET TOO LOW, OR EXCHANGE PRICE DATA MAY BE BLOCKED / THROTTLED TEMPORARILY ON OCASSION! // IF USING ADD-WIN10-SCHEDULER-JOB.bat, #THIS SETTING NEEDS TO BE DISABLED# OR THE SCHEDULED TASK WILL #NOT# BE ALLOWED TO RUN! // IF YOU CHANGE THIS SETTING, YOU *MUST* RESTART / RELOAD THE APP *AFTERWARDS*! $ct['conf']['power']['desktop_cron_interval'] = 20; // (default = 20, 0 disables this feature) // MINUTES to cache real-time exchange price data...can be zero to skip cache, but set to at least 1 minute TO AVOID YOUR IP ADDRESS GETTING BLOCKED // SOME APIS PREFER THIS SET TO AT LEAST A FEW MINUTES, SO IT'S RECOMMENDED TO KEEP FAIRLY HIGH $ct['conf']['power']['last_trade_cache_time'] = 4; // (default = 4) // MINUTES to cache blockchain stats (for mining calculators). Set high initially, it can be strict $ct['conf']['power']['blockchain_stats_cache_time'] = 60; // (default = 60) // MINUTES to cache marketcap rankings...START HIGH and test lower, it can be STRICT // (coingecko #ABSOLUTELY HATES# DATA CENTER IPS [DEDICATED / VPS SERVERS], BUT GOES EASY ON RESIDENTIAL IPS) $ct['conf']['power']['marketcap_cache_time'] = 90; // (default = 90) //// // Number of marketcap rankings to request from API. // 500 rankings is a safe maximum to START WITH, to avoid getting your API requests THROTTLED / BLOCKED // (coingecko #ABSOLUTELY HATES# DATA CENTER IPS [DEDICATED / VPS SERVERS], BUT GOES EASY ON RESIDENTIAL IPS) $ct['conf']['power']['marketcap_ranks_max'] = 300; // (default = 300) // Maximum margin leverage available in the user interface ('Update' page, etc) $ct['conf']['power']['margin_leverage_maximum'] = 150; // Days TO WAIT UNTIL DELETING OLD backup archives (chart data archives, etc) $ct['conf']['power']['backup_archive_delete_old'] = 14; // Keep logs X DAYS before purging (fully deletes logs every X days). Start low (especially when using proxies) $ct['conf']['power']['logs_purge'] = 7; // (default = 7) // Configuration for system resource warning thresholds (logs to error log, and sends comms alerts to any activated comms) // (WHEN THE SYSTEM RESOURCES REACH THESE VALUES [and it's been hours_between_alerts since last alert], // THE WARNINGS ARE TRIGGERED TO BE LOGGED / SENT TO ADMIN COMMS) // !!LEAVE YOURSELF SOME #EXTRA ROOM# ON THESE VALUES, TO BE ALERTED #BEFORE# YOUR SYSTEM WOULD RISK CRASHING!! //// // If SYSTEM UPTIME has only been up X DAYS (or less), trigger warning $ct['conf']['power']['system_uptime_warning'] = '0||36'; // 'days_uptime||hours_between_alerts' (default = '0||36') //// // SYSTEM LOAD warning default is 2x number of cores your app server has (1 core system = load level 2.00 would trigger an alert) // SYSTEM LOAD THRESHOLD MULTIPLIER allows you to adjust when warning is triggered (0.5 is half default, 2.00 is 2x default, etc) $ct['conf']['power']['system_load_warning'] = '1.00||4'; // 'threshold_multiplier||hours_between_alerts' (default = '1.00||4') //// // If system TEMPERATURE is X degrees celcius (or more), trigger warning $ct['conf']['power']['system_temperature_warning'] = '70||1'; // 'temp_celcius||hours_between_alerts' (default = '70||1') //// // If USED MEMORY PERCENTAGE is X (or more), trigger warning $ct['conf']['power']['memory_used_percent_warning'] = '90||4'; // 'memory_used_percent||hours_between_alerts' (default = '90||4') //// // If FREE STORAGE space is X MEGABYTES (or less), trigger warning $ct['conf']['power']['free_partition_space_warning'] = '1000||24'; // 'free_space_megabytes||hours_between_alerts' (default = '1000||24') //// // If PORTFOLIO CACHE SIZE is X MEGABYTES (or more), trigger warning $ct['conf']['power']['portfolio_cache_warning'] = '2000||72'; // 'portfolio_cache_megabytes||hours_between_alerts' (default = '2000||72') //// // If ALL COOKIES TOTAL DATA SIZE is X BYTES (or more), trigger warning // Because the header data MAY be approaching the server limit (WHICH CAN CRASH THIS APP!!) // STANDARD SERVER HEADER SIZE LIMITS (IN BYTES)...Apache: 8000, NGINX: 4000 - 8000, IIS: 8000 - 16000, Tomcat: 8000 - 48000 $ct['conf']['power']['cookies_size_warning'] = '7000||6'; // 'cookies_size_bytes||hours_between_alerts' (default = '7000||6') // Servers with STRICT CONSECUTIVE CONNECT limits (we add 1.11 seconds to the wait between consecutive connections) $ct['conf']['power']['strict_consecutive_connect_servers'] = array( 'alphavantage.co', ); // Auto-activate support for ALTCOIN PAIRED MARKETS (like glm/eth or mkr/eth, etc...markets where the base pair is an altcoin) // EACH ALTCOIN LISTED HERE !MUST HAVE! AN EXISTING 'btc' MARKET (within 'pair') in it's // $ct['conf']['assets'] listing (further down in this config file) TO PROPERLY AUTO-ACTIVATE // THIS ALSO ADDS THESE ASSETS AS OPTIONS IN THE "Show Crypto Value Of ENTIRE Portfolio In" SETTING, ON THE SETTINGS PAGE, // AND IN THE "Show Secondary Trade / Holdings Value" SETTING, ON THE SETTINGS PAGE TOO // !!!!!TRY TO #NOT# ADD STABLECOINS HERE!!!!!, FIRST TRY $ct['conf']['power']['bitcoin_currency_markets'] INSTEAD (TO AUTO-CLIP UN-NEEDED DECIMAL POINTS) $ct['conf']['power']['crypto_pair'] = array( // !!!!!BTC IS ALREADY ADDED *AUTOMATICALLY*, NO NEED TO ADD IT HERE!!!!! //// //'lowercase_altcoin_ticker' => 'UNICODE_SYMBOL', // Add whitespace after the symbol, if you prefer that //// // Bluechip native tokens... 'eth' => 'Ξ ', 'sol' => '◎ ', // Bluechip ERC-20 tokens on Ethereum / SPL tokens on Solana, etc... 'uni' => '🦄 ', 'mkr' => '𐌼 ', 'jup' => 'Ɉ ', ); // Preferred ALTCOIN PAIRED MARKETS market(s) for getting a certain crypto's value // EACH ALTCOIN LISTED HERE MUST EXIST IN $ct['conf']['power']['crypto_pair'] ABOVE, // AND !MUST HAVE! AN EXISTING 'btc' MARKET (within 'pair') in it's // $ct['conf']['assets'] listing (further down in this config file), // AND #THE EXCHANGE NAME MUST BE IN THAT 'btc' LIST# // #USE LIBERALLY#, AS YOU WANT THE BEST PRICE DISCOVERY FOR THIS CRYPTO'S VALUE $ct['conf']['power']['crypto_pair_preferred_markets'] = array( //'lowercase_btc_mrkt_or_stablecoin_pair' => 'PREFERRED_MRKT', 'eth' => 'binance', // WAY MORE volume , WAY BETTER price discovery than ALL alternatives 'sol' => 'binance', // WAY MORE volume , WAY BETTER price discovery than ALL alternatives 'uni' => 'binance', // WAY MORE volume , WAY BETTER price discovery than ALL alternatives 'mkr' => 'binance', // WAY MORE volume , WAY BETTER price discovery than ALL alternatives 'jup' => 'coingecko_btc', // coingecko global average price IN BTC ); // Auto-activate support for PRIMARY CURRENCY MARKETS (to use as your preferred local currency in the app) // EACH CURRENCY LISTED HERE !MUST HAVE! AN EXISTING BITCOIN ASSET MARKET (within 'pair') in // Bitcoin's $ct['conf']['assets'] listing (further down in this config file) TO PROPERLY AUTO-ACTIVATE // #CAN# BE A CRYPTO / HAVE A DUPLICATE IN $ct['conf']['power']['crypto_pair'], // !AS LONG AS THERE IS A PAIR CONFIGURED WITHIN THE BITCOIN ASSET SETUP! $ct['conf']['power']['bitcoin_currency_markets'] = array( //'lowercase_btc_mrkt_or_stablecoin_pair' => 'CURRENCY_SYMBOL', 'aed' => 'د.إ', 'ars' => 'ARS$', 'aud' => 'A$', 'bam' => 'KM ', 'bdt' => '৳', 'bob' => 'Bs ', 'brl' => 'R$', 'bwp' => 'P ', 'byn' => 'Br ', 'cad' => 'C$', 'chf' => 'CHf ', 'clp' => 'CLP$', 'cny' => 'C¥', 'cop' => 'Col$', 'crc' => '₡', 'czk' => 'Kč ', 'dai' => '◈ ', 'dkk' => 'Kr. ', 'dop' => 'RD$', 'egp' => 'ج.م', 'eth' => 'Ξ ', 'eur' => '€', 'gbp' => '£', 'gel' => 'ლ', 'ghs' => 'GH₵', 'gtq' => 'Q ', 'hkd' => 'HK$', 'huf' => 'Ft ', 'idr' => 'Rp ', 'ils' => '₪', 'inr' => '₹', 'irr' => '﷼', 'jmd' => 'JA$', 'jod' => 'د.ا', 'jpy' => 'J¥', 'kes' => 'Ksh ', 'krw' => '₩', 'kwd' => 'د.ك', 'kzt' => '₸', 'lkr' => 'රු, ரூ', 'mad' => 'د.م.', 'mur' => '₨ ', 'mwk' => 'MK ', 'mxn' => 'Mex$', 'myr' => 'RM ', 'ngn' => '₦', 'nis' => '₪', 'nok' => 'kr ', 'nzd' => 'NZ$', 'pab' => 'B/. ', 'pen' => 'S/ ', 'php' => '₱', 'pkr' => '₨ ', 'pln' => 'zł ', 'pyg' => '₲', 'qar' => 'ر.ق', 'ron' => 'lei ', 'rsd' => 'din ', 'rub' => '₽', 'rwf' => 'R₣ ', 'sar' => '﷼', 'sek' => 'kr ', 'sgd' => 'S$', 'thb' => '฿', 'try' => '₺', 'tusd' => 'Ⓢ ', 'twd' => 'NT$', 'tzs' => 'TSh ', 'uah' => '₴', 'ugx' => 'USh ', 'usd' => '$', 'usdc' => 'Ⓢ ', 'usdt' => '₮ ', 'uyu' => '$U ', 'vnd' => '₫', 'ves' => 'Bs ', 'xaf' => 'FCFA ', 'xof' => 'CFA ', 'zar' => 'R ', 'zmw' => 'ZK ', ); // Preferred BITCOIN market(s) for getting a certain currency's value // (when other exchanges for this currency have poor api / volume / price discovery / etc) // EACH CURRENCY LISTED HERE MUST EXIST IN $ct['conf']['power']['bitcoin_currency_markets'] ABOVE // #USE LIBERALLY#, AS YOU WANT THE BEST PRICE DISCOVERY FOR THIS CURRENCY'S VALUE $ct['conf']['power']['bitcoin_preferred_currency_markets'] = array( //'lowercase_btc_mrkt_or_stablecoin_pair' => 'PREFERRED_MRKT', 'aud' => 'kraken', // WAY BETTER api than ALL alternatives 'chf' => 'kraken', // WAY MORE reputable than ALL alternatives 'dai' => 'kraken', // WAY MORE reputable than ALL alternatives 'eur' => 'kraken', // WAY BETTER api than ALL alternatives 'gbp' => 'kraken', // WAY BETTER api than ALL alternatives 'jpy' => 'kraken', // WAY MORE reputable than ALL alternatives 'inr' => 'wazirx', // One of the biggest exchanges in India (should be good price discovery) 'rub' => 'binance', // WAY MORE volume / price discovery than ALL alternatives 'usd' => 'kraken', // WAY BETTER api than ALL alternatives ); // Static values in ETH for Ethereum subtokens, like during crowdsale periods etc (before exchange listings) $ct['conf']['power']['ethereum_erc20_icos'] = array( 'ETHSUBTOKENNAME' => '0.15', 'GOLEM' => '0.001', 'ARAGON' => '0.01', 'DECENTRALAND' => '0.00008', ); // HIVE INTEREST CALCULATOR SETTINGS // Weeks to power down all HIVE Power holdings $ct['conf']['power']['hive_powerdown_time'] = 13; //// // HIVE Power yearly interest rate AS OF 11/29/2022 (0.975%, decreasing every year by roughly 0.075% until it hits a minimum of 0.075% and stays there) // (DO NOT INCLUDE PERCENT SIGN), see above for manual yearly adjustment $ct['conf']['power']['hivepower_yearly_interest'] = 0.975; // (Default = 0.975 as of 11/29/22) // Mining calculator configs for different crypto networks (SEMI-AUTOMATICALLY adds mining calculators to the Mining page) // FOR #DYNAMIC# CHAIN STATS (height / difficuly / rewards / etc), API CALL FUNCTIONS NEED TO BE CUSTOM-WRITTEN FOR ANY #CUSTOM# ASSETS ADDED HERE, // AND CALLED WITHIN THE 'Update dynamic mining data' SECTION OF THE FILE: /app-lib/php/inline/config/config-auto-adjust.php // 'mining_time_formula' ALSO NEEDS TO BE DYNAMICALLY ADDED IN THAT SAME SECTION, #OR YOUR CUSTOM CALCULATOR WILL NOT WORK AT ALL# // ('PLACEHOLDER' values are dynamically populated during app runtime) $ct['conf']['power']['mining_calculators'] = array( // POW CALCULATORS 'pow' => array( // BTC 'btc' => array( 'name' => 'Bitcoin', // Coin name 'symbol' => 'btc', // Coin symbol (lowercase) 'exchange_name' => 'binance', // Exchange name (for price data, lowercase) 'exchange_mrkt' => 'BTCUSDT', // Market pair name (for price data) 'measure_semantic' => 'difficulty', // (difficulty, nethashrate, etc) 'block_reward' => 6.25, // Mining block reward (OPTIONAL, can be made dynamic with code, like below) // EVERYTHING BELOW #MUST BE DYNAMICALLY# UPDATED IN: // dynamic-config.php (in main directory...so we can run a cached config) 'mining_time_formula' => 'PLACEHOLDER', // Mining time formula calculation (REQUIRED) 'height' => 'PLACEHOLDER', // Block height (OPTIONAL) 'difficulty' => 'PLACEHOLDER', // Mining network difficulty (OPTIONAL) 'other_network_data' => '', // Leave blank to skip (OPTIONAL) ), ), // POW END // POS CALCULATORS (#NOT FUNCTIONAL YET#) 'pos' => array( // CALCULATORS HERE ), // POS END ); // MINING CALCULATORS END //////////////////////////////////////// // !END! POWER USER CONFIGURATION //////////////////////////////////////// //////////////////////////////////////// // !START! NEWS FEEDS CONFIGURATION //////////////////////////////////////// // NEWS FEED SETTINGS (ATOM / RSS formats supported) // RSS feed entries to show (per-feed) on News page (without needing to click the "show more / less" link) $ct['conf']['news']['entries_to_show'] = 10; // (default = 10) // RSS feed entries under X DAYS old are marked as 'new' on the news page $ct['conf']['news']['mark_as_new'] = 2; // (default = 2) // Every X days email a list of #NEW# RSS feed posts. // 0 to disable. Email to / from !MUST BE SET IN COMMS CHANNELS SETUP! $ct['conf']['news']['news_feed_email_frequency'] = 2; // (default = 2) // MAXIMUM #NEW# RSS feed entries to include (per-feed) in news feed EMAIL (that are less then 'news_feed_email_frequency' days old) $ct['conf']['news']['news_feed_email_entries_include'] = 20; // (default = 20) // Minutes to cache RSS feeds for News page // Randomly cache each RSS feed between the minimum and maximum MINUTES set here (so they don't refresh all at once, for faster runtimes) // THE WIDER THE GAP BETWEEN THE NUMBERS, MORE SPLIT UP / FASTER THE FEEDS WILL LOAD IN THE INTERFACE #CONSISTANTLY# $ct['conf']['news']['news_feed_cache_min_max'] = '100,200'; // 'min,max' (default = '100,200'), ADJUST WITH CARE!!! // Maximum number of BATCHED news feed fetches / re-caches per ajax OR cron runtime // (#TO HELP PREVENT RUNTIME CRASHES# ON LOW POWER DEVICES OR HIGH TRAFFIC INSTALLS, USE A LOW NUMBER OF 20 OR LESS) $ct['conf']['news']['news_feed_batched_maximum'] = 20; // (default = 20), ADJUST WITH CARE!!! // Maximum number of news feeds allowed to be pre-cached during background tasks (to avoid overloading low power devices) $ct['conf']['news']['news_feed_precache_maximum'] = 45; // (default = 45), ADJUST WITH CARE!!! // RSS feed services that are a bit funky with allowed user agents, so we need to let them know this is a real feed parser (not just a spammy bot) // (user agent string is EXPLICITLY SET AS A CUSTOM FEED PARSER) $ct['conf']['news']['strict_news_feed_servers'] = array( 'cointelegraph.com', 'medium.com', 'reddit.com', 'whatbitcoindid.com', 'simplecast.com', ); // RSS news feeds available on the News page $ct['conf']['news']['feeds'] = array( ///////////////////////////////////////////////////// // STANDARD RSS #AND# ATOM FORMAT ARE SUPPORTED ///////////////////////////////////////////////////// array( "title" => "Blog - BitcoinCore.org", "url" => "https://bitcoincore.org/en/rss.xml" ), array( "title" => "Blog - Bitmex", "url" => "https://blog.bitmex.com/feed/?lang=en_us" ), array( "title" => "Blog - Ethereum.org (community-driven on-chain smart contracts)", "url" => "https://blog.ethereum.org/feed.xml" ), array( "title" => "Blog - Helium Network (community-driven global LoRaWAN network)", "url" => "https://blog.helium.com/feed" ), array( "title" => "Blog - Kraken", "url" => "https://blog.kraken.com/feed/" ), array( "title" => "Blog - RNDR Network (Blockchain-Distributed GPU Rendering)", "url" => "https://medium.com/feed/render-token" ), array( "title" => "Blog - Star Atlas (NFT-based Space Shooter Metaverse on Solana)", "url" => "https://medium.com/feed/star-atlas" ), array( "title" => "News - Bitcoin Magazine", "url" => "https://bitcoinmagazine.com/feed" ), array( "title" => "News - CoinTelegraph", "url" => "https://cointelegraph.com/feed" ), array( "title" => "News - Decrypt", "url" => "https://decrypt.co/feed" ), array( "title" => "News - Slashdot", "url" => "https://rss.slashdot.org/Slashdot/slashdot" ), array( "title" => "Newsletter - Alpha Please", "url" => "https://alphapls.substack.com/feed" ), array( "title" => "Newsletter - Bitcoin Optech", "url" => "https://bitcoinops.org/feed.xml" ), array( "title" => "Newsletter - CoinCenter (D.C. non-profit crypto lobbying)", "url" => "https://www.newsletter.coincenter.org/feed" ), array( "title" => "Newsletter - Lightning Labs (Bitcoin Layer 2 Network)", "url" => "https://lightninglabs.substack.com/feed" ), array( "title" => "Newsletter - Our Network", "url" => "https://ournetwork.substack.com/feed" ), array( "title" => "Newsletter - Page One", "url" => "https://page1.substack.com/feed" ), array( "title" => "Newsletter - The Daily Degen", "url" => "https://thedailydegen.substack.com/feed" ), array( "title" => "Newsletter - The Solana Six", "url" => "https://solanafloor.substack.com/feed" ), array( "title" => "Newsletter - Step Data Insights (for Solana)", "url" => "https://stepdata.substack.com/feed" ), array( "title" => "Newsletter - Week In Ethereum", "url" => "https://weekinethereumnews.com/feed/" ), array( "title" => "Podcast - Bankless", "url" => "http://podcast.banklesshq.com/rss" ), array( "title" => "Podcast - Citadel Dispatch", "url" => "https://anchor.fm/s/45563e80/podcast/rss" ), array( "title" => "Podcast - Stephan Livera", "url" => "https://anchor.fm/s/7d083a4/podcast/rss" ), array( "title" => "Podcast - Tales From The Crypt", "url" => "https://anchor.fm/s/558f520/podcast/rss" ), array( "title" => "Podcast - The Solana Podcast", "url" => "https://feeds.simplecast.com/W1NI2v3Z" ), array( "title" => "Podcast - The Scoop", "url" => "http://feeds.megaphone.fm/theblock-thescoop" ), array( "title" => "Podcast - Unchained", "url" => "https://unchained.libsyn.com/unchained" ), array( "title" => "Podcast - Unlayered", "url" => "https://feeds.megaphone.fm/CON1529801782" ), array( "title" => "Podcast - What Bitcoin Did", "url" => "https://www.whatbitcoindid.com/podcast?format=RSS" ), array( "title" => "Podcast - Zero Knowledge", "url" => "https://feeds.fireside.fm/zeroknowledge/rss" ), array( "title" => "Reddit - Bitcoin (hot)", "url" => "https://www.reddit.com/r/Bitcoin/hot/.rss?format=xml" ), array( "title" => "Reddit - Ethereum (hot)", "url" => "https://www.reddit.com/r/Ethereum/hot/.rss?format=xml" ), array( "title" => "Reddit - Helium Network (hot)", "url" => "https://www.reddit.com/r/heliumnetwork/hot/.rss?format=xml" ), array( "title" => "Reddit - Solana (hot)", "url" => "https://www.reddit.com/r/solana/hot/.rss?format=xml" ), array( "title" => "Reddit - StarAtlas (hot)", "url" => "https://www.reddit.com/r/staratlas/hot/.rss?format=xml" ), array( "title" => "StackExchange - Bitcoin (hot)", "url" => "https://bitcoin.stackexchange.com/feeds/hot" ), array( "title" => "StackExchange - Ethereum (hot)", "url" => "https://ethereum.stackexchange.com/feeds/hot" ), array( "title" => "StackExchange - Solana (hot)", "url" => "https://solana.stackexchange.com/feeds/hot" ), array( "title" => "Stocks - CNBC: US Top News and Analysis", "url" => "https://search.cnbc.com/rs/search/combinedcms/view.xml?partnerId=wrss01&id=100003114" ), array( "title" => "Stocks - AlphaStreet", "url" => "https://news.alphastreet.com/feed/" ), array( "title" => "Stocks - Grit Capital", "url" => "https://gritcapital.substack.com/feed" ), array( "title" => "Stocks - Investing.com: News", "url" => "https://www.investing.com/rss/news.rss" ), array( "title" => "Stocks - Sunday Morning Markets", "url" => "https://sundaymorningmarkets.substack.com/feed" ), array( "title" => "Youtube - BTC Sessions", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UChzLnWVsl3puKQwc5PoO6Zg" ), array( "title" => "Youtube - Epicenter Podcast", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UCh-0T48JrvvmKDX41aWB_Vg" ), array( "title" => "Youtube - Ethereum Foundation", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UCNOfzGXD_C9YMYmnefmPH0g" ), array( "title" => "Youtube - Helium Network", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UCEdh5moyCkiIrfdkZOnG5ZQ" ), array( "title" => "Youtube - Kripto Emre (turkish)", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UC87A7vsRlyZ68gtu-z1Q3ow" ), array( "title" => "Youtube - Kripto Sözlük (turkish)", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UC5rV0QEGbv0Y-umDwshs_HA" ), array( "title" => "Youtube - Lightspeed (Solana / Alt L1 podcast)", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UCjsgQKPpR7ubPQhPqjf8kyA" ), array( "title" => "Youtube - Solana Labs", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UC9AdQPUe4BdVJ8M9X7wxHUA" ), array( "title" => "Youtube - The Daily Gwei", "url" => "https://www.youtube.com/feeds/videos.xml?channel_id=UCvCp6vKY5jDr87htKH6hgDA" ), ); //////////////////////////////////////// // !END! NEWS FEEDS CONFIGURATION //////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// PRIMARY CONFIGURATIONS -END- ////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// EMAIL-TO-MOBILE-TEXT CONFIGURATION -START- //////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /* Below are the mobile networks supported by Open Crypto Tracker's email-to-mobile-text functionality. Using your corresponding "Network Name Key" (case-sensitive) listed below, add that EXACT name in this config file further above within the $ct['conf']['comms']['to_mobile_text'] setting as the text network name variable, to enable email-to-text alerts to your network's mobile phone number. PLEASE REPORT ANY MISSING / INCORRECT / NON-FUNCTIONAL GATEWAYS HERE, AND I WILL FIX THEM: https://github.com/taoteh1221/Open_Crypto_Tracker/issues (or you can add / update it yourself right in this configuration, if you know the correct gateway domain name) */ // All supported mobile network email-to-text gateway (domain name) configurations // Network name keys MUST BE LOWERCASE (for reliability / consistency, // as these name keys are always called from (forced) lowercase name key lookups) // DUPLICATE NETWORK NAME KEYS --WILL CANCEL EACH OTHER OUT--, !!USE A UNIQUE NAME FOR EACH KEY!! // WHEN ADDING YOUR OWN GATEWAYS, ONLY INCLUDE THE DOMAIN (THIS APP WILL AUTOMATICALLY FORMAT TO your_phone_number@your_gateway) $ct['conf']['mobile_network']['text_gateways'] = array( // [EXAMPLE] // 'network_name_key||network_gateway1.com', // 'unique_network_name_key||network_gateway2.com', // [INTERNATIONAL] 'esendex||echoemail.net', 'global_star||msg.globalstarusa.com', // [MISCELLANEOUS COUNTRIES] 'movistar_ar||sms.movistar.net.ar', // Argentina 'setar||mas.aw', // Aruba 'mobiltel||sms.mtel.net', // Bulgaria 'china_mobile||139.com', // China 'ice||sms.ice.cr', // Costa Rica 'tmobile_hr||sms.t-mobile.hr', // Croatia 'digicel||digitextdm.com', // Dominica 'tellus_talk||esms.nu', // Europe 'guyana_tt||sms.cellinkgy.com', // Guyana 'csl||mgw.mmsc1.hkcsl.com', // Hong Kong 'vodafone_it||sms.vodafone.it', // Italy 'tele2_lv||sms.tele2.lv', // Latvia 'emtel||emtelworld.net', // Mauritius 'telcel||itelcel.com', // Mexico 'tmobile_nl||gin.nl', // Netherlands 'mas_movil||cwmovil.com', // Panama 'claro_pr||vtexto.com', // Puerto Rico 'beeline||sms.beemail.ru', // Russia 'm1||m1.com.sg', // Singapore 'mobitel||sms.mobitel.lk', // Sri Lanka 'tele2_se||sms.tele2.se', // Sweden 'sunrise_ch||gsm.sunrise.ch', // Switzerland 'movistar_uy||sms.movistar.com.uy', // Uruguay // [AUSTRALIA] 'sms_broadcast||send.smsbroadcast.com.au', 'sms_central||sms.smscentral.com.au', 'sms_pup||smspup.com', 'tmobile_au||optusmobile.com.au', 'telstra||sms.tim.telstra.com', 'ut_box||sms.utbox.net', // [AUSTRIA] 'firmen_sms||subdomain.firmensms.at', 'tmobile_at||sms.t-mobile.at', // [CANADA] 'bell||txt.bell.ca', 'koodo||msg.telus.com', 'pc_telecom_ca||mobiletxt.ca', 'rogers_ca||pcs.rogers.com', 'sasktel||pcs.sasktelmobility.com', 'telus_ca||mms.telusmobility.com', 'virgin_ca||vmobile.ca', 'wind||txt.windmobile.ca', // [COLUMBIA] 'claro_co||iclaro.com.co', 'movistar_co||movistar.com.co', // [FRANCE] 'bouygues||mms.bouyguestelecom.fr', 'orange_fr||orange.fr', 'sfr||sfr.fr', // [GERMANY] 'o2||o2online.de', 'tmobile_de||t-mobile-sms.de', 'vodafone_de||vodafone-sms.de', // [ICELAND] 'vodafone_is||sms.is', 'box_is||box.is', // [INDIA] 'aircel||aircel.co.in', 'airtel||airtelmail.com', // [NEW ZEALAND] 'telecom_nz||etxt.co.nz', 'vodafone_nz||mtxt.co.nz', // [NORWAY] 'sendega||sendega.com', 'teletopia||sms.teletopiasms.no', // [POLAND] 'orange_pl||orange.pl', 'plus||text.plusgsm.pl', 'polkomtel||text.plusgsm.pl', // [SOUTH AFRICA] 'mtn||sms.co.za', 'vodacom||voda.co.za', // [SPAIN] 'esendex_es||esendex.net', 'movistar_es||movistar.net', 'vodafone_es||vodafone.es', // [UNITED KINGDOM] 'media_burst||sms.mediaburst.co.uk', 'txt_local||txtlocal.co.uk', 'virgin_uk||vxtras.com', 'vodafone_uk||vodafone.net', // [UNITED STATES] 'att||txt.att.net', 'bluegrass||mms.myblueworks.com', 'cellcom||cellcom.quiktxt.com', 'chariton_valley||sms.cvalley.net', 'cricket||mms.cricketwireless.net', 'cspire||cspire1.com', 'gci||mobile.gci.net', 'googlefi||msg.fi.google.com', 'nextech||sms.ntwls.net', 'pioneer||zsend.com', 'rogers_us||pcs.rogers.com', 'simple_mobile||smtext.com', 'southern_linc||page.southernlinc.com', 'south_central_comm||rinasms.com', 'sprint||messaging.sprintpcs.com', 'tmobile_us||tmomail.net', 'telus_us||mms.telusmobility.com', 'tracfone||mmst5.tracfone.com', 'union||union-tel.com', 'us_cellular||email.uscc.net', 'verizon||vtext.com', 'viaero||mmsviaero.com', 'virgin_us||vmobl.com', 'west_central||sms.wcc.net', 'xit||sms.xit.net', ); // mobile_network_text_gateways END /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// EMAIL-TO-MOBILE-TEXT CONFIGURATION -END- ////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// PORTFOLIO ASSETS CONFIGURATION -START- //////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// // BELOW IS AN EXAMPLE SET OF CONFIGURED ASSETS. PLEASE NOTE THIS IS PROVIDED TO ASSIST YOU IN ADDING YOUR PARTICULAR FAVORITE ASSETS TO THE DEFAULT LIST, // AND !---IN NO WAY---! INDICATES ENDORSEMENT OR RECOMMENDATION OF !---ANY---! OF THE *DEMO* ASSETS! // SEE README.txt FOR HOW TO ADD / EDIT / DELETE COINS IN THIS CONFIG // SEE /DOCUMENTATION-ETC/CONFIG-EXAMPLE.txt FOR A FULL EXAMPLE OF THE DEFAULT CONFIGURATION (ESPECIALLY IF YOU MESS UP config.php, lol) // See TROUBLESHOOTING.txt for tips / troubleshooting FAQs. // TYPOS LIKE MISSED COMMAS / MISSED QUOTES / ETC !!!!WILL BREAK THE APP!!!!, BE CAREFUL EDITING THIS CONFIG FILE! $ct['conf']['assets'] = array( //////////////////////////////////////////////////////////////////// // MISCASSETS // (KEY PLACED HERE FOR ORDERING ONLY, DYNAMICALLY POPULATED BY THE APP AT RUNTIME) // (!!!!DO NOT DELETE, MISCASSETS IS *REQUIRED* TO RUN THIS APP!!!!) 'MISCASSETS' => array(), // Asset END //////////////////////////////////////////////////////////////////// // BTCNFTS // (KEY PLACED HERE FOR ORDERING ONLY, DYNAMICALLY POPULATED BY THE APP AT RUNTIME) // (!!!!DO NOT DELETE, BTCNFTS IS *REQUIRED* TO RUN THIS APP!!!!) 'BTCNFTS' => array(), // Asset END //////////////////////////////////////////////////////////////////// // ETHNFTS // (KEY PLACED HERE FOR ORDERING ONLY, DYNAMICALLY POPULATED BY THE APP AT RUNTIME) // (!!!!DO NOT DELETE, ETHNFTS IS *REQUIRED* TO RUN THIS APP!!!!) 'ETHNFTS' => array(), // Asset END //////////////////////////////////////////////////////////////////// // SOLNFTS // (KEY PLACED HERE FOR ORDERING ONLY, DYNAMICALLY POPULATED BY THE APP AT RUNTIME) // (!!!!DO NOT DELETE, SOLNFTS IS *REQUIRED* TO RUN THIS APP!!!!) 'SOLNFTS' => array(), // Asset END //////////////////////////////////////////////////////////////////// // ALTNFTS // (KEY PLACED HERE FOR ORDERING ONLY, DYNAMICALLY POPULATED BY THE APP AT RUNTIME) // (!!!!DO NOT DELETE, ALTNFTS IS *REQUIRED* TO RUN THIS APP!!!!) 'ALTNFTS' => array(), // Asset END //////////////////////////////////////////////////////////////////// // BTC // (!!!!*BTC #MUST# BE THE VERY FIRST* IN THIS CRYPTO ASSET MARKETS LIST!!!!) // (!!!!DO NOT DELETE, BTC IS *REQUIRED* TO RUN THIS APP!!!!) 'BTC' => array( 'name' => 'Bitcoin', 'mcap_slug' => 'bitcoin', 'pair' => array( 'aud' => array( 'kraken' => 'XBTAUD', 'btcmarkets' => 'BTC/AUD', 'coinspot' => 'btc', ), 'brl' => array( 'binance' => 'BTCBRL', ), 'cad' => array( 'kraken' => 'XXBTZCAD', ), 'chf' => array( 'kraken' => 'XBTCHF', ), 'dai' => array( 'binance' => 'BTCDAI', 'hitbtc' => 'BTCDAI', 'kraken' => 'XBTDAI', 'okex' => 'BTC-DAI', 'kucoin' => 'BTC-DAI', ), 'eth' => array( 'loopring_amm' => 'AMM-WBTC-ETH', ), 'eur' => array( 'coinbase' => 'BTC-EUR', 'binance' => 'BTCEUR', 'kraken' => 'XXBTZEUR', 'bitstamp' => 'btceur', 'bitpanda' => 'BTC_EUR', 'bitflyer' => 'BTC_EUR', 'cex' => 'BTC:EUR', 'luno' => 'XBTEUR', ), 'gbp' => array( 'coinbase' => 'BTC-GBP', 'kraken' => 'XXBTZGBP', 'bitfinex' => 'tBTCGBP', 'cex' => 'BTC:GBP', ), 'hkd' => array( 'liquid' => 'BTCHKD', ), 'inr' => array( 'bitbns' => 'BTC', 'buyucoin' => 'INR-BTC', 'wazirx' => 'btcinr', 'coindcx' => 'BTCINR', 'unocoin' => 'BTC', ), 'jpy' => array( 'kraken' => 'XXBTZJPY', 'bitflyer' => 'BTC_JPY', ), 'krw' => array( 'upbit' => 'KRW-BTC', 'korbit' => 'btc_krw', ), 'mxn' => array( 'bitso' => 'btc_mxn', ), 'nis' => array( 'bit2c' => 'BtcNis', ), 'rub' => array( 'binance' => 'BTCRUB', ), 'sgd' => array( 'coingecko_sgd' => 'bitcoin', ), 'sol' => array( 'jupiter_ag' => 'WBTC/SOL', ), 'try' => array( 'btcturk' => 'BTCTRY', 'binance' => 'BTCTRY', ), 'twd' => array( 'coingecko_twd' => 'bitcoin', ), 'usd' => array( 'coingecko_usd' => 'bitcoin', 'coinbase' => 'BTC-USD', 'bitstamp' => 'btcusd', 'kraken' => 'XXBTZUSD', 'gemini' => 'btcusd', 'bitmex' => 'XBTUSD', 'bitmex_u20' => 'XBTU20', 'bitmex_z20' => 'XBTZ20', 'bitfinex' => 'tBTCUSD', 'bitflyer' => 'BTC_USD', 'hitbtc' => 'BTCUSD', 'okcoin' => 'BTC-USD', 'cex' => 'BTC:USD', ), 'usdc' => array( 'kraken' => 'XBTUSDC', 'binance_us' => 'BTCUSDC', 'southxchange' => 'BTC/USDC', ), 'usdt' => array( 'binance' => 'BTCUSDT', 'kraken' => 'XBTUSDT', 'btcturk' => 'BTCUSDT', 'huobi' => 'btcusdt', 'okex' => 'BTC-USDT', 'bitbns' => 'BTCUSDT', 'wazirx' => 'btcusdt', 'southxchange' => 'BTC/USDT', ), 'zar' => array( 'luno' => 'XBTZAR', 'binance' => 'BTCZAR', ), ) // pair END ), // Asset END (!!!!*BTC MUST BE THE VERY FIRST* IN THIS ASSET LIST, DO NOT DELETE, BTC IS *REQUIRED* TO RUN THIS APP!!!!) //////////////////////////////////////////////////////////////////// // TBTC 'TBTC' => array( 'name' => 'tBTC', 'mcap_slug' => 'tbtc', 'pair' => array( 'btc' => array( 'kraken' => 'TBTCXBT', 'jupiter_ag' => 'TBTC/WBTC', ), 'eur' => array( 'kraken' => 'TBTCEUR', ), 'sol' => array( 'jupiter_ag' => 'TBTC/SOL', ), 'usd' => array( 'kraken' => 'TBTCUSD', 'coingecko_terminal' => 'ethereum||0xb7ecb2aa52aa64a717180e030241bc75cd946726', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // FBTCSTOCK 'FBTCSTOCK' => array( 'name' => 'Fidelity Bitcoin ETF', 'mcap_slug' => 'FBTC:BATS', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'FBTC', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // ETH 'ETH' => array( 'name' => 'Ethereum', 'mcap_slug' => 'ethereum', 'pair' => array( 'aud' => array( 'kraken' => 'ETHAUD', 'btcmarkets' => 'ETH/AUD', 'coinspot' => 'eth', ), 'brl' => array( 'binance' => 'ETHBRL', ), 'btc' => array( 'binance' => 'ETHBTC', 'coinbase' => 'ETH-BTC', 'binance_us' => 'ETHBTC', 'bitstamp' => 'ethbtc', 'gemini' => 'ethbtc', 'kraken' => 'XETHXXBT', 'bitfinex' => 'tETHBTC', 'bitmex_u20' => 'ETHU20', 'jupiter_ag' => 'ETH/WBTC', 'hitbtc' => 'ETHBTC', 'upbit' => 'BTC-ETH', 'bitflyer' => 'ETH_BTC', 'kucoin' => 'ETH-BTC', 'okex' => 'ETH-BTC', 'poloniex' => 'ETH_BTC', 'bitso' => 'eth_btc', 'zebpay' => 'ETH-BTC', 'luno' => 'ETHXBT', 'wazirx' => 'ethbtc', ), 'cad' => array( 'kraken' => 'XETHZCAD', ), 'chf' => array( 'kraken' => 'ETHCHF', ), 'dai' => array( 'binance' => 'ETHDAI', 'coinbase' => 'ETH-DAI', 'kraken' => 'ETHDAI', 'kucoin' => 'ETH-DAI', 'hitbtc' => 'ETHDAI', 'loopring_amm' => 'AMM-ETH-DAI', ), 'eur' => array( 'coinbase' => 'ETH-EUR', 'binance' => 'ETHEUR', 'kraken' => 'XETHZEUR', 'bitstamp' => 'etheur', 'cex' => 'ETH:EUR', ), 'gbp' => array( 'coinbase' => 'ETH-GBP', 'kraken' => 'XETHZGBP', 'cex' => 'BTC:GBP', ), 'hkd' => array( 'liquid' => 'ETHHKD', ), 'inr' => array( 'bitbns' => 'ETH', 'buyucoin' => 'INR-ETH', 'wazirx' => 'ethinr', ), 'jpy' => array( 'kraken' => 'XETHZJPY', 'bitflyer' => 'ETH_JPY', ), 'krw' => array( 'upbit' => 'KRW-ETH', 'korbit' => 'eth_krw', ), 'mxn' => array( 'bitso' => 'eth_mxn', ), 'nis' => array( 'bit2c' => 'EthNis', ), 'sgd' => array( 'coingecko_sgd' => 'ethereum', ), 'sol' => array( 'jupiter_ag' => 'ETH/SOL', ), 'try' => array( 'btcturk' => 'ETHTRY', 'binance' => 'ETHTRY', ), 'usd' => array( 'coingecko_usd' => 'ethereum', 'coinbase' => 'ETH-USD', 'kraken' => 'XETHZUSD', 'bitstamp' => 'ethusd', 'gemini' => 'ethusd', 'bitfinex' => 'tETHUSD', 'bitmex' => 'ETHUSD', 'bitmex_u20' => 'ETHUSDU20', 'okcoin' => 'ETH-USD', 'cex' => 'ETH:USD', ), 'usdt' => array( 'binance' => 'ETHUSDT', 'kraken' => 'ETHUSDT', 'btcturk' => 'ETHUSDT', 'huobi' => 'ethusdt', 'binance_us' => 'ETHUSDT', 'hitbtc' => 'ETHUSD', 'upbit' => 'USDT-ETH', 'kucoin' => 'ETH-USDT', 'okex' => 'ETH-USDT', 'loopring_amm' => 'AMM-ETH-USDT', 'poloniex' => 'ETH_USDT', 'bitbns' => 'ETHUSDT', 'wazirx' => 'ethusdt', ), 'usdc' => array( 'kraken' => 'ETHUSDC', 'binance_us' => 'ETHUSDC', 'kucoin' => 'ETH-USDC', 'loopring_amm' => 'AMM-ETH-USDC', 'poloniex' => 'ETH_USDC', ), 'zar' => array( 'luno' => 'ETHZAR', 'binance' => 'BTCZAR', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // SOL 'SOL' => array( 'name' => 'Solana', 'mcap_slug' => 'solana', 'pair' => array( 'brl' => array( 'binance' => 'SOLBRL', ), 'btc' => array( 'coinbase' => 'SOL-BTC', 'binance' => 'SOLBTC', 'huobi' => 'solbtc', 'okex' => 'SOL-BTC', 'crypto.com' => 'SOL_BTC', 'jupiter_ag' => 'SOL/WBTC', 'hitbtc' => 'SOLBTC', 'coinex' => 'SOLBTC', ), 'eth' => array( 'okex' => 'SOL-ETH', 'binance' => 'SOLETH', 'jupiter_ag' => 'SOL/ETH', 'hitbtc' => 'SOLETH', ), 'eur' => array( 'coinbase' => 'SOL-EUR', 'binance' => 'SOLEUR', 'binance' => 'SOLEUR', 'kraken' => 'SOLEUR', ), 'gbp' => array( 'kraken' => 'SOLGBP', ), 'try' => array( 'binance' => 'SOLTRY', 'gateio' => 'SOL_TRY', ), 'usd' => array( 'coinbase' => 'SOL-USD', 'kraken' => 'SOLUSD', 'bitfinex' => 'tSOLUSD', 'hitbtc' => 'SOLUSD', 'cex' => 'SOL:USD', ), 'usdc' => array( 'jupiter_ag' => 'SOL/USDC', 'binance_us' => 'SOLUSDC', 'gateio' => 'SOL_USDC', ), 'usdt' => array( 'coinbase' => 'SOL-USDT', 'binance' => 'SOLUSDT', 'okex' => 'SOL-USDT', 'huobi' => 'solusdt', 'binance_us' => 'SOLUSDT', 'crypto.com' => 'SOL_USDT', 'kucoin' => 'SOL-USDT', 'coinex' => 'SOLUSDT', 'gateio' => 'SOL_USDT', 'bitmart' => 'SOL_USDT', 'wazirx' => 'solusdt', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // MKR 'MKR' => array( 'name' => 'Maker', 'mcap_slug' => 'maker', 'pair' => array( 'btc' => array( 'binance' => 'MKRBTC', 'coinbase' => 'MKR-BTC', 'kucoin' => 'MKR-BTC', 'okex' => 'MKR-BTC', 'hitbtc' => 'MKRBTC', 'coinex' => 'MKRBTC', ), 'dai' => array( 'kucoin' => 'MKR-DAI', 'hitbtc' => 'MKRDAI', ), 'eth' => array( 'kucoin' => 'MKR-ETH', 'hitbtc' => 'MKRETH', 'gateio' => 'MKR_ETH', ), 'krw' => array( 'korbit' => 'mkr_krw', ), 'usd' => array( 'coinbase' => 'MKR-USD', ), 'usdc' => array( 'okex' => 'MKR-USDC', ), 'usdt' => array( 'binance' => 'MKRUSDT', 'okex' => 'MKR-USDT', 'bitfinex' => 'tMKRUSD', 'hitbtc' => 'MKRUSD', 'gateio' => 'MKR_USDT', 'coinex' => 'MKRUSDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // DAI 'DAI' => array( 'name' => 'Dai', 'mcap_slug' => 'dai', 'pair' => array( 'btc' => array( 'upbit' => 'BTC-DAI', ), 'eur' => array( 'kraken' => 'DAIEUR', ), 'krw' => array( 'korbit' => 'dai_krw', ), 'usd' => array( 'coinbase' => 'DAI-USD', 'kraken' => 'DAIUSD', 'bitfinex' => 'tDAIUSD', 'gemini' => 'daiusd', ), 'usdc' => array( 'hitbtc' => 'DAIUSDC', ), 'usdt' => array( 'kraken' => 'DAIUSDT', 'okex' => 'DAI-USDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // USDC 'USDC' => array( 'name' => 'USD Coin', 'mcap_slug' => 'usd-coin', 'pair' => array( 'btc' => array( 'jupiter_ag' => 'USDC/WBTC', ), 'eur' => array( 'kraken' => 'USDCEUR', ), 'gbp' => array( 'kraken' => 'USDCGBP', ), 'sol' => array( 'jupiter_ag' => 'USDC/SOL', ), 'usd' => array( 'kraken' => 'USDCUSD', ), 'usdt' => array( 'kraken' => 'USDCUSDT', 'huobi' => 'usdcusdt', 'kucoin' => 'USDC-USDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // UNI 'UNI' => array( 'name' => 'Uniswap', 'mcap_slug' => 'uniswap', 'pair' => array( 'btc' => array( 'binance' => 'UNIBTC', ), 'eth' => array( 'loopring_amm' => 'AMM-UNI-ETH', ), 'inr' => array( 'bitbns' => 'UNI', 'wazirx' => 'uniinr', 'zebpay' => 'UNI-INR', ), 'usd' => array( 'coinbase' => 'UNI-USD', ), 'usdt' => array( 'binance' => 'UNIUSDT', 'binance_us' => 'UNIUSDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // JUP 'JUP' => array( 'name' => 'Jupiter Aggregator', 'mcap_slug' => 'jupiter', 'pair' => array( 'btc' => array( 'coingecko_btc' => 'jupiter-exchange-solana', 'jupiter_ag' => 'JUP/WBTC', ), 'sol' => array( 'jupiter_ag' => 'JUP/SOL', ), 'try' => array( 'binance' => 'JUPTRY', ), 'usd' => array( 'coingecko_terminal' => 'solana||FgTCR1ufcaTZMwZZYhNRhJm2K3HgMA8V8kXtdqyttm19', 'aevo_futures' => 'JUP-PERP', ), 'usdc' => array( 'jupiter_ag' => 'JUP/USDC', ), 'usdt' => array( 'binance' => 'JUPUSDT', 'gateio' => 'JUP_USDT', 'okex' => 'JUP-USDT', 'bybit' => 'JUPUSDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // NEON 'NEON' => array( 'name' => 'Neon', 'mcap_slug' => 'neon', 'pair' => array( 'sol' => array( 'jupiter_ag' => 'NEON/SOL', ), 'usd' => array( 'coingecko_terminal' => 'solana||GUWM1arUyDnkMGCHvJu3yt1qomJ988utqC3dFN2AUCDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // HNT 'HNT' => array( 'name' => 'Helium', 'mcap_slug' => 'helium', 'pair' => array( 'btc' => array( 'coingecko_btc' => 'helium', ), 'eth' => array( 'gateio' => 'HNT_ETH', ), 'sol' => array( 'jupiter_ag' => 'HNT/SOL', ), 'inr' => array( 'wazirx' => 'hntinr', ), 'usdc' => array( 'jupiter_ag' => 'HNT/USDC', ), 'usdt' => array( 'gateio' => 'HNT_USDT', 'wazirx' => 'hntusdt', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // RNDR 'RNDR' => array( 'name' => 'Render', 'mcap_slug' => 'render-token', 'pair' => array( 'btc' => array( 'kucoin' => 'RNDR-BTC', 'hitbtc' => 'RNDRBTC', ), 'eth' => array( 'gateio' => 'RNDR_ETH', ), 'sol' => array( 'jupiter_ag' => 'RENDER/SOL', ), 'usd' => array( 'hitbtc' => 'RNDRUSD', ), 'usdc' => array( 'jupiter_ag' => 'RENDER/USDC', ), 'usdt' => array( 'huobi' => 'rndrusdt', 'gateio' => 'RNDR_USDT', 'kucoin' => 'RNDR-USDT', 'coinex' => 'RNDRUSDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // SHDW 'SHDW' => array( 'name' => 'Shadow', 'mcap_slug' => 'genesysgo-shadow', 'pair' => array( 'sol' => array( 'jupiter_ag' => 'SHDW/SOL', ), 'usd' => array( 'coingecko_terminal' => 'solana||2wbnvtStBTRRGJhCAwpLSWxrUrfRL4H2FTsujseALsm1', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // MANA 'MANA' => array( 'name' => 'Decentraland', 'mcap_slug' => 'decentraland', 'pair' => array( 'btc' => array( 'binance' => 'MANABTC', 'ethfinex' => 'tMNABTC', 'kucoin' => 'MANA-BTC', 'upbit' => 'BTC-MANA', 'okex' => 'MANA-BTC', 'poloniex' => 'MANA_BTC', ), 'eth' => array( 'binance' => 'MANAETH', 'hitbtc' => 'MANAETH', 'kucoin' => 'MANA-ETH', ), 'krw' => array( 'upbit' => 'KRW-MANA', ), 'mxn' => array( 'bitso' => 'mana_mxn', ), 'usd' => array( 'coinbase' => 'MANA-USD', ), 'usdc' => array( 'okex' => 'MANA-USDC', ), 'usdt' => array( 'hitbtc' => 'MANAUSD', 'okex' => 'MANA-USDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // POLIS 'POLIS' => array( 'name' => 'Star Atlas DAO', 'mcap_slug' => 'star-atlas-dao', 'pair' => array( 'btc' => array( 'coingecko_btc' => 'star-atlas-dao', ), 'eur' => array( 'kraken' => 'POLISEUR', ), 'sol' => array( 'jupiter_ag' => 'POLIS/SOL', ), 'usd' => array( 'kraken' => 'POLISUSD', ), 'usdc' => array( 'jupiter_ag' => 'POLIS/USDC', ), 'usdt' => array( 'gateio' => 'POLIS_USDT', 'coinex' => 'POLISUSDT', 'bitmart' => 'ATLAS_USDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // ATLAS 'ATLAS' => array( 'name' => 'Star Atlas', 'mcap_slug' => 'star-atlas', 'pair' => array( 'btc' => array( 'coingecko_btc' => 'star-atlas', ), 'eur' => array( 'kraken' => 'ATLASEUR', ), 'sol' => array( 'jupiter_ag' => 'ATLAS/SOL', ), 'usd' => array( 'kraken' => 'ATLASUSD', 'coingecko_usd' => 'star-atlas', ), 'usdc' => array( 'jupiter_ag' => 'ATLAS/USDC', ), 'usdt' => array( 'gateio' => 'ATLAS_USDT', 'coinex' => 'ATLASUSDT', 'bitmart' => 'ATLAS_USDT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // GRAPE 'GRAPE' => array( 'name' => 'Grape Protocol', 'mcap_slug' => 'grape-protocol', 'pair' => array( 'eur' => array( 'coingecko_eur' => 'grape-2', ), 'gbp' => array( 'coingecko_gbp' => 'grape-2', ), 'sol' => array( 'jupiter_ag' => 'GRAPE/SOL', ), 'usdc' => array( 'jupiter_ag' => 'GRAPE/USDC', ), 'usd' => array( 'coingecko_usd' => 'grape-2', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // HIVE 'HIVE' => array( 'name' => 'Hive', 'mcap_slug' => 'hive', 'pair' => array( 'btc' => array( 'binance' => 'HIVEBTC', ), 'usdt' => array( 'huobi' => 'hiveusdt', 'wazirx' => 'hiveusdt', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // BONK 'BONK' => array( 'name' => 'Bonk Inu', 'mcap_slug' => 'bonk', 'pair' => array( 'btc' => array( 'coingecko_btc' => 'bonk', ), 'eth' => array( 'coingecko_eth' => 'bonk', ), 'usd' => array( 'coingecko_usd' => 'bonk', ), 'usdt' => array( 'bybit' => '1000BONKUSDT', // x1000 VAL (processed in api.php to normal val [divided by 1000]) 'huobi' => 'bonkusdt', 'gateio' => 'BONK_USDT', 'bitmart' => 'BONK_USDT', 'coinex' => 'BONKUSDT', 'bitforex' => 'coin-usdt-bonk', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // WEN 'WEN' => array( 'name' => 'WEN', 'mcap_slug' => 'wen-4', 'pair' => array( 'sol' => array( 'jupiter_ag' => 'WEN/SOL', ), 'usd' => array( 'coingecko_terminal' => 'solana||5WGx6mE9Xww3ocYzSenGVQMJLCVVwK7ePnYV6cXcpJtK', ), 'usdc' => array( 'jupiter_ag' => 'WEN/USDC', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // PURI 'PURI' => array( 'name' => 'Puri', 'mcap_slug' => '', 'pair' => array( 'usd' => array( 'coingecko_terminal' => 'solana||AA4fy1fFueabPRx7F6pxghRNsgxcMVgYZFtqcBrpq4TM', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // SHOPSTOCK 'SHOPSTOCK' => array( 'name' => 'Shopify Inc', 'mcap_slug' => 'SHOP:TSE', 'pair' => array( 'cad' => array( 'alphavantage_stock' => 'SHOP.TRT', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // DTGSTOCK 'DTGSTOCK' => array( 'name' => 'Daimler Truck Holding AG', 'mcap_slug' => 'DTG:ETR', 'pair' => array( 'eur' => array( 'alphavantage_stock' => 'DTG.DEX', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // COINSTOCK 'COINSTOCK' => array( 'name' => 'Coinbase Global Inc', 'mcap_slug' => 'COIN:NASDAQ', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'COIN', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // AMZNSTOCK 'AMZNSTOCK' => array( 'name' => 'Amazon Inc', 'mcap_slug' => 'AMZN:NASDAQ', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'AMZN', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // AMDSTOCK 'AMDSTOCK' => array( 'name' => 'Advanced Micro Devices', 'mcap_slug' => 'AMD:NASDAQ', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'AMD', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // NFLXSTOCK 'NFLXSTOCK' => array( 'name' => 'Netflix Inc', 'mcap_slug' => 'NFLX:NASDAQ', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'NFLX', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// // MCDSTOCK 'MCDSTOCK' => array( 'name' => 'McDonalds Corp', 'mcap_slug' => 'MCD:NYSE', 'pair' => array( 'usd' => array( 'alphavantage_stock' => 'MCD', ), ) // pair END ), // Asset END //////////////////////////////////////////////////////////////////// ); // All assets END /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// PORTFOLIO ASSETS CONFIGURATION -END- ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// // DON'T LEAVE ANY WHITESPACE AFTER THE CLOSING PHP TAG! ?>