https://github.com/jkorf/deepcoin.net
A C# .netstandard client library for the DeepCoin REST and Websocket Spot and Futures API focusing on clear usage and models
https://github.com/jkorf/deepcoin.net
api-wrapper crypto cryptocurrency cryptocurrency-exchanges csharp deepcoin deepcoin-api deepcoin-bot deepcoinnet dotnet exchange tradeapi
Last synced: 2 months ago
JSON representation
A C# .netstandard client library for the DeepCoin REST and Websocket Spot and Futures API focusing on clear usage and models
- Host: GitHub
- URL: https://github.com/jkorf/deepcoin.net
- Owner: JKorf
- License: mit
- Created: 2025-02-25T14:54:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-17T07:44:07.000Z (9 months ago)
- Last Synced: 2025-09-26T20:59:25.853Z (9 months ago)
- Topics: api-wrapper, crypto, cryptocurrency, cryptocurrency-exchanges, csharp, deepcoin, deepcoin-api, deepcoin-bot, deepcoinnet, dotnet, exchange, tradeapi
- Language: C#
- Homepage: https://cryptoexchange.jkorf.dev?library=DeepCoin.Net
- Size: 4.04 MB
- Stars: 7
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
#  DeepCoin.Net
[](https://github.com/JKorf/DeepCoin.Net/actions/workflows/dotnet.yml) 
DeepCoin.Net is a client library for accessing the [DeepCoin REST and Websocket API](https://www.deepcoin.com/docs/authentication).
## Features
* Response data is mapped to descriptive models
* Input parameters and response values are mapped to discriptive enum values where possible
* High performance
* Automatic websocket (re)connection management
* Client side rate limiting
* Client side order book implementation
* Support for managing different accounts
* Extensive logging
* Support for different environments
* Easy integration with other exchange client based on the CryptoExchange.Net base library
* Native AOT support
## Supported Frameworks
The library is targeting both `.NET Standard 2.0` and `.NET Standard 2.1` for optimal compatibility, as well as the latest dotnet versions to use the latest framework features.
|.NET implementation|Version Support|
|--|--|
|.NET Core|`2.0` and higher|
|.NET Framework|`4.6.1` and higher|
|Mono|`5.4` and higher|
|Xamarin.iOS|`10.14` and higher|
|Xamarin.Android|`8.0` and higher|
|UWP|`10.0.16299` and higher|
|Unity|`2018.1` and higher|
## Install the library
### NuGet
[](https://www.nuget.org/packages/DeepCoin.Net) [](https://www.nuget.org/packages/DeepCoin.Net)
dotnet add package DeepCoin.Net
### GitHub packages
DeepCoin.Net is available on [GitHub packages](https://github.com/JKorf/DeepCoin.Net/pkgs/nuget/DeepCoin.Net). You'll need to add `https://nuget.pkg.github.com/JKorf/index.json` as a NuGet package source.
### Download release
[](https://github.com/JKorf/DeepCoin.Net/releases)
The NuGet package files are added along side the source with the latest GitHub release which can found [here](https://github.com/JKorf/DeepCoin.Net/releases).
## How to use
*Basic request:*
```csharp
// Get the ETH/USDT ticker via rest request
var restClient = new DeepCoinRestClient();
var tickerResult = await restClient.ExchangeApi.ExchangeData.GetTickersAsync(SymbolType.Spot);
var ticker = tickerResult.Data.Single(x => x.Symbol == "ETH-USDT");
var lastPrice = ticker.LastPrice;
```
*Place order:*
```csharp
var restClient = new DeepCoinRestClient(opts => {
opts.ApiCredentials = new DeepCoinCredentials("APIKEY", "APISECRET", "PASS");
});
// Place Limit order to go long for 0.1 ETH at 2000
var orderResult = await restClient.ExchangeApi.Trading.PlaceOrderAsync(
"ETH-USDT-SWAP",
OrderSide.Buy,
OrderType.Limit,
0.1m,
price: 2000,
tradeMode: TradeMode.Cross,
positionSide: PositionSide.Long);
```
*WebSocket subscription:*
```csharp
// Subscribe to ETH/USDT ticker updates via the websocket API
var socketClient = new DeepCoinSocketClient();
var tickerSubscriptionResult = socketClient.ExchangeApi.SubscribeToSymbolUpdatesAsync("ETH-USDT", (update) =>
{
var lastPrice = update.Data.LastPrice;
});
```
For information on the clients, dependency injection, response processing and more see the [documentation](https://cryptoexchange.jkorf.dev?library=DeepCoin.Net), or have a look at the examples [here](https://github.com/JKorf/DeepCoin.Net/tree/main/Examples) or [here](https://github.com/JKorf/CryptoExchange.Net/tree/master/Examples).
## CryptoExchange.Net
DeepCoin.Net is based on the [CryptoExchange.Net](https://github.com/JKorf/CryptoExchange.Net) base library. Other exchange API implementations based on the CryptoExchange.Net base library are available and follow the same logic.
CryptoExchange.Net also allows for [easy access to different exchange API's](https://cryptoexchange.jkorf.dev/client-libs/shared).
|Exchange|Repository|Nuget|
|--|--|--|
|Aster|[JKorf/Aster.Net](https://github.com/JKorf/Aster.Net)|[](https://www.nuget.org/packages/JKorf.Aster.Net)|
|Binance|[JKorf/Binance.Net](https://github.com/JKorf/Binance.Net)|[](https://www.nuget.org/packages/Binance.Net)|
|BingX|[JKorf/BingX.Net](https://github.com/JKorf/BingX.Net)|[](https://www.nuget.org/packages/JK.BingX.Net)|
|Bitfinex|[JKorf/Bitfinex.Net](https://github.com/JKorf/Bitfinex.Net)|[](https://www.nuget.org/packages/Bitfinex.Net)|
|Bitget|[JKorf/Bitget.Net](https://github.com/JKorf/Bitget.Net)|[](https://www.nuget.org/packages/JK.Bitget.Net)|
|BitMart|[JKorf/BitMart.Net](https://github.com/JKorf/BitMart.Net)|[](https://www.nuget.org/packages/BitMart.Net)|
|BitMEX|[JKorf/BitMEX.Net](https://github.com/JKorf/BitMEX.Net)|[](https://www.nuget.org/packages/JKorf.BitMEX.Net)|
|Bitstamp|[JKorf/Bitstamp.Net](https://github.com/JKorf/Bitstamp.Net)|[](https://www.nuget.org/packages/Bitstamp.Net)|
|BloFin|[JKorf/BloFin.Net](https://github.com/JKorf/BloFin.Net)|[](https://www.nuget.org/packages/BloFin.Net)|
|Bybit|[JKorf/Bybit.Net](https://github.com/JKorf/Bybit.Net)|[](https://www.nuget.org/packages/Bybit.Net)|
|Coinbase|[JKorf/Coinbase.Net](https://github.com/JKorf/Coinbase.Net)|[](https://www.nuget.org/packages/JKorf.Coinbase.Net)|
|CoinEx|[JKorf/CoinEx.Net](https://github.com/JKorf/CoinEx.Net)|[](https://www.nuget.org/packages/CoinEx.Net)|
|CoinGecko|[JKorf/CoinGecko.Net](https://github.com/JKorf/CoinGecko.Net)|[](https://www.nuget.org/packages/CoinGecko.Net)|
|CoinW|[JKorf/CoinW.Net](https://github.com/JKorf/CoinW.Net)|[](https://www.nuget.org/packages/CoinW.Net)|
|Crypto.com|[JKorf/CryptoCom.Net](https://github.com/JKorf/CryptoCom.Net)|[](https://www.nuget.org/packages/CryptoCom.Net)|
|Gate.io|[JKorf/GateIo.Net](https://github.com/JKorf/GateIo.Net)|[](https://www.nuget.org/packages/GateIo.Net)|
|HTX|[JKorf/HTX.Net](https://github.com/JKorf/HTX.Net)|[](https://www.nuget.org/packages/Jkorf.HTX.Net)|
|HyperLiquid|[JKorf/HyperLiquid.Net](https://github.com/JKorf/HyperLiquid.Net)|[](https://www.nuget.org/packages/HyperLiquid.Net)|
|Kraken|[JKorf/Kraken.Net](https://github.com/JKorf/Kraken.Net)|[](https://www.nuget.org/packages/KrakenExchange.Net)|
|Kucoin|[JKorf/Kucoin.Net](https://github.com/JKorf/Kucoin.Net)|[](https://www.nuget.org/packages/Kucoin.Net)|
|Mexc|[JKorf/Mexc.Net](https://github.com/JKorf/Mexc.Net)|[](https://www.nuget.org/packages/JK.Mexc.Net)|
|OKX|[JKorf/OKX.Net](https://github.com/JKorf/OKX.Net)|[](https://www.nuget.org/packages/JK.OKX.Net)|
|Polymarket|[JKorf/Polymarket.Net](https://github.com/JKorf/Polymarket.Net)|[](https://www.nuget.org/packages/Polymarket.Net)|
|Toobit|[JKorf/Toobit.Net](https://github.com/JKorf/Toobit.Net)|[](https://www.nuget.org/packages/Toobit.Net)|
|Upbit|[JKorf/Upbit.Net](https://github.com/JKorf/Upbit.Net)|[](https://www.nuget.org/packages/JKorf.Upbit.Net)|
|WhiteBit|[JKorf/WhiteBit.Net](https://github.com/JKorf/WhiteBit.Net)|[](https://www.nuget.org/packages/WhiteBit.Net)|
|XT|[JKorf/XT.Net](https://github.com/JKorf/XT.Net)|[](https://www.nuget.org/packages/XT.Net)|
When using multiple of these API's the [CryptoClients.Net](https://github.com/JKorf/CryptoClients.Net) package can be used which combines this and the other packages and allows easy access to all exchange API's.
## Discord
[](https://discord.gg/MSpeEtSY8t)
A Discord server is available [here](https://discord.gg/MSpeEtSY8t). For discussion and/or questions around the CryptoExchange.Net and implementation libraries, feel free to join.
## Supported functionality
### REST
|API|Supported|Location|
|--|--:|--|
|DeepCoinAccount|✓|`restClient.ExchangeApi.Account`|
|DeepCoinMarket|✓|`restClient.ExchangeApi.ExchangeData`|
|DeepCoinTrade|✓|`restClient.ExchangeApi.Trading`|
|CopyTrade|X||
|Internal Transfer|X|(API not available)|
|Rebate|X||
|Assets|✓|`restClient.ExchangeApi.Account`|
### WebSocket
|API|Supported|Location|
|--|--:|--|
|Private websocket|✓|`restClient.ExchangeApi.ExchangeData`|
|Public websocket|✓|`restClient.ExchangeApi.ExchangeData`|
## Support the project
Any support is greatly appreciated.
### Referal
If you do not yet have an account please consider using this referal link to sign up:
[Link](https://s.deepcoin.com/jddhfca)
### Donate
Make a one time donation in a crypto currency of your choice. If you prefer to donate a currency not listed here please contact me.
**Btc**: bc1q277a5n54s2l2mzlu778ef7lpkwhjhyvghuv8qf
**Eth**: 0xcb1b63aCF9fef2755eBf4a0506250074496Ad5b7
**USDT (TRX)** TKigKeJPXZYyMVDgMyXxMf17MWYia92Rjd
### Sponsor
Alternatively, sponsor me on Github using [Github Sponsors](https://github.com/sponsors/JKorf).
## Release notes
* Version 3.9.1 - 24 Mar 2026
* Fix issue in credentials copying
* Version 3.9.0 - 24 Mar 2026
* Updated CryptoExchange.Net to version 11.0.1, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Updated class for supplying API credentials from ApiCredentials to DeepCoinCredentials
* Updated Shared order status parsing to default to Unknown value if not parsable
* Notes for updating:
* Update ApiCredentials to DeepCoinCredentials for authentication, i.e. `ApiCredentials = new ApiCredentials(..)` => `ApiCredentials = new DeepCoinCredentials(..)`
* Version 3.8.0 - 06 Mar 2026
* Updated CryptoExchange.Net to version 10.8.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Improved method XML comments
* Version 3.7.0 - 24 Feb 2026
* Updated CryptoExchange.Net to version 10.7.0
* Added additional Http settings to client options
* Updated Shared REST interfaces pagination logic
* Updated HttpClient registration, fixing issue of DNS changes not getting processed
* Fixed UserClientProvider using unconfigured HttpClient
* Fixed restClient.ExchangeApi.Account.GetDepositHistoryAsync and GetWithdrawHistoryAsync startTime and endTime parameter serialization
* Version 3.6.0 - 16 Feb 2026
* Updated CryptoExchange.Net to version 10.6.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Fixed SymbolOrderBook websocket subscription not getting closed if when waiting for initial data times out
* Version 3.5.0 - 10 Feb 2026
* Updated CryptoExchange.Net to version 10.5.1, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Fixed websocket orderbook topic mapping
* Updated UserClientProvider internal client cache to non-static to prevent cleanup issues
* Version 3.4.0 - 06 Feb 2026
* Updated CryptoExchange.Net to version 10.4.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Added DeepCoinUserSpotDataTracker and DeepCoinUserFuturesDataTracker
* Added additional methods for requesting supported symbols to Shared ISpotSymbolRestClient/IFuturesSymbolRestClient interfaces
* Added PositionMode mapping on SharedPosition models
* Added Status mapping for SharedDeposit models
* Fixed disposed clients getting returned from UserClientProvider
* Fixed SharedSymbol mapping for Shared model updates from websocket
* Version 3.3.0 - 22 Jan 2026
* Updated CryptoExchange.Net to version 10.3.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Removed legacy websocket message handling and the corresponding UseUpdatedDeserialization client option
* Added Metadata to DeepCoinExchange
* Version 3.2.1 - 14 Jan 2026
* Updated CryptoExchange.Net to version 10.2.3, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Version 3.2.0 - 13 Jan 2026
* Updated CryptoExchange.Net to version 10.2.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Added SequenceNumber to order book websocket updates
* Fixed SharedSymbol.UsdOrStable const not getting replaced for futures order book
* Fixed futures order book symbol formatting
* Version 3.1.0 - 07 Jan 2026
* Updated CryptoExchange.Net version to 10.1.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Added DataTimeLocal and DataAge properties to DataEvent object
* Added UpdateServerTime, UpdateLocalTime and DataAge properties to (I)SymbolOrderBook
* Version 3.0.2 - 17 Dec 2025
* Fix SharedSymbol.UsdOrStable mapping when using order book factory for spot asset
* Version 3.0.1 - 16 Dec 2025
* Fixed release
* Version 3.0.0 - 16 Dec 2025
* Added Net10.0 target framework
* Updated CryptoExchange.Net version to 10.0.0, see https://github.com/JKorf/CryptoExchange.Net/releases/ for full release notes
* Improved performance across the board, biggest gains in websocket message processing
* Updated REST message response handling
* Updated WebSocket message handling
* Added UseUpdatedDeserialization socket client options to toggle by new and old message handling
* Added SocketIndividualSubscriptionCombineTarget socket client option
* Updated Shared API's subscription update types from ExchangeEvent to DataEvent
* Version 2.11.0 - 11 Nov 2025
* Updated CryptoExchange.Net version to 9.13.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Version 2.10.0 - 03 Nov 2025
* Updated CryptoExchange.Net to version 9.12.0
* Added support for using SharedSymbol.UsdOrStable in Shared APIs
* Fixed restClient.ExchageApi.Trading.CancelAllOrdersAsync parameter serialization
* Fixed exception when initial trade snapshot has no items in TradeTracker
* Removed some unhelpful verbose logs
* Version 2.9.0 - 16 Oct 2025
* Updated CryptoExchange.Net version to 9.10.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added ClientOrderId mapping on SharedUserTrade models
* Version 2.8.0 - 30 Sep 2025
* Updated CryptoExchange.Net version to 9.8.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added ITrackerFactory to TrackerFactory implementation
* Version 2.7.0 - 01 Sep 2025
* Updated CryptoExchange.Net version to 9.7.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* HTTP REST requests will now use HTTP version 2.0 by default
* Version 2.6.0 - 25 Aug 2025
* Updated CryptoExchange.Net version to 9.6.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added ClearUserClients method to user client provider
* Version 2.5.1 - 21 Aug 2025
* Added error handling for non 200 status responses
* Version 2.5.0 - 20 Aug 2025
* Updated CryptoExchange.Net to version 9.5.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added improved error parsing
* Updated rest request sending too prevent duplicate parameter serialization
* Fixed error responses not correctly getting logged as error
* Version 2.4.0 - 04 Aug 2025
* Updated CryptoExchange.Net to version 9.4.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Version 2.3.0 - 23 Jul 2025
* Updated CryptoExchange.Net to version 9.3.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Updated websocket message matching
* Version 2.2.1 - 16 Jul 2025
* Updated CryptoExchange.Net to version 9.2.1, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Fixed issue with websocket ping response parsing
* Version 2.2.0 - 15 Jul 2025
* Updated CryptoExchange.Net to version 9.2.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Version 2.1.0 - 02 Jun 2025
* Updated CryptoExchange.Net to version 9.1.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added (I)DeepCoinUserClientProvider allowing for easy client management when handling multiple users
* Version 2.0.0 - 13 May 2025
* Updated CryptoExchange.Net to version 9.0.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added support for Native AOT compilation
* Added RateLimitUpdated event
* Added SharedSymbol response property to all Shared interfaces response models returning a symbol name
* Added GenerateClientOrderId method to ExchangeApi Shared clients
* Added IBookTickerRestClient implementation to ExchangeApi Shared client
* Added takeProfitPrice, stopLossPrice support to ExchangeApi Shared PlaceFuturesOrderAsync
* Added TakeProfitPrice, StopLossPrice properties to SharedFuturesOrder model
* Added MaxLongLeverage, MaxShortLeverage to SharedFuturesSymbol model
* Added OptionalExchangeParameters and Supported properties to EndpointOptions
* Added All property to retrieve all available environment on DeepCoinEnvironment
* Refactored Shared clients quantity parameters and responses to use SharedQuantity
* Replaced DeepCoinApiCredentials with ApiCredentials
* Updated all IEnumerable response and model types to array response types
* Removed Newtonsoft.Json dependency
* Fixed incorrect Shared SpotSupportOrderQuantity configuration for limit orders
* Fixed Shared spot PlaceOrder by quote asset quantity
* Fixed DeepCoinExchange.ImageUrl link
* Fixed incorrect DataTradeMode on certain Shared interface responses
* Fixed parsing of order types
* Fixed some typos
* Version 2.0.0-beta3 - 01 May 2025
* Updated CryptoExchange.Net version to 9.0.0-beta5
* Added property to retrieve all available API environments
* Disabled parsing of Shared spot ticker QuoteVolume as value is incorrect
* Version 2.0.0-beta2 - 23 Apr 2025
* Updated CryptoExchange.Net to version 9.0.0-beta2
* Added Shared spot ticker QuoteVolume mapping
* Fixed incorrect DataTradeMode on responses
* Version 2.0.0-beta1 - 22 Apr 2025
* Updated CryptoExchange.Net to version 9.0.0-beta1, see https://github.com/JKorf/CryptoExchange.Net/releases/
* Added support for Native AOT compilation
* Added RateLimitUpdated event
* Added SharedSymbol response property to all Shared interfaces response models returning a symbol name
* Added GenerateClientOrderId method to ExchangeApi Shared clients
* Added IBookTickerRestClient implementation to ExchangeApi Shared client
* Added takeProfitPrice, stopLossPrice support to ExchangeApi Shared PlaceFuturesOrderAsync
* Added TakeProfitPrice, StopLossPrice properties to SharedFuturesOrder model
* Added MaxLongLeverage, MaxShortLeverage to SharedFuturesSymbol model
* Added OptionalExchangeParameters and Supported properties to EndpointOptions
* Refactored Shared clients quantity parameters and responses to use SharedQuantity
* Replaced DeepCoinApiCredentials with ApiCredentials
* Updated all IEnumerable response and model types to array response types
* Removed Newtonsoft.Json dependency
* Fixed parsing of order types
* Fixed some typos
* Version 1.0.5 - 06 Mar 2025
* Fixed restClient.ExchangeApi.Account.KeepAliveUserStreamAsync endpoint
* Version 1.0.4 - 04 Mar 2025
* Fix for handling websocket order book updates with the same sequence number split over 2 messages
* Version 1.0.3 - 04 Mar 2025
* Fixed Volume and QuoteVolume properties being inversed on DeepCoinTicker model
* Fixed DeepCoinOrderBookFactory Create with SharedSymbol parameter not formatting correctly
* Version 1.0.2 - 04 Mar 2025
* Fix for spot websocket subscriptions not getting updates
* Version 1.0.1 - 04 Mar 2025
* Added Type property to DeepCoinExchange
* Updated DeepCoinOptions to derive from LibraryOptions
* Version 1.0.0 - 04 Mar 2025
* Initial release