All Projects β†’ jjxtra β†’ Exchangesharp

jjxtra / Exchangesharp

Licence: mit
ExchangeSharp is a powerful, fast and easy to use .NET/C# API for interfacing with many crypto currency exchanges. REST and web sockets are supported.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Exchangesharp

My Token
πŸ“ˆTrack token prices of your favorite exchanges in terminal!
Stars: ✭ 141 (-71.17%)
Mutual labels:  blockchain, ethereum, bitcoin, cryptocurrency, kraken, poloniex, bitfinex, bittrex, exchange
Crypto Exchange
Pulls together list of crypto exchanges to interact with their API's in a uniform fashion.
Stars: ✭ 241 (-50.72%)
Mutual labels:  api, bitcoin, kraken, poloniex, bitfinex, gemini, bittrex, gdax, exchange
Crypto vba
An Excel/VBA project to communicate with various cryptocurrency exchanges APIs
Stars: ✭ 103 (-78.94%)
Mutual labels:  ethereum, bitcoin, kraken, poloniex, bitfinex, bittrex, gdax, exchange
Algo Coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 365 (-25.36%)
Mutual labels:  ethereum, bitcoin, cryptocurrency, kraken, poloniex, gemini, gdax, exchange
Cryptocurrency Portfolio
Google Sheets automatic creation with Google Apps Script (GAS) for managing a cryptocurrency tracking spreadsheet with multi exchanges
Stars: ✭ 134 (-72.6%)
Mutual labels:  api, cryptocurrency, kraken, poloniex, bitfinex, bittrex, exchange
Stocklook
crypto currency library for trading & market making bots, account management, and data analysis
Stars: ✭ 119 (-75.66%)
Mutual labels:  blockchain, ethereum, bitcoin, cryptocurrency, poloniex, bittrex, gdax
Cryptofeed
Cryptocurrency Exchange Websocket Data Feed Handler
Stars: ✭ 643 (+31.49%)
Mutual labels:  bitcoin, cryptocurrency, kraken, bitfinex, gemini, bittrex, exchange
Cryptex
Gemini, GDAX, Bitfinex, Poloniex, Binance, Kraken, Cryptopia, Koinex, BitGrail and CoinMarketCap cryptocurrency exchange API clients in Swift / iOS SDK. Check prices and account balances using Sample iOS app.
Stars: ✭ 51 (-89.57%)
Mutual labels:  ethereum, bitcoin, cryptocurrency, poloniex, gemini, gdax
Nescience-Indexing-CLI
Nescience Software & Capital Rebalancing Tool
Stars: ✭ 26 (-94.68%)
Mutual labels:  gemini, bitfinex, gdax, kraken, poloniex, bittrex
Coinnect
Coinnect is a Rust library aiming to provide a complete access to main crypto currencies exchanges via REST API.
Stars: ✭ 130 (-73.42%)
Mutual labels:  bitcoin, cryptocurrency, kraken, poloniex, bittrex, exchange
Gbot Trader
Trading robot for trade on crypto exchanges
Stars: ✭ 222 (-54.6%)
Mutual labels:  bitcoin, poloniex, bitfinex, bittrex, exchange
Ccxt Rest
Open Source Unified REST API of 100+ Crypto Exchange Sites (18k+ docker pulls) - https://ccxt-rest.io/
Stars: ✭ 210 (-57.06%)
Mutual labels:  api, ethereum, bitcoin, cryptocurrency, exchange
Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (+429.45%)
Mutual labels:  bitcoin, cryptocurrency, kraken, bitfinex, exchange
Crypto Whale Watcher
An app to keep a watch on big volume trades of cryptocurrecies on different exchanges by sending alerts via a Telegram Bot.
Stars: ✭ 60 (-87.73%)
Mutual labels:  ethereum, bitcoin, cryptocurrency, bitfinex, gdax
algo-coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 386 (-21.06%)
Mutual labels:  exchange, gemini, gdax, kraken, poloniex
Cryptolist
Curated collection of blockchain & cryptocurrency resources.
Stars: ✭ 3,501 (+615.95%)
Mutual labels:  api, blockchain, ethereum, bitcoin, cryptocurrency
Currencyviewer
Short python framework that dynamically displays and converts the cryptocurrencies in your Kraken wallet into equivalents fiat money.
Stars: ✭ 13 (-97.34%)
Mutual labels:  api, bitcoin, cryptocurrency, kraken, exchange
Coinbase Pro Node
Coinbase Pro API written in TypeScript and covered by tests.
Stars: ✭ 116 (-76.28%)
Mutual labels:  api, ethereum, bitcoin, cryptocurrency, exchange
Python Poloniex
Poloniex API wrapper for Python 2.7 & 3
Stars: ✭ 557 (+13.91%)
Mutual labels:  api, bitcoin, cryptocurrency, poloniex, exchange
Cryptotrader
A responsive dynamic webapp to trade cryptopairs on the most prominent exchanges
Stars: ✭ 118 (-75.87%)
Mutual labels:  api, kraken, poloniex, bitfinex, bittrex
Project's logo

