taoteh1221 / Open_Crypto_Tracker

Bitcoin / Alts private portfolio tracker, with email / text / alexa / telegram price alerts, charts, leverage support and much more.
https://taoteh1221.github.io
GNU General Public License v3.0
97 stars 23 forks source link
bitcoin btc crypto cryptocurrency eth ethereum investing portfolio sol solana

############################################################################################################################ Copyright 2014-2024 GPLv3, Open Crypto Tracker by Mike Kilday: Mike@DragonFrugal.com (leave this copyright / attribution intact in ALL forks / copies!) ############################################################################################################################

Privately track ANY Crypto on your home network or internet website, for FREE. 100% FREE / open source / PRIVATE cryptocurrency portfolio tracker. Email / text / Alexa / Telegram price alerts, price charts, mining calculators, leverage / gain / loss / balance stats, news feeds + more. Privately track Bitcoin / Ethereum / unlimited cryptocurrencies. Customize as many assets / markets / alerts / charts as you want.

The primary goal of the Open Crypto Tracker project is to provide a 100% FREE / PRIVATE / Open Source cryptocurrency tracker to the crypto community, that 'just works', is easy to use, AND maintains a high level of user privacy / security. Previously known as 'DFD Cryptocoin Values', Open Crypto Tracker has been in active development since August of 2014. The source code was released on github.com ( https://github.com/taoteh1221/Open_Crypto_Tracker ) later in September of 2015, under the "Open Source" GPL (version 3) license.

Anybody can FULLY audit the security of this app's codebase (or hire someone to do so for them), and report or fix any issues found, or contribute new features. You can even 'fork' your own version of the codebase, as long as you leave licensing / attribution in place within your fork. More information on project ethos and contributing to this project can be found in CONTRIBUTING.txt (in the app's main directory).

############################################################################################################################

Please review the possible solutions below for any issues you may have, before contacting the developers for support. If you are still having issues after trying everything relevant in this document (AND IN THE SEPERATE FILE TROUBLESHOOTING.txt), please reach out to the developers for help in the comm channels listed below. Any feedback is GREATLY appreciated, as it helps make this app better for everyone! :)

Web server setup / install (for Server Edition) is available for $30 hourly if needed (see 'Manual Install' section for managed hosting, or try the auto-install bash script for self-hosted). PM me on Twitter / Skype / Telegram @ taoteh1221, or get a hold of me using the below-listed contact methods.

NOTES FOR BLACKHATS:

P̵̫̊h̴̪̑ì̶̯s̵̫̀h̸̠̆i̶̔͜n̸̞͒g̶̳̏ ̸̺͐a̴͎̓n̷̜̕d̴̻͆ ̵̙̕b̶͓͝ř̵̗u̵̼̔t̷͖͐e̴̢͑ ̵̦͊f̸̱̃ö̶̦́r̷͉͌c̴̍͜ê̸͈ ̶̬̍l̴̙̾ō̸̗g̵̫̿ḯ̴̱ṅ̸̖ ̴̘́/̴̣̅ ̸̳̈d̶̡̃ẹ̶̈c̸̲͂r̶̰̋ỹ̵̨p̶̥͂t̷͍̎i̶̮̕o̸̝̎n̸̟͑ ̴͎͑/̶̹̑ ̶͉̎O̵̦̿T̵̜̄H̶̗̓Ę̶͗R̸̪̋ ̸̦̾ȃ̷̰t̸̪̂ṯ̸̐ä̶͈́c̸̫̈k̶͈̍s̴̳̀ ̸͇̎w̸̢͝i̶͕̍l̵̦͗l̵̗̽ ̷̱̀Ň̴͍Ō̶͓T̶̙́ ̸̺̆w̶̖̓o̸̠͝r̴̪̃k̵̞͠ ̴̪̎o̴͎̽n̸͎͘ ̸̗͘m̴̖͗ẽ̸̠,̴̨̆ ̴͙̇G̵̬̿Ĭ̴͍V̶͉̇E̸̳̐ ̴̯̾U̸̺͂P̶̩̀ ̴̨͌A̵͋͜L̴̤̎R̷̖͘Ē̸͕Â̸͍D̸̨̒Ÿ̶͜!̶͖͛

Project Website: https://taoteh1221.github.io

