[STEEM BOUNTY] CoinGecko: Public WebSocket API connections for Exchanges
Utopian for CoinGecko:
Utopian.io is running this task request on behalf of CoinGecko.com

GitHub Repository
https://github.com/coingecko/cryptoexchange
Project Background
Cryptoexchange is a rubygem for Ruby developers to interact with over 240+ cryptocurrency exchange market data APIs in a single library. This rubygem is used to power CoinGecko. Available as open source under the terms of the MIT License.
Task Specification
For the existing HTTP API, this rubygem has established a pretty good abstraction which allows developers to easily contribute new exchanges.
The websocket API feature, however, is a new addition to this rubygem. As such, we are still figuring out the best abstraction/structure.
This merged pull request https://github.com/coingecko/cryptoexchange/pull/1008 contains the initial proof-of-concept, which supports connecting with Bitfinex ticker, order book, and trade websocket API.
Candidate's goals are as follows:-
- [ ] Suggest ways to improve upon the rubygem websocket connection design. (See *notes below)
- [ ] Suggest ways to spec/test external websocket API connection. (See *notes below)
- [ ] Implement public websocket API connections for Binance
- [ ] Implement public websocket API connections for Poloniex
- [ ] Implement public websocket API connections for Coinbase Pro
*Notes
- The Bitfinex websocket API requires us to make only ONE connection for ONE trading pair. For example, one websocket connection of BTC/USDT, in order to obtain stream data corresponding to that. As such, the existing structure in place for Bitfinex leverages on Threads in order to handle multiple streams.
- There may be a case where some websocket API require only ONE connection for MULTIPLE trading pairs. You may need to introduce additional abstractions to handle this situation.
- The HTTP API implementation of this rubygem uses VCR in order to mock API responses to ensure we can run an end-to-end integration test. VCR does not appear to work with websocket. We are considering manually mocking the websocket response but this can turn out to be unscalable when response changes.
- Feel free to suggest ways to streamline this abstraction.
How to get started?
- Navigate to the repository on Github https://github.com/coingecko/cryptoexchange
- Be sure to check out the README on its usages to familiarize yourself with the gem and contributing guide.
- https://github.com/coingecko/cryptoexchange/wiki/Implementing-a-New-Exchange-(Websocket-API) will likely be useful to you to get started.
- When you begin work, we suggest creating a Pull Request with a WIP headline so we can commence discussion there.
Deadline
2 weeks. Set to start upon candidate selection.
Communication
Please register your interest at https://discord.gg/pKGV9sp, CoinGecko's official Discord server in "utopian-io" channel.
You may contact us directly for further information via email at hello@coingecko.com or in our Discord developer discussion hub.
Github
Rewards Information
Rewards generated by this task request will be sent as liquid STEEM to the task solver once the task is completed, as decided by the project owner.
The task will be considered considered completed after it has been merged by CoinGecko developement team and when the solver published a Steemit post, explaining what they did in order to solve the task.
Leave [STEEM BOUNTY] CoinGecko: Public WebSocket API connections for Exchanges to:
Read more #utopian-io posts
Best Posts From Task Requests
We have not curated any of utopian.tasks's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From Task Requests
- TravelFeed – Modifying Hivemind
- [1000 STEEM BOUNTY] Design Badges for the Utopian Indiegogo Campaign
- [Task Request - Graphics] Steemer Rebranding
- [STEEM BOUNTY] European Commission EFTG Project – Developing Investor's Portal API With Elastic Search
- [STEEM BOUNTY] European Commission EFTG Project – Integrating ElasticSearch on a Private STEEM Blockchain
- [STEEM BOUNTY] European Commission EFTG Project – PDF Preview on Investors Web Page running on a Private STEEM Blockchain
- [STEEM BOUNTY] European Commission EFTG Project – Search on Investors Web Page running on a Private STEEM Blockchain
- Coingecko Task Request: Public Websocket API Connections for Poloniex
- Coingecko Task Request: Public Websocket API Connections for Binance
- [STEEM BOUNTY] European Commission EFTG Project (European Financial Transparency Gateway) Data Entry Webpage on a Private STEEM Blockchain - Experienced Developers needed
- [STEEM BOUNTY] CoinGecko: Implement public websocket API connections for Coinbase Pro
- [STEEM BOUNTY] CoinGecko: Public WebSocket API connections for Exchanges
- [STEEM BOUNTY] Byteduino Task Request
- [STEEM BOUNTY] European Commission EFTG Project (European Financial Transparency Gateway) – develop a live witnesses status monitor map in Block Explorer web interface
- [STEEM BOUNTY] EFTG – Talented Graphic Designers needed to create logo and visual identity for portal running on private STEEM Blockchain
- [STEEM BOUNTY] European Commission EFTG Project (European Financial Transparency Gateway) – Adapting a BlockExplorer for use with a private Steem Blockchain
- [STEEM BOUNTY] European Commission EFTG Project (European Financial Transparency Gateway) – Adaptation of a web front end to connect to a private Steem Blockchain
- [STEEM BOUNTY] SteemBlast Paid Ads Campaign - Promote STEEM & Get a Bounty of up to 100 STEEM!
- [STEEM BOUNTY] Byteball: Create a Video Tutorial - Backup Process - Multi-Signature Wallet
- [STEEM BOUNTY] How to build a Private Steem Blockchain. European Financial Transparency Gateway