{"id":23712269,"url":"https://github.com/powermobileweb/tokenplex","last_synced_at":"2025-06-28T07:33:48.935Z","repository":{"id":269077669,"uuid":"145901545","full_name":"powermobileweb/tokenplex","owner":"powermobileweb","description":"A middleware framework and persistence layer to aggregate and normalize crypto-currency data.","archived":false,"fork":false,"pushed_at":"2018-08-23T20:14:40.000Z","size":77,"stargazers_count":13,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-04T19:22:18.669Z","etag":null,"topics":["blockchain","cql","cryptocurrency","cryptocurrency-exchanges","data-analysis","express","fintech","ico","javascript","nodejs","redis","scale","ticker-data","token"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/powermobileweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-23T20:04:59.000Z","updated_at":"2024-07-09T09:43:39.000Z","dependencies_parsed_at":"2024-12-20T18:54:21.291Z","dependency_job_id":"addd3036-0b73-4ffd-931c-7cf76ba81a13","html_url":"https://github.com/powermobileweb/tokenplex","commit_stats":null,"previous_names":["powermobileweb/tokenplex"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/powermobileweb/tokenplex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2Ftokenplex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2Ftokenplex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2Ftokenplex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2Ftokenplex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/powermobileweb","download_url":"https://codeload.github.com/powermobileweb/tokenplex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2Ftokenplex/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262392589,"owners_count":23303938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","cql","cryptocurrency","cryptocurrency-exchanges","data-analysis","express","fintech","ico","javascript","nodejs","redis","scale","ticker-data","token"],"created_at":"2024-12-30T19:58:11.562Z","updated_at":"2025-06-28T07:33:48.914Z","avatar_url":"https://github.com/powermobileweb.png","language":"JavaScript","readme":"\n## What is TokenPlex\n\nTokenPlex is an express/node based framework to aggregate crypto-currency data from the web, normalize and cleanse it, \nand provide simple easy to digest endpoints.\n\nIt implements the [ccxt](https://github.com/powermobileteam/ccxt) public library and provides a load-balancer and query-server over 80 supported exchanges.\n\n[![Build Status](https://travis-ci.org/pRoy24/tokenplex.svg?branch=master)](https://travis-ci.org/pRoy24/tokenplex)\n\n\n## Installation\n\n```\nnpm install\nnpm start\n```\n\nTo Create all tables \n\n```\nGET /create/create-all-tables\n``` \n\nTo start cron job for querying coin ticker data\n\n```\nGET /cron/query-coin-list-table \n```\n\n### Optional\nFor server side rendering of Graph data, you need to install [chartjs-node](https://github.com/vmpowerio/chartjs-node).\nIt requires canvas.js and cairo to be pre-installed in your system.\n\nand then simply call this endpoint to start cron job for querying 24 hour data\nand server side graph rendering.\n\n```\nGET /cron/query-daily-history-table\n```\n\nYou are now running an API load balancer for serving crypto-currency data.\n\n## HA Deployment\nTo 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.\nYou can use [YugaByte](https://yugabyte.com) a polyglot database with unified CQL + Redis implemetation \n\u003cimg src=\"https://s3-us-west-2.amazonaws.com/images.tokenplex.io/tp_architecture.png\"/\u003e\n\n\n## Hosted Solution\n\n### User Interface Endpoint at https://tokenplex.io\n\n#### Exchange View\nThis provides a snapshot view public API's of 79 exchanges. The API is implemented over the [ccxt](https://github.com/ccxt/ccxt) library.\n\n\u003cimg src=\"https://s3-us-west-2.amazonaws.com/images.tokenplex.io/top_screens_1.png\"/\u003e\n\n#### Token View\n\nThis provides a list and details view of 2000 coins. The details join public aggregator API's and provide a normalized view.\nData is refreshed every 10 seconds.\n\u003cimg src=\"https://s3-us-west-2.amazonaws.com/images.tokenplex.io/top_screens_2.png\"/\u003e\n\n#### Portfolio View\n\nThis provides a portfolio management screen. Currently only aggregate exchanges supported. More exchange support coming soon.\n\n\u003cimg src=\"https://s3-us-west-2.amazonaws.com/images.tokenplex.io/top_screens_3.png\"/\u003e\n\n### API Endpoint at https://api.tokenplex.io\n\nTokenplex API is a hosted implementation of this repository. It currently uses an RF-1 Yugabyte node as it's database.\nAPI docs can be found [here](https://api.tokenplex.io/docs)\n\nFor production applications, it is recommended that you run your own hosted solution.\n\n\n## How It Works\n\nTicker data is stored in a Redis Cache and is by default updated every 3 seconds.\nHistory Data requests have a TTL depending on sample rate of the request.\nFor eg. minutely data table has a TTL of 30 seconds while daily sampled data tables have a TTL of 12 hours.\nExchange-Markets table has a TTL of 6 Seconds.\nCoin-Detail tables have a TTL of 10 Seconds. \n\nTimeSeries metrics data and token details is stored in a CQL database and is updated\non last request with a TTL strategy of 120 seconds.\n\nAdditionally you can specify an S3 Image server location for server side rendering of graph images.\n\nYou can run your own load balancer and application server on top of this architecture.\n\n## Supported Exchanges\n\u003cimg src=\"https://s3-us-west-2.amazonaws.com/images.tokenplex.io/brand_ex.png\"/\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowermobileweb%2Ftokenplex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowermobileweb%2Ftokenplex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowermobileweb%2Ftokenplex/lists"}