LIVE PUBLIC DEMO: https://dragonfrugal.org/open-crypto-tracker

Download Latest Version: https://github.com/taoteh1221/Open_Crypto_Tracker/releases

Have a question, feature you'd like to see added, or an issue to report? You can do that at the following URLs...

Issue Reporting (Features / Issues / Help): https://github.com/taoteh1221/Open_Crypto_Tracker/issues

Discord: https://discord.gg/WZVK2nm

Telegram: https://t.me/dragonfrugal

Twitter: https://twitter.com/taoteh1221

Private Contact: https://dragonfrugal.com/contact

Please show your appreciation for my crypto apps, IF you enjoy using them. Buying me a coffee / beer means WAY MORE to me than large donations. It's about letting me know you appreciate them / find them useful, NOT about me making money. Think of it as a PRIVATE app usage survey anon! :) All crypto addresses are bot-monitored (for balance changes) on active / well-secured / backed-up HD wallets...

Bitcoin: 3Nw6cvSgnLEFmQ1V4e8RSBG23G7pDjF3hW

Ethereum: 0x644343e8D0A4cF33eee3E54fE5d5B8BFD0285EF8

Solana: GvX4AU4V9atTBof9dT9oBnLPmPiz3mhoXBdqcxyRuQnU

Github Sponsors: https://github.com/sponsors/taoteh1221

Patreon: https://www.patreon.com/dragonfrugal

PayPal: https://www.paypal.me/dragonfrugal

Venmo: https://account.venmo.com/u/taoteh1221

Cash App: https://cash.app/$taoteh1221

############################################################################################################################

FEATURES

-ALWAYS will remain 100% FREE F.O.S.S. software (no need to register and pay premium access fees).

-Optimized for low power devices (raspberrypi, pine64, etc).

-Desktop / Server Editions available (see README.txt for differences / usage documentation)

-Admin interface, to allow easily viewing / changing the app configuration (alerts / charts / markets / API / backups / logs / etc).

-Automated and user-friendly installation / upgrade script for Debian device (Ubuntu / DietPi / RaspberryPi / Armbian / Etc) app setup (server edition), on your home / internal network or website.

-PRIVATELY connects DIRECTLY to APIs / servers for data and comms (no "phoning home" to a middleman server), with optional proxy support for API connections.

-Option to use proxies for external API requests, and SMTP authentication for email sending.

-Secure HTTPS / SSL web pages (for Server Edition), username / password protection, and privacy mode in the portfolio interface, for privacy and security.

-Support for over 40 exchanges (including DeFi), and over 20 market pairs (country fiat currency or secondary crypto).

-Price change alerts by email / text / Alexa / Telegram (configurable alert parameters available).

-Add / edit / delete your own portfolio assets list, with your favorite exchanges / market pairs.

-Add / edit / delete your own price alerts and price charts for assets / exchanges / market pairs (supports multiple exchanges / market pairs per asset).

-Import / export your portfolio in CSV (spreadsheet) file format.

-Cryptocurrency portfolio subtotal summaries, and total portfolio worth (in crypto and your local primary currency), including value gain / loss data (with tracking support for long / short margin leverages), portfolio balance data, and marketcap data.

-A news page with over 60 different cryptocurrency-related RSS feeds to select from, including company and organization blogs / news sites / podcasts / youtube channels / reddit and stackexchange forums, with ability to add / remove feeds in the app configuration.

-Newly added news feed posts, chart data backup archives, and app error / debugging logs sent to your email.

-External resources page, includes links to marketcap stats sites / news sites / wallets / exchanges / block explorers / developer resources / newsletters / podcasts / social media / etc.

-Detailed price charts (base values in crypto and your local primary currency), with spot price / 24 hour volume, zooming, and crosshair hovering.

-Detailed portfolio statistics, including Asset Performance side-by-side comparision charts with user-defined time periods, and Portfolio Balance pie charts to get a better feel for your asset allocations.

-Switch between light / dark (night mode) theme colors.

-Crypto tools (QR code generator, altcoin trade preview / marketcap calculator in BTC and your local primary currency, etc).

-Mining calculators, to determine coin mining profitability (in crypto and your local primary currency, includes electricity costs and pool fees).

-Help page in easy-to-use FAQ format, for common issues (with support / contact links if you need additional assistance).