Build Status NuGet

Overview

ExchangeSharp is a C# framework/lib and console app for trading and communicating with various exchange API end points for cryptocurrency assets. Many exchanges are supported, along with web sockets, withdraws and more!

Feel free to visit the discord channel at https://discord.gg/sHCUHH3 and chat with other developers.

Features

  • Many exchanges supported with public, private and web socket API
  • Easy to use and well documented code and API
  • Optional global market symbol normalization, since each exchange has their own way of doing market symbols
  • Runs anywhere .NET Core runs. (Windows, Mac, Linux, Containers, Serverless, iOS, Android, etc.)
  • Can be used from many different C# platforms
  • Has a great CLI that enables you to use all features from all exchanges right from your command line.

Exchanges

The following cryptocurrency exchanges are supported:
(Web socket key: T = tickers, R = trades, B = order book, O = private orders)

Exchange Name Public REST Private REST Web Socket Notes
Aquanow wip x
Binance x x T R B
Binance Jersey x x T R B
Binance.US x x T R B
Binance DEX R
Bitbank x x
Bitfinex x x T R O
Bithumb x
BitMEX x x R O
Bitstamp x x R
Bittrex x x T R
BL3P x x R B Trades stream does not send trade's ids.
Bleutrade x x
BTSE x x
Bybit x x R Has public method for Websocket Positions
Coinbase x x T R
Digifinex x x R B
Gemini x x R
HitBTC x x R
Huobi x x R B
Kraken x x R Dark order symbols not supported
KuCoin x x T R
LBank x x
Livecoin x x
NDAX x x T R
OKCoin x x R B
OKEx x x R B
Poloniex x x T R B
YoBit x x
ZB.com wip R

The following cryptocurrency services are supported:

  • Cryptowatch (partial)

Installing the CLI

On *nix systems:

  • Run this command curl https://github.com/jjxtra/ExchangeSharp/raw/master/install-console.sh | sh

On Windows (or manually):

  • Download the latest binaries for your OS.
  • Unzip it into a folder that is in your environment variable PATH (ctrl + shift + pause|break -> Environment Variables)
  • Use it from the your preferred command-line emulator (e.g. Powershell, cmd, etc.)
  • exchange-sharp --help shows all available commands

Notes

ExchangeSharp uses marketSymbol to refer to markets, or pairs of currencies.

Please send pull requests if you have made a change that you feel is worthwhile, want a bug fixed or want a new feature. You can also donate to get new features.

Building/Compiling

Websockets

If you must use an older Windows (older than win8.1), you'll need to use the Websocket4Net nuget package, and override the web socket implementation by calling

ExchangeSharp.ClientWebSocket.RegisterWebSocketCreator(
    () => new ExchangeSharpConsole.WebSocket4NetClientWebSocket()
);

See WebSocket4NetClientWebSocket.cs for implementation details.

Nuget

dotnet CLI

dotnet add package DigitalRuby.ExchangeSharp --version 0.7.4

Package Manager on VS

PM> Install-Package DigitalRuby.ExchangeSharp -Version 0.7.4

Examples

Creating an order

There's a lot of examples on how to use the API in our console application.
e.g. ExampleOption.cs

Getting ticker info via Web Sockets

public static async Task Main(string[] args)
{
    // create a web socket connection to Binance. Note you can Dispose the socket anytime to shut it down.
    using var api = new ExchangeBinanceAPI();
    // the web socket will handle disconnects and attempt to re-connect automatically.
    using var socket = await api.GetTickersWebSocket(tickers =>
    {
        Console.WriteLine("{0} tickers, first: {1}", tickers.Count, tickers.First());
    });

    Console.WriteLine("Press ENTER to shutdown.");
    Console.ReadLine(true);
}

Logging

ExchangeSharp uses NLog internally currently. To log, use ExchangeSharp.Logger.

Do not use Console.WriteLine to log messages in the lib project.

Provide your own nlog.config or app.config nlog configuration if you want to change logging settings or turn logging off.

Caching

The ExchageAPI class provides a method caching mechanism. Use MethodCachePolicy to put caching behind public methods, or clear to remove caching. Some methods are cached by default. You can set ExchangeAPI.UseDefaultMethodCachePolicy to false to stop all caching as well.

You can also set request cache policy if you want to tweak how the http caching behaves.

How to contribute

Please read the contributing guideline before submitting a pull request.

Consulting

I'm happy to make customizations to the software for you and keep in private repo, email [email protected].

Donations Gratefully Accepted

Believe it or not, donations are quite rare. I've posted publicly the total donation amounts below. If ExchangeSharp has helped you in anyway, please consider donating.

Donate with Bitcoin

Donate with Litecoin

Donate with Ethereum

Donate

Donation totals: 0.039 BTC, 10.25 LTC

Thanks for visiting!

Jeff Johnson
[email protected]
http://www.digitalruby.com

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].