All Projects → pRoy24 → Tokencaps

pRoy24 / Tokencaps

Licence: gpl-3.0
A middleware framework and persistence layer to aggregate and normalize crypto-currency data.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tokencaps

Peatiocryptoexchange
An open-source Crypto-Currency exchange. Peatio v3.0 Coming Soon !
Stars: ✭ 141 (+19.49%)
Mutual labels:  blockchain, cryptocurrency, cryptocurrency-exchanges
Awesome Cryptocurrency Security
😎 Curated list about cryptocurrency security (reverse / exploit / fuzz..)
Stars: ✭ 102 (-13.56%)
Mutual labels:  blockchain, cryptocurrency
Coinbase Pro Node
Coinbase Pro API written in TypeScript and covered by tests.
Stars: ✭ 116 (-1.69%)
Mutual labels:  cryptocurrency, fintech
Ark Js
An ARK Client for JavaScript.
Stars: ✭ 103 (-12.71%)
Mutual labels:  blockchain, cryptocurrency
Esteem Surfer
Ecency desktop formerly known as Esteem Surfer - reimagined desktop social wallet, contribute and get rewarded (for Windows, Mac, Linux)
Stars: ✭ 100 (-15.25%)
Mutual labels:  blockchain, cryptocurrency
Barong
Barong auth server
Stars: ✭ 100 (-15.25%)
Mutual labels:  blockchain, cryptocurrency-exchanges
Coco
The fastest crypto online
Stars: ✭ 103 (-12.71%)
Mutual labels:  blockchain, cryptocurrency
Swiftyeos
SwiftyEOS is an open-source framework for interacting with EOS, written in Swift. Can be used on iOS and macOS.
Stars: ✭ 94 (-20.34%)
Mutual labels:  blockchain, cryptocurrency
Qewd
Quick and Easy Web Development
Stars: ✭ 106 (-10.17%)
Mutual labels:  redis, express
Web3js Tracker Example
Blockchain transactions tracker example for ETH and ERC20 tokens made with web3.js
Stars: ✭ 107 (-9.32%)
Mutual labels:  blockchain, cryptocurrency
Zvt
modular quant framework.
Stars: ✭ 1,801 (+1426.27%)
Mutual labels:  cryptocurrency, fintech
Dotnet Stellar Sdk
Stellar API SDK for .NET Core 2.x and .NET Standard 2.0
Stars: ✭ 97 (-17.8%)
Mutual labels:  blockchain, cryptocurrency
Etherwalletkit
Ethereum Wallet Toolkit for iOS - You can implement an Ethereum wallet without a server and blockchain knowledge.
Stars: ✭ 96 (-18.64%)
Mutual labels:  blockchain, cryptocurrency
Utopian.io
Utopian.io Frontend - Utopian wants to reward open-source contributors!
Stars: ✭ 101 (-14.41%)
Mutual labels:  blockchain, cryptocurrency
Chat.io
A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis.
Stars: ✭ 1,325 (+1022.88%)
Mutual labels:  redis, express
Explorer
A Blockchain Explorer for ARK using Vue.js and Tailwind CSS.
Stars: ✭ 102 (-13.56%)
Mutual labels:  blockchain, cryptocurrency
Hummingbot chinese
hummingbot中文资源
Stars: ✭ 114 (-3.39%)
Mutual labels:  blockchain, cryptocurrency
Libreselery
Continuous distribution of funding to your project contributors and dependencies. Integrated into GitHub Actions
Stars: ✭ 92 (-22.03%)
Mutual labels:  cryptocurrency, fintech
Stellar Ios Mac Sdk
Stellar SDK for iOS & macOS - Swift, Stellar, Horizon, Soneso
Stars: ✭ 92 (-22.03%)
Mutual labels:  blockchain, cryptocurrency
Dcrdata
Decred block explorer, with packages and apps for data collection and storage. Written in Go.
Stars: ✭ 104 (-11.86%)
Mutual labels:  blockchain, cryptocurrency

What is TokenCaps

TokenCaps is an express/node based framework to aggregate crypto-currency data from the web, normalize and cleanse it, and provide simple easy to digest endpoints.

It implements the ccxt public library and provides a load-balancer and query-server over 80 supported exchanges.

Build Status

Installation

npm install
npm start

To Create all tables

GET /create/create-all-tables

To start cron job for querying coin ticker data

GET /cron/query-coin-list-table 

Optional

For server side rendering of Graph data, you need to install chartjs-node. It requires canvas.js and cairo to be pre-installed in your system.

and then simply call this endpoint to start cron job for querying 24 hour data and server side graph rendering.

GET /cron/query-daily-history-table

You are now running an API load balancer for serving crypto-currency data.

HA Deployment

To run TokenPlex in a fault-tolerant manner, you should use a HA data cluster and run your API server behind a load balancer. Since NodeJS is essentially single-threaded, you should run the CRON proceess in a separate node/container so that normal requests do not get jammed up due to blocked aggregation queries. You can use YugaByte a polyglot database with unified CQL + Redis implemetation

Hosted Solution

User Interface Endpoint at https://tokenplex.io

Exchange View

This provides a snapshot view public API's of 79 exchanges. The API is implemented over the ccxt library.

Token View

This provides a list and details view of 2000 coins. The details join public aggregator API's and provide a normalized view. Data is refreshed every 10 seconds.

Portfolio View

This provides a portfolio management screen. Currently only aggregate exchanges supported. More exchange support coming soon.

API Endpoint at https://api.tokenplex.io

Tokenplex API is a hosted implementation of this repository. It currently uses an RF-1 Yugabyte node as it's database. API docs can be found here

For production applications, it is recommended that you run your own hosted solution.

How It Works

Ticker data is stored in a Redis Cache and is by default updated every 3 seconds. History Data requests have a TTL depending on sample rate of the request. For eg. minutely data table has a TTL of 30 seconds while daily sampled data tables have a TTL of 12 hours. Exchange-Markets table has a TTL of 6 Seconds. Coin-Detail tables have a TTL of 10 Seconds.

TimeSeries metrics data and token details is stored in a CQL database and is updated on last request with a TTL strategy of 120 seconds.

Additionally you can specify an S3 Image server location for server side rendering of graph images.

You can run your own load balancer and application server on top of this architecture.

Supported Exchanges

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].