-System stats / alerts in the interface, by text or email or other comms, and in debugging logs (uptime / load averages / temperature / free disk space / used system memory / portfolio cookies and cache sizes, if available on your device), to help keep your Raspberry Pi or other device running within healthy parameters.

-System / configuration checking, alerting, logging, and auto-correcting (where possible).

-Detailed error logging and debugging (with adjustable verbosity / debug modes), to assist with troubleshooting / installation / configuration of the app.

-Plugin system, to use built-in / your own custom plugins for additional features.

-Internal restful API built-in, to allow other external apps to query real-time market data in over 20 country fiat currencies / secondary crypto pairs (raw data also available).

-Secure webhook capability (via the plugin system), allowing other external apps to communicate in real-time safely (separate keys per service, without giving away the master webhook key).

############################################################################################################################

INSTALLATION AND SETUP...

IMPORTANT NOTES: YOU WILL BE PROMPTED TO CREATE AN ADMIN LOGIN (FOR SECURITY OF THE ADMIN AREA), #WHEN YOU FIRST RUN THIS APP#. IT'S #HIGHLY RECOMMENDED TO DO THIS IMMEDIATELY#, ESPECIALLY ON PUBLIC FACING / KNOWN SERVERS, #OR SOMEBODY ELSE MAY BEAT YOU TO IT#.

Recommended MINIMUM system specs:

1 Gigahertz CPU / 512 Megabytes RAM / HIGH QUALITY 16 Gigabyte MicroSD card (running Nginx or Apache headless with PHP v7.2+)

Setting Up The 'Desktop Edition' (runs very easily, like any other normally-downloaded native app)

To install as a normal native app on your laptop / desktop, download the "Desktop Edition" of the app here:

https://github.com/taoteh1221/Open_Crypto_Tracker/releases

