We replaced InfoServices with Currencyinfo, a powerful, self-hosted, and built-from-scratch crypto and fiat currency rates service provider.
ADAMANT InfoServices is a crypto and fiat currency rates service provider. It collects rates from MOEX, Currency-Api, ExchangeRate, Coinmarketcap, CryptoCompare and Coingecko and calculates cross-rates, and provides information via API.
It is own-hosted service run on your server, it stores all rates in local database, updated with refreshInterval frequency.
Features:
- Collects rates from MOEX for fiat tickers
- Collects rates from Currency-Api for fiat tickers
- Collects rates from ExchangeRate (Currency-Api2) for fiat tickers
- Collects rates from Coinmarketcap for crypto tickers
- Collects rates from CryptoCompare for crypto tickers
- Collects rates from Coingecko for crypto tickers
- Own-hosted service
- Reliable: uses different sources for one coin, and notifies about significant deviation
- Minimum API calls. Free API keys fit.
- Notifications in case of errors to Slack
- Stores history on server, no need to make additional request
- Easy setup, settings are in a config file
- Provides RESTful API
- It is fast; low hardware requirements
- Open source
- Free to use for any purposes
- Ubuntu 18+ (we didn't test with others)
- NodeJS v16+
- MongoDB (installation instructions)
su - adamant
git clone https://github.com/Adamant-im/adamant-currencyinfo-services
cd ./adamant-currencyinfo-services
npm i
nano config.json
Parameters:
crypto_cmcList of coins to fetch rates from Coinmarketcapcrypto_cmc_coinidsList of Coinmarketcap Symbol-Id pairs like { "ADM": 3703 } to fetch rates from Coinmarketcap. Used when one coin symbol is used for different coins. Coin ids can be seen via /cryptocurrency/quotes/latest?slug=coinname request.crypto_ccList of coins to fetch rates from Cryptocomparecrypto_cgList of coins to fetch rates from Coingecko. Better usecrypto_cg_coinids.crypto_cg_coinids<string, array> List of Coingecko coin Ids to fetch rates from Coingecko. Used when one coin symbol is used for different coins. Coin ids can be seen on https://api.coingecko.com/api/v3/coins/list.fiatList of fiat pairs and their codes to fetch from MOEXbaseCoinsList of coins to calculate all available pairs usingcryptoandfiatcmcApiKeyCoinmarketcap API key. You must get yours at https://coinmarketcap.com/api/.ccApiKeyCryptocompare API key. You must get yours at https://min-api.cryptocompare.com/.cgApiKeyNo need for Coingecko API key. Leave it default.portPort for providing InfoServices Rates API. It will be available at http://IP:port.refreshIntervalRefresh rate in minutes to fetch data from data sources. Note: often requests can lead to blocking of your API keys.slackToken for Slack alerts for InfoService administrator. No alerts if not set.adamant_notifyADM address to receive alerts for InfoService administrator. Recommended.passPhraseThe secret phrase for account you want to send alerts from. Obligatory in case of you setadamant_notifynode_ADM<string, array> List of nodes for API work, obligatorily in case of you setadamant_notifylog_levelThe software will use verbosity according tolog_level. It can benone<error<warn<info<log.
You can start ADAMANT InfoServices with node app command, but it is recommended to use process manager:
pm2 start --name info-service app.js
crontab -e
Add string:
@reboot cd /home/adamant/adamant-currencyinfo-services && pm2 start --name info-service app.js
To test InfoServices successfully installed, try to open link http://IP:36668/get?coin=ADM in web browser.
For usage see InfoServices API documentation.