This is a personal coding exploratory project. This project is not meant to be used outside of my own use and knowledge building. It is not ready (and will never be ready) for the public to use. If you choose to use this project, proceed at your own risk.
A Ruby client which uses the Gemini REST API to place maker-or-cancel
limit orders on the Gemini Exchange. The currency pairs for orders is limited to btcusd
and ethusd
, though trading other currency pairs can be an option.
Gemini charges much lower transaction fees when the order is made through their API. The goal is to be able to place simple limit orders, taking advantage of the low fee.
At the time of this writing the 30-day fees are the following:
Maker (%) | Taker (%) | Auction (%) | 30 day trading volume ($) | Link | |
---|---|---|---|---|---|
ActiveTrader | 0.250 | 0.350 | 0.250 | < 500,000 | https://www.gemini.com/fees/activetrader-fee-schedule#section-overview |
API | 0.100 | 0.350 | 0.200 | < 1,000,000 | https://www.gemini.com/fees/api-fee-schedule#section-overview |
Mobile | https://www.gemini.com/fees/mobile-fee-schedule | ||||
Web | https://www.gemini.com/fees/web-fee-schedule |
I spent way too much time just to save 15 basis points.
Compared to their main competition, Gemini's API taker fees are much lower when transacting low volumes.
Maker (%) | Taker (%) | 30 day trading volume ($) | Link | |
---|---|---|---|---|
Bittrex | 0.350 | 0.350 | < 25,000 | https://bittrex.zendesk.com/hc/en-us/articles/115000199651-Bittrex-fees |
Coinbase Pro | 0.500 | 0.500 | < 10,000 | https://help.coinbase.com/en/pro/trading-and-funding/trading-rules-and-fees/fees |
Kraken Pro | 0.160 | 0.260 | < 50,000 | https://www.kraken.com/en-us/features/fee-schedule/#kraken-pro |
- Install the version of Ruby specificed in the Gemfile using your favorite Ruby management tool.
- Run
bundle install
to install the dependencies. - Create
.env
in the project root. Populate the file with the API keys. Sandbox details can be found in Gemini's API documentation. The naming of the keys are self explanatory.- Add
GEMINI_SANDBOX_API_KEY
- Add
GEMINI_SANDBOX_API_SECRET
- Add
GEMINI_API_KEY
- Add
GEMINI_API_SECRET
- Add
Run ruby ./lib/ruby.rb
in the terminal to start the interactive UI.
- Test suite
- Code clean-up