After downloading, unzip the contents of the download to your desktop or other preferred file location (it doesn't matter, put it wherever you want to). Now use your operating system's file browser to enter the app's main directory, and click on "RUN_CRYPTO_TRACKER" to launch the app (in Windows Desktop Edition, click "INSTALL_WEB_SERVER_FIRST" beforehand). TO USE PRICE CHARTS AND PRICE ALERTS TO EMAIL / TEXT / ALEXA / TELEGRAM, YOU #MUST# LEAVE THE APP RUNNING UNLESS YOU MANUALLY SETUP A CRON JOB! (see: "Setting Up Price Charts And Email / Text / Telegram / Alexa Price Alerts")

IMPORTANT NOTES FOR WINDOWS USERS:

YOU NEED "7 ZIP" INSTALLED, TO OPEN AND EXTRACT THE DOWNLOAD ARCHIVE:

https://www.geeksforgeeks.org/how-to-download-and-install-7-zip-on-windows

IMPORTANT NOTES FOR LINUX USERS:

IF YOU GET THE ERROR: "CGI program sent malformed or too big", YOU LIKELY NEED TO BUILD A PHP BINARY THAT IS COMPATIBLE WITH YOUR UNIQUE SYSTEM SETUP. Try running the script "FIX-LINUX-DESKTOP.bash" (compatible with Debian / Fedora) in the Desktop Edition main folder, which should fix things automatically for you. Just make sure it's file permissions are set to "executable" (chmod +x, OR chmod 755 should do that). IMPORTANT STEP: YOU MUST SHUT DOWN THE DESKTOP EDITION OF THIS APP BEFOREHAND, OTHERWISE THIS SCRIPT CANNOT INSTALL THE CREATED PHP BINARY IT BUILDS!

Automatic Install / Upgrade For 'Server Edition' On Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian, On Home / Internal Network (recommended way to PRIVATELY / CHEAPLY use this app)

To install / upgrade everything automatically on Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian, copy => paste => run the command below in a terminal program (using the 'Terminal' app in the system menu, or over remote SSH), while logged in AS THE USER THAT WILL RUN THE APP (user must have sudo privileges):

wget --no-cache -O FOLIO-INSTALL.bash https://tinyurl.com/install-crypto-tracker;chmod +x FOLIO-INSTALL.bash;sudo ./FOLIO-INSTALL.bash

Follow the prompts. This automated script gives you the options to: install / uninstall a PHP app server automatically, download / install / configure / uninstall the latest version of the Open Crypto Tracker app automatically, setup a cron job automatically (for price alerts / price charts), and setup SSH (to update / install web site files remotely to the app server via SFTP) automatically.

When the auto-install is completed, it will display addresses / logins to access the app (write these down / save them for future use).

SEE /DOCUMENTATION-ETC/RASPBERRY-PI/ for additional information on securing and setting up Raspberry Pi OS (disabling bluetooth, firewall setup, remote login, hostname, etc).

Manual Installation For 'Server Edition':

Just upload / move this app's files to your PHP-based app server directory (with an FTP client like FileZilla) and you should be all set, unless your host is a strict setup related to file writing permissions, in which case the 'cache' directory permissions should be set to '770' chmod on unix / linux systems (or 'readable / writable' on windows systems).

Your web host must have CURL modules activated on your HTTP server. Most web hosting companies provide this "out-of-the-box" already. This app will detect whether or not CURL is setup on your website server (and also alert you to any other missing required system components / configurations).

WINDOWS 10 / 11 USERS WHO ARE USING XAMPP WILL NEED TO ENABLE GD FOR PHP (FOR THE ADMIN LOGIN CAPTCHA SECURITY) BEFORE USING THIS APP. PLEASE SEE THE SCREENSHOT LOCATED AT /DOCUMENTATION-ETC/XAMPP-ENABLE-GD.png FOR A VISUAL ON SETTING THIS UP EASILY.

See "Setting Up Price Charts And Email / Text / Telegram / Alexa Price Alerts", for how to setup a cron job / scheduled task for additional features.

Setting Up Price Charts And Email / Text / Telegram / Alexa Price Alerts (get notifications sent to you, even when your PC / Laptop is offline)...

IMPORTANT NOTES: THIS IS FOR 'SERVER EDITION' ONLY, UNLESS YOU DISABLE 'desktop_cron_interval' (AND reload / restart app) IN THE POWER USER CONFIG IN THE 'DESKTOP EDITION'...IN WHICH CASE READ THE CRON JOB INSTALL SECTIONS BELOW THAT ARE RELEVANT TO YOUR OPERATING SYSTEM.

You can setup price charts or price alerts in your app install. Price alerts can be sent to email, mobile phone text, Telegram, and Alexa notifications. You will be alerted when the [configured default primary currency] price of an asset goes up or down a certain percent or more (whatever percent you choose in the settings), for specific exchange / base pair combinations for that asset. You can even setup alerts and charts for multiple exchanges / base pairs for the same asset.

Running price charts or price alerts requires setting up a cron job or scheduled task on the Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian / Windows 10 machine or website server (this is automated for Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian users using the automated FOLIO-INSTALL.bash script / Windows 10 users who run the ADD-WIN10-SCHEDULER-JOB.bat file), otherwise charts / alerts will not work. Also see the related settings in Admin Config for charts / alerts.

Once a cron job or scheduled task is setup ON YOUR APP SERVER, there is no need to keep your PC / Laptop turned on (UNLESS you are running the app server on the same device). The price charts and price alerts run automatically from your Open Crypto Tracker app server installation. If you encounter errors or the charts / alerts don't work during setup, check the app logs file at /cache/logs/app_log.log for errors in your configuration setup. Basic checks are performed and errors are reported there, and on the Settings page.

If you decide to turn on cron job / scheduled task based features, then the file cron.php (located in the primary directory of this app) must be setup as a cron job or scheduled task on your Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian / Windows 10 / website server device.

As mentioned previously, if you run the automated setup / install script for Debian / Ubuntu / DietPi OS / RaspberryPi OS / Armbian / Windows 10 devices on home / internal networks, automatic cron job / scheduled task setup is offered as an option during this process. If you are using a full stack website host for hosting a TLD website domain name remotely, consult your app server host's documentation or help desk for their particular method of setting up a cron job.

Note that you should have the cron job run every 5, 10, 15, 20, or 30 minutes 24/7, based on how often you want chart data points / alerts / any other cron based features to run. Setting up the cron job to run every 20 minutes is the RECOMMENDED lowest time interval. IF SET BELOW 20 MINUTES, light (time period) chart disk writes may be excessive for lower end hardware (Raspberry PI MicroSD cards etc). IF SET #VERY LOW# (5 / 10 minutes), the free exchange APIs may throttle / block your data requests temporarily on occasion for requesting data too frequently (negatively affecting your alerts / charts).

FOR WINDOWS 10 / 11 USERS, just click and run the file 'ADD-WIN10-SCHEDULER-JOB.bat' found in the main directory of the app, follow the prompts, and everything will be automatically setup for you (if PHP-CLI isn't auto-detected, it allows you to manually enter the path to it). As long as you login into THE SAME Windows account after system startup, the scheduled task will run until your computer is shut off OR you logout of that user account (SO YOU NO LONGER NEED TO LEAVE THE DESKTOP EDITION APP RUNNING ANYMORE FOR SCHEDULED TASKS [if you use that edition]). ADDITIONALLY, IF YOU ARE RUNNING THE DESKTOP EDITION, YOU'LL ALSO NEED TO SET 'desktop_cron_interval' TO ZERO (IN THE ADMIN CONFIG "POWER USER" SECTION), AND RESTART / RELOAD THE DESKTOP APP.

FOR LINUX / MAC USERS, here is an example cron job command line for reference below (NOT including any cron parameters your host interface may require), to setup as the "command" within a cron job. Replace system paths in the example with the correct ones for your server (TIP - A very common path to PHP on a server is /usr/bin/php):

/path/to/php -q /home/username/path/to/website/this_app/cron.php

FOR LINUX (if you have systemd), here is another example of a COMPLETE cron command that can be added by creating the following file (you'll need sudo/root permissions): /etc/cron.d/cryptocoin on a linux-based machine with systemd (to run every 20 minutes 24/7)...play it safe and add a newline after it as well if you install examples like these (must be owned by "root" / chmod permission set to 644):

/20 * WEBSITE_USERNAME_GOES_HERE /usr/bin/php -q /var/www/html/cron.php > /dev/null 2>&1

FOR LINUX / MAC, if your system DOES NOT have the directory /etc/cron.d/ on it, then NEARLY the same format (minus the username) can be installed via the legacy 'crontab -e' command (YOU MUST BE logged in as the user you want running the cron job):

/20 * /usr/bin/php -q /var/www/html/cron.php > /dev/null 2>&1

IMPORTANT CRON JOB NOTES:

MAKE SURE YOU ONLY USE EITHER /etc/cron.d/, or 'crontab -e', NOT BOTH...ANY OLD DUPLICATE CRONTAB ENTRIES WILL RUN YOUR CRON JOB TOO OFTEN. If everything is setup properly, and the cron job still does NOT run, your particular server MAY require the cron.php file permissions to be set as 'executable' ('750' chmod on unix / linux systems) to allow running it.

Using the built-in (internal) REST API:

This app has a built-in (internal) REST API available, so other external apps can connect to it and receive market data, including market conversion (converting the market values to their equivalent value in country fiat currencies and secondary cryptocurrency market pairs).

To see a list of the supported assets in the API, use the endpoint:

/api/asset_list

To see a list of the supported exchanges in the API, use the endpoint:

/api/exchange_list

To see a list of the supported markets for a particular exchange in the API, use the endpoint:

/api/market_list/[exchange name]

To see a list of the supported conversion currencies (market values converted to these currency values) in the API, use the endpoint:

/api/conversion_list

To get raw market values AND also get a market conversion to a supported conversion currency (see ALL requested market values also converted to values in this currency) in the API, use the endpoint:

/api/market_conversion/[conversion currency]/[exchange1-asset1-pair1],[exchange2-asset2-pair2],[exchange3-asset3-pair3]

To skip conversions and just receive raw market values in the API, you can use the endpoint:

/api/market_conversion/market_only/[exchange1-asset1-pair1],[exchange2-asset2-pair2],[exchange3-asset3-pair3]

For security, the API requires a key / token to access it. This key must be named "api_key", and must be sent with the "POST" data method.

IMPORTANT REST API NOTES:

The 'Linux Desktop Edition' of this app has a slightly different endpoint format for the internal REST API (due to unavoidable feature restrictions). Login to your Admin Config area, and see the 'Internal API / Webhook' section, for the endpoint and example code required to use the internal REST API.

SEE /DOCUMENTATION-ETC/REST-API-EXAMPLES.txt FOR EXAMPLES OF CALLING THE API WITH CURL, JAVASCRIPT, AND PHP

Adding / editing / deleting assets and markets in the portfolio assets:

IMPORTANT NOTE: DOING THIS MANUALLY IN A TEXT EDITOR IS ONLY REQUIRED FOR HIGH SECURITY ADMIN MODE. AS OF v6.00.39 AND HIGHER, YOU CAN NOW DO IT VIA AN EASY-TO-USE INTERFACE, IN THE "Asset Tracking => Portfolio Assets" ADMIN INTERFACE.

Below is an example for editing your assets / markets in the file config.php (located in the primary directory of this app), within the PORTFOLIO ASSETS section. It's very quick / easy to do (after you get the hang of it, lol). Also see the text file /DOCUMENTATION-ETC/CONFIG-EXAMPLE.txt, for a pre-configured set of default settings and example assets / markets.

Contact any supported exchange's help desk if you are unaware of the correct formatting of the trading pair naming you are adding in the configuration file (examples: Kraken has arbitrary Xs inserted in SOME older pair names, HitBTC sometimes has tether pairs without the "T" in the symbol name, and bybit can prepend "1000" to low-unit-value coin's market IDs).

Support for over 50 trading pairs (country fiat currency or secondary crypto, contact me to request more):

AED / ARS / AUD / BDT / BRL / BTC / CAD / CHF / CLP / CZK / DAI / DKK / ETH / EUR / GBP / GEL / HKD / HUF / IDR / INR / JPY / JUP / KRW / KWD / LKR / MKR / MXN / MYR / NGN / NIS / NOK / NZD / PHP / PKR / PLN / RMB / RUB / SAR / SEK / SGD / SOL / THB / TRY / TWD / UAH / UNI / USD / USDC / USDT / VND / ZAR

Support for over 70 exchanges (contact me to request more):

aevo_futures / alphavantage_stock / binance / binance_us / bit2c / bitbns / bitfinex / bitflyer / bitmart / bitmex / bitmex_u20 / bitmex_z20 / bitso / bitstamp / btcmarkets / btcturk / buyucoin / bybit / cex / coinbase / coindcx / coinex / coingecko_aed / coingecko_ars / coingecko_bdt / coingecko_btc / coingecko_clp / coingecko_czk / coingecko_dkk / coingecko_eth / coingecko_gel / coingecko_hkd / coingecko_huf / coingecko_idr / coingecko_inr / coingecko_kwd / coingecko_lkr / coingecko_myr / coingecko_ngn / coingecko_nis / coingecko_nok / coingecko_nzd / coingecko_php / coingecko_pkr / coingecko_pln / coingecko_rmb / coingecko_rub / coingecko_sar / coingecko_sek / coingecko_sgd / coingecko_terminal / coingecko_thb / coingecko_twd / coingecko_uah / coingecko_usd / coingecko_vnd / coinspot / crypto.com / gateio / gemini / hitbtc / huobi / idex / jupiter_ag / korbit / kraken / kucoin / loopring_amm / luno / okcoin / okex / poloniex / presale_usd_value / unocoin / upbit / wazirx / zebpay

Nearly Unlimited Assets Supported (whatever assets exist on supported exchanges).

Ethereum ICO subtoken support (pre-exchange listing) has been built in (values are static ICO values in ETH).

USAGE (ADDING / UPDATING COINS):

                // UPPERCASE_COIN_TICKER_HERE
                'UPPERCASE_COIN_TICKER_HERE' => array(

                    'name' => 'COIN_NAME_HERE',
                    // Website slug (URL data) on coinmarketcap / coingecko, leave blank if not listed there
                    'mcap_slug' => 'WEBSITE_SLUG_HERE', 
                    // MARKET IDS ARE CASE-SENSITIVE!
                    'pair' => array(

                            'lowercase_pair_abrv' => array(
                                      'lowercase_exchange1' => 'MARKETIDHERE',
                                      'lowercase_exchange2' => 'ASSET/PAIR',
                                      'lowercase_exchange3' => 'ASSET-PAIR',
                                      'lowercase_exchange4' => 'ASSET_PAIR',
                                      'lowercase_exchange5' => 'ASSETPAIR',
                                      // GENERIC PAIR PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      // LOWERCASE_PAIR_ABRV MUST BE SUPPORTED BY COINGECKO'S 'vs_currencies' API PARAMETER!
                                      'coingecko_LOWERCASE_PAIR_ABRV' => 'coingecko_api_id_here',
                                      ),

                            'eth' => array(
                                      'lowercase_exchange1' => 'MARKETIDHERE',
                                      'lowercase_exchange2' => 'ASSET/ETH',
                                      'lowercase_exchange3' => 'ASSET-ETH',
                                      'lowercase_exchange4' => 'ASSET_ETH',
                                      'lowercase_exchange5' => 'ASSETETH',
                                      // GENERIC ETH PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      'coingecko_eth' => 'coingecko_api_id_here',
                                      ),

                            'btc' => array(
                                      // GENERIC BTC PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      'coingecko_btc' => 'coingecko_api_id_here',
                                      ),

                            'usd' => array(
                                      // GENERIC USD PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      'coingecko_usd' => 'coingecko_api_id_here',
                                      // GENERIC *DEX* USD PRICE (IF NOT LISTED *ANYWHERE* BESIDES DEXS [DECENTRALIZED EXCHANGES])
                                      'coingecko_terminal' => 'network_name_here||pool_address_here',
                                      // Token Presales IN USD...TOKENNAME MUST be defined in 'token_presales_usd' (Admin Config CURRENCY SUPPORT section)
                                      'presale_usd_value' => 'TICKER_HERE', 
                                      ),

                            'eur' => array(
                                      // GENERIC EUR PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      'coingecko_eur' => 'coingecko_api_id_here',
                                      ),

                            'gbp' => array(
                                      // GENERIC GBP PRICE (IF NO EXHANGE APIs AVAILABLE)
                                      // USE COINGECKO'S API ID FOR THIS ASSET (SEE COINGECKO ASSET PAGE'S INFO SECTION) 
                                      'coingecko_gbp' => 'coingecko_api_id_here',
                                      ),

                    ) // pair END

                ), // Asset END

                // UPPERCASE_STOCK_TICKER_HERESTOCK
                // (*ALWAYS* APPEND WORD "STOCK" TO THE TICKER HERE, to designate as a stock [NOT crypto / fiat])
                'UPPERCASE_STOCK_TICKER_HERESTOCK' => array(

                    'name' => 'STOCK_NAME_HERE',
                    // Website slug (URL data) on Google Finance, leave blank if not listed there
                    'mcap_slug' => 'UPPERCASE_STOCK_TICKER_HERE:EXCHANGE_NAME_HERE', 
                    // MARKET IDS ARE CASE-SENSITIVE!
                    'pair' => array(

                            'usd' => array(
                                    'alphavantage_stock' => 'ALPHAVANTAGE_TICKER_ID_HERE',
                                           ),

                    /*
                    ///////////////////////////////////////////////////
                    'ALPHAVANTAGE_TICKER_ID_HERE' EXAMPLES FOR STOCKS...
                    (SEE EXAMPLES IN CONFIG.PHP FOR MORE DETAILS ON ADDING STOCKS)
                    ///////////////////////////////////////////////////

                    IBM (United States):
                    IBM

                    Tesco PLC (UK - London Stock Exchange):
                    TSCO.LON

                    Shopify Inc (Canada - Toronto Stock Exchange):
                    SHOP.TRT

                    GreenPower Motor Company Inc (Canada - Toronto Venture Exchange):
                    GPV.TRV

                    Daimler Truck Holding AG (Germany - XETRA):
                    DTG.DEX

                    Reliance Industries Limited (India - BSE):
                    RELIANCE.BSE

                    SAIC Motor Corporation (China - Shanghai Stock Exchange):
                    600104.SHH

                    China Vanke Company Ltd (China - Shenzhen Stock Exchange):
                    000002.SHZ

                    ///////////////////////////////////////////////////
                    */

                    ) // pair END

                ), // Asset END

// SEE /DOCUMENTATION-ETC/CONFIG-EXAMPLE.txt FOR A FULL EXAMPLE OF THE DEFAULT CONFIGURATION (ESPECIALLY IF YOU MESS UP config.php, lol)

################################################################################################################

SEE /DOCUMENTATION-ETC/PLUGINS-README.txt for creating your own custom plugins (custom code that adds additional features)

See TROUBLESHOOTING.txt for additional tips / troubleshooting FAQs.